Estou executando um servidor de compilação no windows server 2008 (team city). As compilações são executadas pelo agente de cidade de equipe que é executado como um serviço do Windows na conta LocalService.
Uma das compilações precisa copiar um arquivo zip criado para um compartilhamento remoto, para fazer isso, eu tenho um script powershell que tenta criar um novo processo com as credenciais de um usuário com as permissões apropriadas para gravar no compartilhamento. . O problema é que o script não consegue criar o processo. Eu posso executar o script bem do meu usuário admin (assim o script em si parece estar bem), isso me faz pensar que a conta LocalSystem não tem alguma permissão para shell novos processos com credenciais diferentes ou algo parecido?
Alguma idéia do que esse erro realmente significa?
Nota: Não consigo ver nenhum erro nos logs de eventos de segurança que pareça estranho (?)
$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
Erro lançado na linha Start-Process
System.InvalidOperationException: This command cannot be executed due to the error: Access is denied.
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)