通过Powershell推送Windows更新

通过Powershell推送Windows更新,powershell,networking,powershell-remoting,winrm,Powershell,Networking,Powershell Remoting,Winrm,由于需要修补的计算机数量太多,我正在尝试通过powershell安装某些windows更新 我使用以下语法 enter-pssession PCname-PC 连接会话后,我使用以下命令: wusa.exe c:\temp\update.msu /quiet /norestart /log:C:\wusa.log 现在的问题是什么都没有发生,每次我都会被拒绝访问。Powershell以管理员身份运行,计算机的本地用户是管理员。我尝试运行一个脚本,允许会话作为域管理员进行连接,结果相同 在这件

由于需要修补的计算机数量太多,我正在尝试通过powershell安装某些windows更新

我使用以下语法

enter-pssession PCname-PC
连接会话后,我使用以下命令:

wusa.exe c:\temp\update.msu /quiet /norestart /log:C:\wusa.log
现在的问题是什么都没有发生,每次我都会被拒绝访问。Powershell以管理员身份运行,计算机的本地用户是管理员。我尝试运行一个脚本,允许会话作为域管理员进行连接,结果相同


在这件事上的任何帮助都将不胜感激。谢谢大家。有几种解决方法围绕在本地启动流程展开。如Vitaly在评论中所述,通过WMI启动流程或创建计划任务。

此解决方案将最终将更新复制到每台电脑:

$PCs = @()
$Cred = Get-Credential

ForEach ($PC in $PCs)
{
    $Session = New-PSSession -ComputerName $PC -Credential $Cred
    Copy-Item -Path 'C:\Temp\Update.msu' -Destination 'C:\Temp\Update.msu' -ToSession $Session -Force
    Enter-PSSession $Session
    & wusa C:\Temp\Update.msu /quiet /norestart /log:C:\Temp\wusa.evtx
    Exit-PSSession
    Remove-PSSession $Session
}

最后一个注意事项:wusa日志采用事件查看器格式(
.evtx

或者您可以尝试以下方法:$pc=“pc”
$comm=“cmd/c wusa.exe c:\temp\update.msu/quiet/norestart/log:c:\wusa.log”([wmiclass]“\\$pc\root\cimv2:Win32\u进程”)。创建($comm)
或者您可以尝试使用凭据参数:
输入PSSession-ComputerName PC1-Credential contoso\administrator
某些版本的Windows会阻止您写入C:\驱动器的根目录。请尝试将/log更改为其他目录。谢谢大家,我将尝试您的建议并进行更新。问题是wusa.exe无法在远程会话中运行。拒绝访问的不是文件,而是Windows Update API。。。。