Невозможно создать процесс с повышенными правами доступа из учетной записи LocalSystem

Невозможно создать процесс с повышенными правами доступа из учетной записи LocalSystem

Я запускаю сервер сборки на Windows Server 2008 (Team City). Сборки выполняются агентом Team City, который работает как служба Windows под учетной записью LocalService.

Одна из сборок должна скопировать созданный ею zip-файл на удаленный ресурс, для этого у меня есть скрипт powershell, который пытается запустить новый процесс с учетными данными пользователя с соответствующими разрешениями на запись в ресурс. Проблема в том, что скрипт не может создать процесс. Я могу запустить скрипт нормально от имени своего администратора (так что сам скрипт, похоже, в порядке), это заставляет меня думать, что у учетной записи LocalSystem нет какого-то разрешения на запуск новых процессов с другими учетными данными или что-то в этом роде?

Есть идеи, что на самом деле означает эта ошибка? Примечание: я не вижу никаких ошибок в журналах событий безопасности, что кажется странным(?)

$userName = "domain\user"
$password = "password"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $userName, $secstr
$command = "Copy-Item d:\file.zip \\remote\share\file.zip"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)

Start-Process powershell -NoNewWindow -ArgumentList "-encodedCommand", $encodedCommand -credential $credentials -wait

Ошибка, возникшая в строке Start-Process

System.InvalidOperationException: This command cannot be executed due to the error: Access is denied.
    at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)

решение1

Видетьмой ответкПовышение кредитных прав с помощью PowerShell через локальную системную учетную записьна StackOverflow:

Кажется, существуют ограничения на некоторые команды, когда скрипт запускается под управлениемЛокальнаяСистема. Это имеет смысл с точки зрения безопасности, учитывая, чтоЛокальнаяСистема:

имеет полный неограниченный доступ к локальным ресурсам. Это также недостаток LocalSystem, поскольку служба LocalSystem может делать то, что может вывести из строя всю систему.

Ссылка:MSDN, учетная запись LocalSystem

Связанный контент