Я пытаюсь установить обновления Windows на удаленном компьютере с помощью этой команды:
$InstallSplat = @{
AcceptAll = $true
SendReport = $true
IgnoreReboot = if ($Reboot) { $false } else { $true }
PSWUSettings = @{
SmtpServer = "my mail server"
From = "myfrom <myfrom@myfrom.com>"
To = "myto <myto@myto.com>"
Port = 25
}
}
Invoke-Command -ComputerName $_ -Credential $cred -AsJob -ArgumentList $InstallSplat -ScriptBlock {
param([hashtable]$InstallSplat)
Import-Module PSWindowsUpdate
Install-WindowsUpdate @InstallSplat
$Error | out-file C:\install\installwinupdate.log -Append
}
Я передаю объект учетных данных с правами администратора домена в $cred
, но все равно всегда получаю эту ошибку
Install-WindowsUpdate : Access denied (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED)) In Zeile:4 Zeichen:25
+ Install-WindowsUpdate @InstallSplat
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WindowsUpdate], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,PSWindowsUpdate.GetWindowsUpdate
Сама команда Install-WindowsUpdate
не имеет параметра учетных данных, который я мог бы использовать. Команду нужно запускать в PowerShell с повышенными привилегиями, но при запуске этой команды на моем компьютере я использую PowerShell с повышенными привилегиями.
Я также попытался создать New-PSSession
с моим $cred
и запустить Invoke-Command -Session $session
вместоInvoke-Command -ComputerName $_
с тем же результатом.
Кто-нибудь знает, что здесь происходит? Почему мне отказывают в доступе?
Это не может иметь ничего общего с передачей $InstallSplat
, потому что то же самое происходит, если я вообще не передаю какой-либо параметр и напрямую пишу параметры и их значения. по команде вместо сплаттинга.