Notices: This section not yet converted to new layout. Download stats are rolling back out.

This is not the latest version of Chocolatey Fast Answers Extension available.

Chocolatey Fast Answers Extension

0.0.1

Package test results are passing.

This package was approved by moderator gep13 on 7/3/2018.

Chocolatey Fast Answers Extension is a Chocolatey extension for use as a dependency by package maintainers.

Purpose

To provide (fairly) easy to remember micro functions for (new?) package creators/maintainers to get short fast answers to common decision tree questions that come up during package creation. The majority of functions return True/False. None of the functions are complex and most rely on WMI. By using this Chocolatey extension you can easily script situations such as aborting an install for a package/program that doesn't work on servers by checking first using Get-IsWinServer or conversely Get-IsWinWorkstation. Maybe you have a package that needs to make sure there is not a pending reboot and you can check using Get-PendingReboot and error out with a message explaining to reboot and try again. Maybe you have a package that only runs on Windows 10 and Windows Server 2016, you can easy check at the beginning of your script using Get-IsWin10 or Get-IsWinServer2016.

...and yes, nobody will probably use Get-IsSSD except me for some non-Chocolatey scripts! :)
(Though IMHO defrag packages should abort if a SSD is found and warn that it's not recommended to defrag a SSD.)

The use cases go on...

Functions

List of functions

Screenshot testing all functions with simple test-package install script that does: $test=function and Write-Out function result for each function. Results from the functions show that the test package was run on a computer with Microsoft Windows 10 Pro build 16299 64bit, joined to a domain, (onboard) Intel video, (discreet) Nvidia video, has a SSD, is a workstation not a server, and is pending a reboot.

PACKAGE NOTES

To install Chocolatey Fast Answers Extension, run the following command from the command line or from PowerShell:

C:\> choco install chocolatey-fastanswers.extension --version 0.0.1

To upgrade Chocolatey Fast Answers Extension, run the following command from the command line or from PowerShell:

C:\> choco upgrade chocolatey-fastanswers.extension --version 0.0.1

Files

Hide
  • extensions\chocolateyinstall-helpers.psm1 Show
    $scriptRoot = Split-Path -Path $MyInvocation.MyCommand.Definition
     
    $publicFunctions = @(
        'Get-Is32',
        'Get-Is64',
        'Get-IsAMDVideo',
        'Get-IsInDomain',
        'Get-IsIntelVideo',
        'Get-IsNvidiaVideo',
        'Get-IsSSD',
        'Get-IsVirtualBox',
        'Get-IsVM',
        'Get-IsVMware',
        'Get-IsWin10',
        'Get-IsWin7',
        'Get-IsWin8',
        'Get-IsWin80',
        'Get-IsWin81',
        'Get-IsWinEdu',
        'Get-IsWinEnt',
        'Get-IsWinHome',
        'Get-IsWinPro',
        'Get-IsWinServer',
    	'Get-IsWinServer2008',
    	'Get-IsWinServer2008R2',
    	'Get-IsWinServer2012',
    	'Get-IsWinServer2012R2',
    	'Get-IsWinServer2016',
    	'Get-IsWinServerDatacenter',
    	'Get-IsWinServerEssentials',
    	'Get-IsWinServerFoundation',
    	'Get-IsWinServerSBS',
    	'Get-IsWinServerStandard',
    	'Get-IsWinServerStorage',
    	'Get-IsWinServerWeb',
    	'Get-IsWinWorkstation',
        'Get-PendingReboot',
        'Get-WinName',
        'Get-WinVerBuild',
        'Get-WinVerMajor',
        'Get-WinVerMinor'
    )
     
    Get-ChildItem -Path "$scriptRoot\*.ps1" | ForEach-Object { . $_ }
    Export-ModuleMember -Function $publicFunctions
  • extensions\Get-Is32.ps1 Show
    function Get-Is32{
    $Is32=(Get-WmiObject Win32_processor).addresswidth
     if ($Is32 -eq "32") {return $true} else {return $false}
    }
  • extensions\Get-Is64.ps1 Show
    function Get-Is64{
    $Is64=(Get-WmiObject Win32_processor).addresswidth
     if ($Is64 -eq 64) {return $true} else {return $false}
    }
  • extensions\Get-IsAMDVideo.ps1 Show
    function Get-IsAMDVideo{
    $VideoCard=(Get-WmiObject win32_VideoController).description
    if ($VideoCard -match "AMD") {return $true} else {return $false}
    }  
  • extensions\Get-IsInDomain.ps1 Show
    function Get-IsInDomain{
    if ($env:LOGONSERVER) {return $true} else {return $false}
    }
  • extensions\Get-IsIntelVideo.ps1 Show
    function Get-IsIntelVideo{
    $VideoCard=(Get-WmiObject win32_VideoController).description
    if ($VideoCard -match "Intel") {return $true} else {return $false}
    }  
  • extensions\Get-IsNvidiaVideo.ps1 Show
    function Get-IsNvidiaVideo{
    $VideoCard=(Get-WmiObject win32_VideoController).description
    if ($VideoCard -match "Nvidia") {return $true} else {return $false}
    }  
    
  • extensions\Get-IsSSD.ps1 Show
    function Get-IsSSD{
    $IsSSD=(Get-WmiObject Win32_DiskDrive).Model
    if ($IsSSD -match "SSD") {return $true} else {return $false}
    }
  • extensions\Get-IsVirtualBox.ps1 Show
    function Get-IsVirtualBox{
    $IsVirtualBox=(Get-WmiObject Win32_ComputerSystem).Model
    if ($IsVirtualBox -match "VirtualBox") {return $true} else {return $false}
    }
  • extensions\Get-IsVM.ps1 Show
    function Get-IsVM{
    $VMware=Get-IsVMware
    $VirtualBox=Get-IsVirtualBox
    if ($VMware -or $VirtualBox) {return $true} else {return $false}
    }
  • extensions\Get-IsVMware.ps1 Show
    function Get-IsVMware{
    $IsVMware=(Get-WmiObject Win32_ComputerSystem).Manufacturer
    if ($IsVMware -match "VMware") {return $true} else {return $false}
    } 
  • extensions\Get-IsWin10.ps1 Show
    function Get-IsWin10{
    $IsWin10=[Environment]::OSVersion.Version.Major
    if ($IsWin10 -ge "10" -and $IsWin10 -lt "11") {return $true} else {return $false}
    }  
  • extensions\Get-IsWin7.ps1 Show
    function Get-IsWin7{
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "6" -and $minor -lt "1") {return $true} else {return $false}
    }
  • extensions\Get-IsWin8.ps1 Show
    function Get-IsWin8{
    $IsWin8=[Environment]::OSVersion.Version.Major
    if ($IsWin8 -eq "8" -and $IsWin8 -lt "9") {return $true} else {return $false}
    }
  • extensions\Get-IsWin80.ps1 Show
    function Get-IsWin80{
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "6" -and $minor -eq "2") {return $true} else {return $false}
    } 
  • extensions\Get-IsWin81.ps1 Show
    function Get-IsWin81{
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "6" -and $minor -eq "2") {return $true} else {return $false}
    }  
  • extensions\Get-IsWinEdu.ps1 Show
    function Get-IsWinEdu{
    $IsWinEdu=(Get-WmiObject win32_operatingsystem).caption
     if ($IsWinEdu -match "Education") {return $true} else {return $false}
    }
  • extensions\Get-IsWinEnt.ps1 Show
    function Get-IsWinEnt{
    $IsWinEnt=(Get-WmiObject win32_operatingsystem).caption
     if ($IsWinEnt -match "Enterprise") {return $true} else {return $false}
    }
  • extensions\Get-IsWinHome.ps1 Show
    function Get-IsWinHome{
    $IsWinHome=(Get-WmiObject win32_operatingsystem).caption
     if ($IsWinHome -match "Home") {return $true} else {return $false}
    }
  • extensions\Get-IsWinPro.ps1 Show
    function Get-IsWinPro{
    $IsWinPro=(Get-WmiObject win32_operatingsystem).caption
     if ($IsWinPro -match "Pro") {return $true} else {return $false}
    }
  • extensions\Get-IsWinServer.ps1 Show
    function Get-IsWinServer{
    $IsServer=(Get-WmiObject win32_operatingsystem).caption
     if ($IsServer -match "Server") {return $true} else {return $false}
    }
  • extensions\Get-IsWinServer2008.ps1 Show
    function Get-IsWinServer2008{
    $server=Get-IsWinServer
    if ($server -eq $false) {return $false}
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "6" -and $minor -eq "0") {return $true} else {return $false}
    }
    
  • extensions\Get-IsWinServer2008R2.ps1 Show
    function Get-IsWinServer2008R2{
    $server=Get-IsWinServer
    if ($server -eq $false) {return $false}
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "6" -and $minor -eq "1") {return $true} else {return $false}
    }
    
  • extensions\Get-IsWinServer2012.ps1 Show
    function Get-IsWinServer2012{
    $server=Get-IsWinServer
    if ($server -eq $false) {return $false}
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "6" -and $minor -eq "2") {return $true} else {return $false}
    }
    
  • extensions\Get-IsWinServer2012R2.ps1 Show
    function Get-IsWinServer2012R2{
    $server=Get-IsWinServer
    if ($server -eq $false) {return $false}
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "6" -and $minor -eq "3") {return $true} else {return $false}
    }
    
  • extensions\Get-IsWinServer2016.ps1 Show
    function Get-IsWinServer2016{
    $server=Get-IsWinServer
    if ($server -eq $false) {return $false}
    $major=[Environment]::OSVersion.Version.Major
    $minor=[Environment]::OSVersion.Version.Minor
    if ($major -eq "10" -and $minor -eq "0") {return $true} else {return $false}
    }
    
  • extensions\Get-IsWinServerDatacenter.ps1 Show
    function Get-IsWinServerDatacenter{
    $server=Get-IsWinServer
    if ($server -ne $true) {
       return $false
       } else {
         $IsServerDatacenter=((Get-WmiObject win32_operatingsystem).caption)
         if ($IsServerDatacenter -match "Datacenter") {return $true} else {return $false}
        }
    }	
  • extensions\Get-IsWinServerEssentials.ps1 Show
    function Get-IsWinServerEssentials{
    $server=Get-IsWinServer
    if ($server -ne $true) {
       return $false
       } else {
         $IsServerEssentials=((Get-WmiObject win32_operatingsystem).caption)
         if ($IsServerEssentials -match "Essentials") {return $true} else {return $false}
        }
    }	
  • extensions\Get-IsWinServerFoundation.ps1 Show
    function Get-IsWinServerFoundation{
    $server=Get-IsWinServer
    if ($server -ne $true) {
         return $false
       } else {
         $IsServerFoundation=((Get-WmiObject win32_operatingsystem).caption)
         if ($IsServerFoundation -match "Foundation") {return $true} else {return $false}
        }
    }	
  • extensions\Get-IsWinServerSBS.ps1 Show
    function Get-IsWinServerSBS{
    $server=Get-IsWinServer
    if ($server -ne $true) {
       return $false
       } else {
         $IsServerSBS=((Get-WmiObject win32_operatingsystem).caption)
         if ($IsServerSBS -match "Small") {return $true} else {return $false}
        }
    }	
  • extensions\Get-IsWinServerStandard.ps1 Show
    function Get-IsWinServerStandard{
    $server=Get-IsWinServer
    if ($server -ne $true) {
       return $false
       } else {
         $IsServerStandard=((Get-WmiObject win32_operatingsystem).caption)
         if ($IsServerStandard -match "Standard") {return $true} else {return $false}
        }
    }	
  • extensions\Get-IsWinServerStorage.ps1 Show
    function Get-IsWinServerStorage{
    $server=Get-IsWinServer
    if ($server -ne $true) {
       return $false
       } else {
         $IsServerStorage=((Get-WmiObject win32_operatingsystem).caption)
         if ($IsServerStorage -match "Storage") {return $true} else {return $false}
        }
    }	
  • extensions\Get-IsWinServerWeb.ps1 Show
    function Get-IsWinServerWeb{
    $server=Get-IsWinServer
    if ($server -ne $true) {
         return $false
       } else {
         $IsServerWeb=((Get-WmiObject win32_operatingsystem).caption)
         if ($IsServerWeb -match "Web") {return $true} else {return $false}
        }
    }	
  • extensions\Get-IsWinWorkstation.ps1 Show
    function Get-IsWinWorkstation{
    $IsWinWorkstation=(Get-WmiObject win32_operatingsystem).caption
     if ($IsWinWorkstation -match "Server") {return $false} else {return $true}
    }
  • extensions\Get-PendingReboot.ps1 Show
    function Get-PendingReboot{
    # thanks http://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/
    if (Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -ErrorAction SilentlyContinue) { return $true }
    if (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -ErrorAction SilentlyContinue) { return $true }
    if (Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -ErrorAction SilentlyContinue) { return $true }
     try { 
       $util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities"
       $status = $util.DetermineIfRebootPending()
       if(($status -ne $null) -and $status.RebootPending){
         return $true
       }
     }catch{}
     
     return $false
    }
  • extensions\Get-WinName.ps1 Show
    function Get-WinName{
    $WinName=(Get-WmiObject win32_operatingsystem).caption
    return $WinName
    }
  • extensions\Get-WinVerBuild.ps1 Show
    function Get-WinVerBuild{
    $WinVerBuild=[Environment]::OSVersion.Version.Build
    return $WinVerBuild
    }
  • extensions\Get-WinVerMajor.ps1 Show
    function Get-WinVerMajor{
    $WinVerMajor=[Environment]::OSVersion.Version.Major
    return $WinVerMajor
    }
  • extensions\Get-WinVerMinor.ps1 Show
    function Get-WinVerMinor{
    $WinVerMinor=[Environment]::OSVersion.Version.Minor
    return $WinVerMinor
    }
    

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Dependencies

This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • Bill Curran

Copyright

public domain

Tags

Version History

Version Downloads Last updated Status
Chocolatey Fast Answers Extension 0.0.1 1777 Monday, February 5, 2018 approved

Discussion for the Chocolatey Fast Answers Extension Package

Ground rules:

  • This discussion is only about Chocolatey Fast Answers Extension and the Chocolatey Fast Answers Extension package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Chocolatey Fast Answers Extension, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus
Chocolatey.org uses cookies to enhance the user experience of the site.
Ok