2017-02-22 4 views
0

Ich habe durch alle verfügbaren Fragen und Antworten auf diese Frage im Zusammenhang gegangen, aber was auch immer Möglichkeiten, wie ich versuchte ich hier nicht die erforderliche habe zu bekommen, was ich versuchte,Remote-Ausführung eines Software-Updates mithilfe von Powershell installieren

Die Stück Code ist innerhalb eines Moduls, das ich den Aufruf bin wie folgt:

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" } 

Andere Art und Weise habe ich versucht:

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 
} 

Fehler ich immer bin, wenn ich die ausführliche verwenden

System.Management.Automation.RemoteException: [FEHLER] PowerShell 5.0 wurde nicht erkannt. Bitte installieren Sie es und versuchen Sie es erneut. bei System.Management.Automation.ExceptionHandlingOps.CheckActionPreference (FunctionContext funcContext, Exception exception) bei System.Management.Automation.Interpreter.ActionCallInstruction`2.Run (InterpretedFrame Rahmen) bei System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction .Run (InterpretedFrame Rahmen) bei System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run (InterpretedFrame Rahmen)

+0

Welche Variante löst die Fehlerausgabe aus? – Moerwald

+0

Ich bezweifle, dass dies Problem '$ pinfo.Arguments =" $ path/quiet "' verursacht, denn wenn ich dies entferne, wird der Prozess gestartet, aber nicht ausgeführt – Dotnet

Antwort

0

Sie können versuchen, PSWindowsUpdate zu verwenden. Installieren Sie es wie auf PowerShell Gallery beschrieben, und versuchen Sie den Befehl:

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

Siehe auch diese link.

Hoffe, dass hilft.

+0

Kann ich Parameter übergeben? – Dotnet

Verwandte Themen