2017-02-22 10 views
0

Я прошел через все имеющиеся вопросы и ответы, связанные с этим вопросом, но что когда-либо способами я пытался, я не получил требуемые здесь является то, что я пытался,Удаленного выполнения для установки обновления программного обеспечения с помощью 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, исключение исключения) при System.Management.Automation.Interpreter.ActionCallInstruction`2.Run (InterpretedFrame кадра) на System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction .run (InterpretedFrame кадр) в System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run (InterpretedFrame рамка)

+0

Какой вариант запускает выход ошибки? – Moerwald

+0

Я сомневаюсь, что это вызывает проблему '$ pinfo.Arguments =" $ path/quiet "', потому что когда я удаляю это, процесс начинается, но не выполняется – Dotnet

ответ

0

Вы можете попробовать использовать PSWindowsUpdate. Установите его, как описано на PowerShell Gallery и попробуйте команду:

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

Смотрите также эту link.

Надеюсь, что это поможет.

+0

Могу ли я передавать параметры? – Dotnet