我有 10 个加入域的 Windows 2016 服务器。我需要在它们上运行 Windows 更新,我不想登录到它们中的每一个,然后手动启动 Windows 更新。
我发现你可以做到这一点;
Install-Module PSWindowsUpdate
但我不知道具体如何。
**** 更新; 感谢 duenni,这是我的最终解决方案。安装 PSWindowsUpdate 模块,然后;
Set-Item WSMan:\localhost\Client\TrustedHosts –Value * -Force
$Script = {import-module PSWindowsUpdate; Get-WindowsUpdate -AcceptAll -Install -Verbose -AutoReboot | Out-File C:\PSWindowsUpdate.log}
Invoke-WUjob -ComputerName s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20 -Script $Script -Confirm:$false -RunNow
根据发行说明(单击“包详细信息”),该命令
Invoke-WUInstall
已Invoke-WUJob
在版本 2.0.0 中替换为。尝试
作为直接等效于 Invoke-WUInstall,您实际上可以使用 Invoke-Command 调用 Get-WUInstall。
确保您拥有最新的PSWindowsUpdate。
将 PowerShell 的执行策略更改为 RemoteSigned。RSEP 允许 PowerShell 脚本,只要它们由受信任的发布者签名。键入
Set-ExecutionPolicy RemoteSigned
并按 Enter。出现提示时确认。对于 PS 2.0 导入模块 PSWindowsUpdate(3.0 后不需要)
GetWUInstall
支持许多好东西,但到目前为止最有用的是:Get-WUInstall –MicrosoftUpdate –ListOnly
--> 将列出来自 Microsoft Update 服务器的可用更新Get-WUInstall –MicrosoftUpdate
--> 会询问每次更新是否安装(最近非常有用)Get-WUInstall –MicrosoftUpdate –AcceptAll
--> 自动接受所有添加 –
AutoReboot
--> 更新后也会重启支持更多的东西,比如隐藏、取消隐藏或安装特定的 KB。您可以使用
Help Get-WUInstall –full
查看所有支持的功能。