Скрипт Powershell для массового обновления Windows Обновления на многих p c - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть этот скрипт:

Invoke-WUJob -ComputerName comp-1,comp-2,comp-3 -Script {ipmo PSWindowsUpdate; Get-WUInstall -Install -AcceptAll | Out-File C:\PSWindowsUpdate.log  } -Confirm:$false -Verbose –RunNow

и после выполнения я получаю это:

Invoke-WUJob: модуль PSWindowsUpdate отсутствует на целевом компьютере В строке: 1 символ: 1 + Invoke-WUJob -ComputerName 1002-hk-ws-001,1002-hk-ws-002,1002-hk-ws-0 ... + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ + CategoryInfo: ResourceUnavailable: (:) [Invoke-WUJob], Exception + FullyQualifiedErrorId: ModuleMissing, PSWindowsUpdate.InvokeWUJob

Я использовал эти команды ниже на каждом P C для установки в PSWindowsUpate настройка winrm и она все равно не работает:

winrm quickconfig -q 

winrm set winrm/config/client ‘@{TrustedHosts="comp1,comp2,comp3"}’

Set-ExecutionPolicy RemoteSigned

Install-Module PSWindowsUpdate -Scope CurrentUser -Force

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Хорошо, теперь я получаю другую ошибку:

Invoke-WUJob: Вы не можете найти запрошенный файл. (Ошибка HRESULT: 0x80070002) В строке: 1 символ: 1 + Invoke-WUJob -ComputerName 1002-ski-ws-003,1002-ski-nb-002 -Script {i ... + ~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Invoke-WUJob], FileNotFoundException + FullyQualifiedErrorId: System.IO.FileNotFoundException, PSWindowsUpdate.InvokeWUJob

Я установил все на удаленных машинах в: Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ PSWindowsUpdate но похоже, что модуль все еще не видит?

0 голосов
/ 05 февраля 2020

Я собираюсь предположить, что вы находитесь в режиме рабочей группы по сравнению с компьютерами, присоединенными к домену, в силу того, что вы сказали, что сделали на каждом хосте.

Вы должны быть администратором цели, чтобы запустить это ,

about_Remote_Requirements

Если вы не сделаете дополнительные настройки.

Вам не нужно быть администратором для запуска удаленных команд PowerShell

Таким образом, вам нужно передать учетные данные в свой код, если вы еще не запускаете свой Сеанс PowerShell с правами администратора для удаленных целей. Это действительно PowerShell remoting 101 и хорошо документированный вариант использования.

Ваша ошибка говорит о том, что модуль не находится на удаленном хосте или не может быть найден.

Windows обновления вещь уровня машины. Таким образом, импорт должен осуществляться в профиль PowerUhell AllUsers, а не для отдельных пользователей компьютеров. Есть дополнительная работа, чтобы заставить PSRemoting работать на системах рабочих групп. Для хостов с присоединением к домену вы можете включить его с помощью GPO. Нет необходимости в дополнительных шагах.

См. Шаги здесь:

Включение удаленного взаимодействия PowerShell на автономном компьютере (в рабочей группе)

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

...