如何找到今天安装/卸载的所有软件?

时间:2012-02-09 10:57:45

标签: powershell batch-file installation powershell-v2.0

在我们的虚拟机中,我们将查看特定日期安装/卸载的应用程序

有没有办法自动找到它?

4 个答案:

答案 0 :(得分:1)

WMI界面应该适用于此。使用命令行:wmic product

这是一个blog article,它更详细地描述了它,以及如何以.csv文件的形式获得结果。

答案 1 :(得分:1)

我认为您无法找到有关已卸载应用程序的信息,但您可以从注册表中获取一些信息(使用WMI,您只能获得MSI包):

Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*\' | Select-Object DisplayName,InstallDate,Publisher

答案 2 :(得分:1)

要获取msiexec在特定日期安装的应用程序列表,请使用以下命令:

$strComputer = "."

$colItems = get-wmiobject -class "Win32_Product" -namespace "root\CIMV2" -computername $strComputer

$colitems | ? { $_.installdate -eq "yyyymmdd" }| select name

这适用于所有已安装的应用程序Microsoft KB(需要按日期过滤):

$Keys = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
$Items = $keys |foreach-object {Get-ItemProperty $_.PsPath}
$items | select displayname , "(default)" , installdate

对于未展开的应用,您需要在信息说明中查询来自“application events logs”的MsiInstaller或“卸载”的“字符串搜索”。

答案 3 :(得分:1)

Win32_Product类查询速度很慢。尽可能多地过滤。

$计算机名= “SomeServer”

$ apps = get-wmiobject win32_product -filter“installdate ='20120206'” - computer $ computername

相关问题