Como posso criar um script de desligamento do windows a partir do powershell / linha de comando?

5

Li as páginas do TechNet que descrevem o uso de scripts de inicialização / desligamento de computadores / usuários e isso é ótimo, mas eu gostaria de criar esses scripts através da linha de comando (e não ter que clicar em gpedit.msc).

Parece que scripts.ini e psscripts.ini em % SYSTEMROOT% \ System32 \ GroupPolicy \ Machine \ Scripts especifica os scripts para executar, mas eles não existem até executar gpedit.msc pela primeira vez. É seguro criar e editar esses diretamente? Ou eu preciso mexer com Set-GPO ou algo semelhante? Obrigado!

    
por David Rubin 27.05.2014 / 22:06

3 respostas

1

A Diretiva de Grupo pressupõe que você esteja em um ambiente de domínio do Active Directory, em cujo caso os Objetos de Diretiva de Grupo (GPOs) são gerenciados centralmente e atribuídos a computadores. Para máquinas individuais, a Política de segurança local pode ser usada para produzir resultados semelhantes aos GPOs gerenciados centralmente.

Normalmente, no Active Directory, os scripts de login são atribuídos a objetos Usuário, embora você também possa fazer isso por meio da Diretiva de Grupo.

Se você não estiver usando o Active Directory ou quiser apenas configurá-lo em um número relativamente pequeno de computadores, certamente poderá fazer isso com o PowerShell usando o Agendador de Tarefas. Com o Agendador de Tarefas, você pode criar eventos para serem executados na inicialização, no término da sessão ou no logon.

    
por 27.05.2014 / 22:17
0

Você pode usar o comando shutdown?

Sintaxe do comando de desligamento do Technet

    
por 27.05.2014 / 23:41
-1

Eu suponho que você está querendo um evento de desligamento?

Basicamente, é impossível executar um script quando ocorre um evento de desligamento, logoff, sim, mas o desligamento não. Eu tenho um aplicativo c # que escuta a mensagem de desligamento, mas quando a mensagem chega, não é possível gerar novos processos, e o evento é muitas vezes perdido.

  1. O Windows envia a mensagem de desligamento do WM para todas as janelas WM_CLOSE de nível superior, etc. - mas em ordem serial para todos os programas da área de trabalho. Se você é o último a conseguir, você não tem mais tempo.

  2. O Windows tem um módulo de carregamento / descarregamento de processo ou bloqueio de dll que significa que, quando os aplicativos estão sendo encerrados ou descarregados, os aplicativos não podem ser carregados exatamente no mesmo instante - é um problema de proteção de compartilhamento único de compartilhamentos. Feito para salvar a RAM, mas nos pega aqui, atrasando as coisas em um período ocupado para o O / S.

  3. O Windows tem um sinalizador interno para não iniciar nenhum novo processo ou script que estamos finalizando. Isso significa que qualquer escuta, só pode gravar em um arquivo remoto ou usar uma conexão TCP ou similar para deixar alguém saber o seu fechamento. Normalmente, você não pode executar nenhum script novo durante o desligamento.

por 08.09.2014 / 12:35