Перед запуском установочного файла на нескольких удаленных серверах мне нужно обновить параметр Powershell MaxMemoryPerShellMB
. Для этого требуется запуск сеанса PS от имени администратора на удаленном сервере. Я пытался запустить Invoke-Command
, который затем запускает ScriptBlock, состоящий из команды Start-Process
, которая включает параметр -Verb RunAs
. Однако ничего не работает.
Я пробовал разные схемы цитирования, одинарные, двойные, тройные, но ничего не работает.
Я пробовал запускать Start-Process
с Enter-PSSession
с теми же результатами.
Ниже приведен код, который я сейчас тестирую:
$creds = Get-Credential -Username 'DOMAIN\userID' -Message "Enter Username and Password to access the remote servers."
$ScriptBlock = {
Start-Process -FilePath Powershell.exe -ArgumentList """Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024""" -Verb RunAs -Wait
}
Invoke-Command -ComputerName testsvr01 -Credential $creds -ScriptBlock $ScriptBlock
Я должен иметь возможность подключиться к удаленному серверу по протоколу RDP и запустить Get-Item WSMan:\localhost\Shell
, чтобы он отображал обновленное значение, но значение не изменилось.
При запуске кода он приостанавливается на секунду, когда запускается Invoke-Command
, но кроме этого в Powershell нет обратной связи.
На удаленном сервере я вижу следующие две ошибки Kerberos в журнале системных событий.
0x19 KDC_ERR_PREAUTH_REQUIRED
,
0xd KDC_ERR_BADOPTION
Любая помощь приветствуется.