Я использую сервер сборки на windows server 2008 (команда city). Сборки выполняются агентом Team Team, который работает как служба 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)