/ / Por que não consigo descompactar no PowerShell em um Agente TeamCity? - PowerShell, zip, teamcity

Por que não consigo descompactar o PowerShell em um agente do TeamCity? - powershell, zip, teamcity

Eu tenho um script que descompacta um pacote MVC,minimiza todos os arquivos CSS e js e os compacta novamente. Funciona perfeitamente na minha máquina e no servidor CI como administrador ou conta TeamCity. Quando o TeamCity puxa e executa, o script fornece toda a saída esperada, não relata um erro, mas nunca descompacta o arquivo.

write-host "creating shell object"
$shell_app=new-object -com shell.application
write-host "creating zip file"
$zip_file = $shell_app.namespace("C:tempPokerLeagueWebSite.zip")
write-host "setting folder to unzip to"
$destination = $shell_app.namespace("C:tempzy98")
write-host "about to copy files from zip"
$destination.Copyhere($zip_file.items(), 0x4)
write-host "finished"

Aqui está o resultado do TeamCity:

[23:01:03]: Step 5/5: test ps1 file (Powershell)
[23:01:03]: [Step 5/5] Starting: C:Windowssystem32cmd.exe /c
C:WindowsSysWOW64WindowsPowerShellv1.0powershell.exe -NonInteractive -File
C:TeamCitybuildAgentwork71e78d4c543e0594Toolstest.ps1 && exit /b %ERRORLEVEL%
[23:01:03]: [Step 5/5] in directory: C:TeamCitybuildAgentwork71e78d4c543e0594
[23:01:03]: [Step 5/5] creating shell object
[23:01:03]: [Step 5/5] creating zip file
[23:01:03]: [Step 5/5] setting folder to unzip to
[23:01:03]: [Step 5/5] about to copy files from zip
[23:01:03]: [Step 5/5] finished
[23:01:03]: [Step 5/5] Process exited with code 0
[23:01:03]: Publishing internal artifacts
[23:01:03]: [Publishing internal artifacts] Sending build.finish.properties.gz file
[23:01:03]: Build finished

Se eu executar o comando exato no servidor da conta TeamCity, ele funcionará corretamente:

C:Windowssystem32cmd.exe /c C:WindowsSysWOW64WindowsPowerShellv1.0powershell.exe -NonInteractive -File C:TeamCitybuildAgentwork71e78d4c543e0594Toolstest.ps1 && exit /b %ERRORLEVEL%

Só posso pensar que é algo que o TeamCity está fazendo ou algo relacionado ao fato de estar funcionando como um serviço, mas estou perplexo e não consigo descobrir isso.

Respostas:

1 para resposta № 1

Corri para esse mesmo problema ontem.Tem algo a ver com permissões, embora nenhum erro tenha sido registrado. Tenho uma máquina Windows Server para meu agente de compilação e a configurei para funcionar como um serviço do Windows. Mudei a configuração de Login para o serviço ser um usuário em vez da conta SYSTEM e tudo parecia bem até que eu tive o mesmo problema que você. Nunca encontrei uma maneira de consertar ao executar o agente como um serviço, então mudei para executar o agente a partir do arquivo /bin/agent.bat. Eu poderia obter praticamente a mesma configuração executando-o como uma tarefa agendada e na inicialização. Mas, no final das contas, mudar para não funcionar como um serviço do Windows resolveu o problema para mim.


3 para resposta № 2

Usei a resposta de "user1545905", mas precisei reiniciar manualmente o serviço do agente TeamCity após a reinicialização do servidor. Você pode fornecer ao usuário de serviço do agente TeamCity Controle total sobre o diretório.