Powershell: эта команда запирает мой скрипт, зависает

0

Я пытаюсь получить список доступных обновлений, используя

$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

Svart
источник
это работает для меня в 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