是否可以选择使用PowerShell查找已安装的软件?主要是以MSI为基础安装软件。我尝试使用以下代码,但我不确定它是否可靠并且适用于每个软件产品。例如,32位和64位?
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | `
Select DisplayName, DisplayVersion, Publisher, InstallDate | sort {[string]$PSItem}
是否有可靠的方法来查找每个已安装的软件?
答案 0 :(得分:3)
您可以使用以下PowerShell命令找到有关已安装软件,更新和修补程序的所有信息:
try{
$InstalledSoftware = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*
$InstalledSoftware += Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*
} catch {
Write-warning "Error while trying to retreive installed software from inventory: $($_.Exception.Message)"
}
如果我想找到已安装的MSI,您可以使用以下内容:
$InstalledMSIs = @()
foreach ($App in $InstalledSoftware){
if($App.PSChildname -match "\A\{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}\z"){
$InstalledMSIs += New-Object PSObject -Property @{
DisplayName = $App.DisplayName;
DisplayVersion = $App.DisplayVersion;
Publisher = $App.Publisher;
InstallDate = $App.InstallDate;
GUID = $App.PSChildName;
}
}
}
此外,您可以使用以下命令检查Windows Server 2008或更高版本操作系统上的已安装功能:
Get-WindowsFeature -ErrorAction Stop | Where-Object {$_.Installed} | Sort-Object DisplayName
答案 1 :(得分:-1)
下面的命令将为您提供有关所有已安装软件的所有详细信息(我相信这更可靠)。
Get-WmiObject -Class Win32_Product