У меня проблема со скриптом для удаленных обновлений Windows.Моя цель: обновить все серверы Windows, не используя WSUS или SCCM, из PowerShell без необходимости входа на все из них и начать процесс обновления.
Для своего сценария я использую модули powercli и PSWindowsUpdate.В тестовых целях я использую один хост в переменной $ hostname.
Итак, вот что у меня есть.
$Cred = Get-Credential
Import-Module PSWindowsUpdate
Invoke-Command -ComputerName $HostName {Import-Module PSWindowsUpdate} -Verbose -Credential $Cred
Invoke-Command -ComputerName $HostName {Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d -Confirm:$false} -Verbose -Credential $Cred
Invoke-Command -ComputerName $HostName -ScriptBlock {Get-WUInstall -MicrosoftUpdate -IgnoreUserInput -AcceptAll -AutoReboot -Confirm:$FALSE -Verbose | Out-File C:\Setup\PSWindowsUpdate.log } -credential $cred
Get-Content \\$HostName\c$\Setup\PSWindowsUpdate.log
После запуска скрипта все работает с выключением, снимком,включите, но я не могу установить обновления.Я получаю сообщение об ошибке ниже:
WARNING: To perform some operations you must run an elevated Windows PowerShell console.
WARNING: Can't access to machine "hostName". Try use: winrm qc
Когда я искал, я вижу, что не могу сделать никакого повышения в самом PowerShell, и я читаю некоторые сообщения о запуске CMD bat для запуска PowerShell с повышенными правами.Для меня не проблема скопировать на каждый сервер Windows скрипт обновления и получить пакет для запуска его с повышенными правами, но разве это единственный способ?
Я сделаю пакетное решение, чтобы увидеть, что я могудостичь, но есть ли другое решение проблемы, с которой я сталкиваюсь?Кто-нибудь пробовал это?
Большое спасибо за потраченное время!Я также открыт для любых комментариев по поводу моего кода или исправлений!