Script - Get-SoftwareInfo

There will be times that you will only have the option to use a exe and not a MSI to build an application. Normally that's not a problem but then halfway through building the application you realizes you have no idea what to use for a detection method since when you use a MSI SCCM will import that information for you. That is where this script is very handy for a SCCM admin what I do is install the software manually then run this script to get the Software ID number since that is one of the cleanest ways for SCCM to detect an application.

<#

    .SYNOPSIS
    Script to show or export installed software information

    .DESCRIPTION
    The script will display Software ID number, Name, Vendor and Version. 

    .PARAMETER Computer
    With this parameter you cam run this on a remote computer 

    .PARAMETER Export
    Allows you to export the information to a file 

    .EXAMPLE
    .\Get-SoftwareInfo.ps1 -Export SoftwareInfo.txt

    .EXAMPLE
    .\Get-SoftwareInfo.ps1 -Computer IT-Testing-7

    .EXAMPLE
    To get an export from a remote computer
    .\Get-SoftwareInfo.ps1 -Computer IT-Testing-7 | Out-File SoftwareInfo.txt

    .NOTES
    Created By: Kris Gross
    Contact: KrisGross@sccmtst.com
    Twitter: @kmgamd

    .LINK
    http://www.sccmtst.com/2017/04/script-get-softwareinfo.html

#>


param($Computer = $env:computername,
      $Export = 0
    )

Function Export-SoftwareInfo
{
    Get-WmiObject Win32_Product | Format-List IdentifyingNumber, Name, Vendor, Version | Out-File $Export
    Write-Host You can find your export at $Export
    pause
}


Function Show-SoftwareInfo
{
    Write-Host "Software Info: $Computer"
    Clear-Host
    Get-WmiObject Win32_Product | Format-Table IdentifyingNumber, Name, Vendor, Version
    pause
}

IF (($Computer -eq $env:computername) -and ($Export -ne 0))
{
   Export-SoftwareInfo
}
IF (($Computer -eq $env:computername) -and ($Export -eq 0))
{
   Show-SoftwareInfo
}
IF (($Computer -ne $env:computername) -and ($Export -eq 0))
{   
    Invoke-Command -ComputerName $Computer -ScriptBlock ${function:Show-SoftwareInfo} 
}
IF (($Computer -ne $env:computername) -and ($Export -ne 0))
{
    RemoteExport Invoke-Command -ComputerName $Computer -ScriptBlock ${function:Export-SoftwareInfo}
}

Popular Posts

Office 365 Deployment - Office 365 Upgrade Task Sequence

SCCM Task Sequence with GUI - How to install more then one image with a single Task Sequence

Windows 10 Setup Script - V 2.0.0.0