PowerShell列表安装了第三方应用程序更新

时间:2017-07-28 12:29:47

标签: powershell updates desktop-application

是否有powershell命令返回已安装的非Microsoft应用程序更新列表? 示例:安装softwareA并将更新安装到softwareA后 - >可以在“控制面板 - 查看已安装的更新”部分中看到已安装的更新 如果安装了更新,是否有PowerShell命令或简单脚本返回true;如果未安装更新,是否返回false?

2 个答案:

答案 0 :(得分:0)

尝试此操作并将程序名称字符串替换为您的程序。使用通配符来帮助缩小程序名称的范围。预期的输出将是卸载字符串的上次写入时间。假设当有补丁时,假设文件的最后写入时间正在改变。

$programname = "Notepad++*"
$32bit = Get-ItemProperty 
HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*
$64bit = Get-ItemProperty 
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*
$programs = $32bit + $64bit
foreach ($program in $programs){
$program = Write-Output $program | where Displayname -like $programname
if ($program.DisplayName -ne $null) {
$LastModified = (Get-Item $program.uninstallstring).lastwritetime

                 $properties = @{
                                 ProgramName = $program.DisplayName
                                 Publisher = $program.Publisher
                                 Version = $program.DisplayVersion
                                 UninstallString = $program.UninstallString
                                 LastModified = $LastModified
 }
                 $obj = New-Object -TypeName PSObject -Property $properties
                 Write-Output $obj
                 }
 }

答案 1 :(得分:0)

Get-ItemProperty HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.ParentDisplayName -like "*foo*" }

这将返回一个对象,其中ParentDisplayName是您的程序,DisplayVersion是更新版本。