Время от времени хочется узнать, что же за файл лежит в репозитории WSUS. Попробуем по имени файла определить, какое обновление он реализует. Давайте найдем, какому обновлению соответствует файл http://wsus/Content/00/B06000B593307D3B8368A13EB43D6053A83C9900.exe
Подключаем API для доступа к WSUS:
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
Подключаемся к серверу WSUS по имени «WSUS»:
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("WSUS", $false)
Получаем список обновлений:
$Updates = $wsus.GetUpdates()
Перебираем все обновления:
foreach ($Update in $Updates) {
Для каждого обновления получаем список элементов:
foreach ($InstallableItem in $Update.GetInstallableItems()) {
Для каждого элемента обновления получаем список файлов:
foreach ($File in $InstallableItem.Files) {
Для каждого файла анализируем имя файла:
if ($File.FileUri -like "http://wsus/Content/00/B06000B593307D3B8368A13EB43D6053A83C9900.exe") {
Выводим результат, если поиск удачный:
$Update;
$InstallableItem;
$File;
break;
}
}
}
}
В общем-то мы получили бесполезную информацию, поэтому превращать скрипт во что-то более законченное нет желания. Зато научились работать с WSUS из Powershell. :-)
Ссылки на MSDN:
http://msdn.microsoft.com/en-us/library/microsoft.updateservices.administration.iupdate(VS.85).aspx
Filed under: Без рубрики |
Добавить комментарий