Я пытаюсь получить список доступных обновлений, используя
$UpdateSession = New-Object -ComObject 'Microsoft.Update.Session'
Write-Host "[1]"
$UpdateSession.ClientApplicationID = 'MSDN PowerShell Sample'
Write-Host "[2]"
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
Write-Host "[3]"
$SearchResult = $UpdateSearcher.Search("IsInstalled=0 and IsHidden=0")
Write-Host "[4]"
Последняя инструкция $SearchResult = $UpdateSearcher.Search("IsInstalled=0 and IsHidden=0")
зависает , ничего не возвращает, и я не могу понять, почему.
Выход :
[1]
[2]
[3]
<running...>
Я предполагаю, что это действительно что-то делает, потому что я не могу CTRL + C, чтобы остановить это. Приходится перезапускать Powershell.
(W7 SP1, .NET Framework 4.6.1, Powershell 4.0)
Есть идеи?
Изменить: взял эти строки из скрипта Get-WindowsUpdates.ps1
это работает для меня в PS 5.0 - вы запускаете этот скрипт в качестве администратора домена? Может ли политика запретить вам поиск обновлений?
—
SimonS
Нет, я не. Я могу получить полный список установленных обновлений, используя get-hotfix. Как работает нерабочая вещь, как он может знать, какие обновления доступны, веб-запрос или что-то?
—
Сварт
Что не так с использованием кода в дупе к вашему последнему вопросу ?
—
ДэвидПостилл
Я нашел способ заставить его работать, используя следующую строку:
—
Сварт
$listeMAJ = Get-HotFix -ComputerName $ip -Credential $cred | Select-Object description,hotfixid,installedby,@{l="InstalledOn";e={[DateTime]::Parse($_.psbase.properties["installedon"].value,$([System.Globalization.CultureInfo]::GetCultureInfo("en-US")))}} $derMAJ = $listeMAJ | Sort-Object -Property installedon | select-object -last 1
(фактически две строки). и удалось получить ожидаемые результаты (список установленных обновлений). Теперь я должен выяснить, последний ли это по сей день или нет, который не работает
Я взял 4 строки в своем посте из связанного сценария
—
Svart