【发布时间】:2019-06-26 07:51:51
【问题描述】:
我最近将 PSWindowsUpdate 从版本 1.6.1.1 更新到最新版本 (2.1.0.1),当我尝试运行脚本时:
Write-Host " Centralized Update"
Write-Host "================================"
ipmo activedirectory
$computers = Get-ADComputer -Filter {enabled -eq $true} -properties * -SearchBase "OU=Workstations, DC=contoso, DC=com" | select name
$Script = {ipmo PSWindowsUpdate; Get-WUInstall -AcceptAll -Install -Verbose}
foreach ($computer in $computers) {
Write-Host "Running update on:" $computer.name
Invoke-WUJob -ComputerName $computer.name -Script $Script -Confirm:$false -RunNow
}
Write-Host "================================"
pause
我收到以下错误:
Invoke-WUJob : The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
At C:\Users\Administrator\Desktop\Update_Workstations.ps1:10
char:2
+ Invoke-WUJob -ComputerName $computer.name -Script $Script -Confir ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Invoke-WUJob], FileNotFoundException
+ FullyQualifiedErrorId : System.IO.FileNotFoundException,PSWindowsUpdate.InvokeWUJob
对脚本的唯一修改是更改:
Invoke-WUInstall -ComputerName $computer.name -Script $Script -Confirm:$false
收件人:
Invoke-WUJob -ComputerName $computer.name -Script $Script -Confirm:$false -RunNow
更多细节:
- PowerShell 版本为 5.1(客户端和服务器端)
- 从“工作站”组织单元中正确提取了终端列表
- 我可以通过“enter-pssession”毫无问题地连接到所有终端
- 使用“Invoke-Command”而不是“Invoke-WUJob”运行但在下载时失败并出现错误“UnauthorizedAccessException”
代码有什么问题?在更新到 2.1.0.1 之前它工作正常
【问题讨论】:
-
如果您运行脚本,您是否确认已加载
PSWindowsUpdate? (您可能想添加Import-Module -Name PSWindowsUpdate。另外,您能否测试Invoke-WUJob -ComputerName aComputerName -Confirm:$false -RunNow是否在交互式shell 中运行? -
问题似乎是“Invoke-WUJob”命令,它从脚本和直接从控制台都有相同的错误。但是,PSWindowsUpdate 模块已正确加载,使用:
Invoke-Command -ComputerName $computer.name -Script {ipmo pswindowsupdate ; get-module pswindowsupdate}它显示了正确的版本 (2.1.0.1)。
标签: windows powershell windows-update