用于在许多计算机上批量更新Windows更新的Powershell脚本

问题描述 投票:0回答:1

我有这个脚本:

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行:char:1+调用WUJob -ComputerName 1002-hk-ws-001,1002-hk-ws-002,1002-hk-ws-0 ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~+ CategoryInfo:ResourceUnavailable:(:) [Invoke-WUJob],异常+ FullyQualifiedErrorId:ModuleMissing,PSWindowsUpdate.InvokeWUJob

我在每台PC上使用下面的这些命令来安装到PSWindowsUpdate和设置winrm,但仍然无法正常工作:

winrm quickconfig -q 

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

Set-ExecutionPolicy RemoteSigned

Install-Module PSWindowsUpdate -Scope CurrentUser -Force

有什么想法吗?

windows powershell windows-update
1个回答
0
投票

[我将假设您处于工作组模式,而Domain则依靠您说过在每个主机上所做的工作而加入了计算机。

您必须是目标用户的管理员才能运行此程序。

about_Remote_Requirements

除非您进行其他配置。

You Don’t Have to Be An Administrator to Run Remote PowerShell Commands

因此,如果尚未使用远程目标的管理员凭据运行PowerShell会话,则需要在代码中传递凭据。这实际上是PowerShell远程处理101和一个有据可查的用例。

您的错误是模块不在远程主机上或找不到该模块。

Windows更新是计算机级别的东西。因此,导入应该是AllUsers PowerShell配置文件,而不是机器的某些个人用户。要使PSRemoting在工作组系统上工作还需要付出额外的努力。对于加入域的主机,可以使用GPO启用它。无需额外的步骤。

请参阅此处的步骤:

Enable PowerShell Remoting on a standalone (workgroup) computer

无论远程目标上是谁,远程系统上的运行代码将始终在您启动的用户上下文中运行。

© www.soinside.com 2019 - 2024. All rights reserved.