Access denied while running Windows Update using Powershell's Invoke-Command Access denied while running Windows Update using Powershell's Invoke-Command powershell powershell

Access denied while running Windows Update using Powershell's Invoke-Command


As i just hit the same wall, and Google isn't of much help either, here is what i could dig up.

For the record, i am pretty much doing the same thing (using custom PS code to check remote systems for Windows Updates) but using WinRM over Python instead of Invoke-Command and also got stuck on Microsoft.Update.Searcher.Search() throwing a E_ACCESSDENIED error.

The UnauthorizedAccessException is indeed not related to Powershell but the underlying API.

I suspect Microsoft started cutting off impersonation in remote session in some recent update (Powershell v5?) as this was (and still is) working just fine on older Windows versions (e.g. Server 2012 with Powershell v3 or 2012 R2 with v4)

To get around this you will need to authenticate (on the remote server) prior to executing your stuff with a PSCredential object.

So Remote Auth -> Local Auth -> Run stuff for example using Start-Process -Credential ...

e.g.

$pass = ConvertTo-SecureString "PA$$W0RD" -AsPlainText -Force$creds = New-Object System.Management.Automation.PSCredential "User", $passStart-Process -Credential $creds powershell -ArgumentList "-Command & { ... whatever you want to do ... }"

Keep in mind that this poses a security risk as your password will be parsed in clear text, so don't do this over an unencrypted channel!