远程执行以使用PowerShell安装软件更新

时间:2017-02-22 09:17:29

标签: powershell

我已经完成了与这个问题相关的所有可用问题和答案,但我试过的方法是什么,我没有得到这里所要求的是我试过的,

这段代码在我调用的模块中,如下所示:

Invoke-Command -ScriptBlock {EnsurePowerShellV5 -WMF50Path "D:\wmf50"} @param

$path = "D:\Win8.1AndW2K12R2-KB3134758-x64.msu"
Invoke-Command -ScriptBlock { & "$($env:WINDIR)\system32\wusa.exe" /c "$path /qn" }

我试过的其他方式:

Invoke-Command -ScriptBlock {
  $pinfo = New-Object System.Diagnostics.ProcessStartInfo
  $pinfo.FileName = "$($env:WINDIR)\system32\wusa.exe"
  $pinfo.RedirectStandardError = $true
  $pinfo.RedirectStandardOutput = $true
  $pinfo.UseShellExecute = $false
  $pinfo.Arguments = "$path /quiet"

  $p = New-Object System.Diagnostics.Process
  $p.StartInfo = $pinfo
  $p.Start() 
  $p.WaitForExit()
  $stdout = $p.StandardOutput.ReadToEnd()
  $stderr = $p.StandardError.ReadToEnd()

  Write-Verbose $stderr
  Write-Verbose $stdout
}

我在使用详细

时遇到错误
  

System.Management.Automation.RemoteException:[ERROR] PowerShell 5.0   没有检测到。请安装它,然后重试。在   System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext   funcContext,异常异常)at   System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame   框架)   System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame   框架)   System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame   帧)

1 个答案:

答案 0 :(得分:0)

您可以尝试使用PSWindowsUpdate。按照PowerShell Gallery中的说明安装它,然后尝试命令:

$WUInstallScript = { Import-Module C:\Path\PSWindowsUpdate.psm1; Get-WUInstall -AcceptAll -AutoReboot}
Invoke-WUInstall -ComputerName $hostname -Script $WUInstallScript

另见link

希望有所帮助。