Por que a execução do script Powershell linha por linha funciona, mas o mesmo ocorre na execução do arquivo de script - não?

Por que a execução do script Powershell linha por linha funciona, mas o mesmo ocorre na execução do arquivo de script - não?

No Windows 7 Prof, executar no Windows Powershell_ISE (como administrador) os comandos Powershell (ver. 3) produz o resultado esperado (de adicionar um usuário de domínio ao grupo Administradores local/máquina), mas iniciá-lo a partir de um arquivo de script .ps1 na pasta C:\Users\myDomainUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupnão !?

$objGroup = [ADSI]("WinNT://myComputerName/Администраторы")'Administrators in Russian
$objUser = [ADSI]("WinNT://myDomainName/myDomainUser")
$objGroup.PSBase.Invoke("Add", $objUser.PSBase.Path)

Por que?
Como adicionar melhor um usuário de domínio ao grupo de administradores locais na reinicialização do Windows 7?

Responder1

Por motivos de segurança (e além da política de execução de scripts), a Microsoft configurou arquivos .ps1 para serem abertos usando o bloco de notas. (Microsoft boba.) Tarefas agendadas podem ser uma solução melhor, mas se você quiser iniciar o script a partir da pasta de inicialização, recomendo colocar um atalho para o script na inicialização e armazenar o script em outro lugar. Eu uso atalhos parecidos com estes:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file "C:\Scripts\Powershell\Tool.ps1"

Se você usar esta sintaxe, observe que quaisquer opções adicionais que você queira passar para o PowerShell devem vir antes da opção -file. Qualquer coisa após o -file é interpretado como o caminho para o script ou uma opção/argumento a ser passado para o script.

Responder2

Você pode tentar executá-lo usando o agendador de tarefas.

Inicie o agendador de tarefas (menu iniciar, todos os programas, acessórios, ferramentas do sistema, agendador de tarefas). No painel direito, selecione “criar tarefa”. Insira um nome para a tarefa. Altere o usuário se desejar. Selecione "executar com privilégios mais altos". Na aba de gatilhos, crie um gatilho para “no logon” ou “na inicialização”, dependendo do que você deseja. Na aba de ações, crie uma nova ação que aponte para o script.

informação relacionada