Você ainda pode executar o script - basta dizer ao PowerShell para ignorar a diretiva de execução do sistema da seguinte forma:
powershell.exe -executionpolicy bypass -file \server\share\yourscript.ps1
Estou tentando executar um script powershell por meio de um arquivo em lote, no momento estou apenas testando isso para que ele seja executado, de forma que o arquivo .ps1 seja simplesmente um script de hello world.
Este QUASE funciona bem, exceto que há uma chave inglesa para jogar nas obras;
Eu estou tentando ter o .ps1 armazenado em um local remoto (em um NAS compartilhado para ser específico). Isso funciona quando eu tenho o .ps1 salvo localmente e aponte o .bat para o local .ps1.
No entanto, agora que o .ps1 está no local remoto, estou com o seguinte erro:
"arquivo (nome do caminho) não pode ser carregado. O arquivo (nome do caminho) não é assinado digitalmente. O script não será executado no sistema"
Agora estou ciente das políticas de execução e as minhas são as seguintes:
MachinePolicy = RemoteSigned
UserPolicy = Undefined
Process = Undefined
CurrentUser = RemoteSigned
LocalMachine = Bypass
Eu tentei mudar CurrentUser para Bypass, mas estou com o seguinte:
Windows Powershell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope
Qualquer ideia seria muito apreciada!
Desculpe se isso foi muita informação! Se alguma coisa não estiver clara, sinta-se à vontade para me pedir para esclarecer! Eu sou relativamente novo em tudo isso!
Acho que o GroupPolicy configurado pela empresa está impondo a política para revogar qualquer execução de script do local remoto. Por favor, verifique a Política de Grupo nas ferramentas Administrativas.
A outra resposta pode realmente ser a resposta, mas caso você (ou qualquer outra pessoa) esteja procurando uma solução alternativa, aqui está.
No seu arquivo batch, primeiro copie o arquivo .ps1 para uma pasta local, como C: \ TEMP, e execute-o usando start c:\temp\My_Script.ps1
O início do comando fará com que o script funcione da mesma maneira que o clique duplo do explorador. Você pode não precisar copiá-lo localmente se usou uma maneira diferente de iniciar o arquivo.
Para o aspecto apenas .bat, uma solução seria criar um arquivo .bat que usasse instruções echo para construir um script powershell local e, em seguida, executar o script local
Como isso seria prático dependeria de quão complexo o script precisava ser