Как узнать, какие все программы установлены / удалены сегодня? - PullRequest
0 голосов
/ 09 февраля 2012

В наших виртуальных машинах мы рассмотрим, какие приложения установлены / удалены в конкретный день

Есть ли способ найти его автоматически?

Ответы [ 4 ]

1 голос
/ 10 февраля 2012

Класс Win32_Product очень медленно запрашивает.Отфильтруйте как можно больше.

$ computername = "SomeServer"

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

1 голос
/ 09 февраля 2012

Я не думаю, что вы можете найти информацию об удаленных приложениях, но вы можете получить некоторую информацию из реестра (с WMI вы можете получить только пакеты MSI):

Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*\' | Select-Object DisplayName,InstallDate,Publisher
1 голос
/ 09 февраля 2012

Чтобы получить список приложений, установленных msiexec в определенный день, используйте:

$strComputer = "."

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

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

это для всех установленных приложений в КБ Microsoft (требуется фильтрация по дате):

$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» или «поиск строки» «uninstall» в описании события.

1 голос
/ 09 февраля 2012

Интерфейс WMI должен работать для этого. Используйте командную строку: wmic product

Вот статья в блоге , которая описывает ее более подробно и как получить результат в виде файла .csv.

...