Como adicionar um script de desligamento (não usando gpedit.msc ou diretório ativo)?

4

Eu criei um script que quero implantar nas minhas estações de trabalho XP como um script de desligamento. Eu sei que posso adicionar meu script como um script de desligamento com a interface do usuário (gpedit.msc), mas eu quero automatizar a implantação do meu script. Minhas estações de trabalho não fazem parte de um domínio do Windows. Vou implantar com o Inventário do OCS.

Eu tentei adicionar entradas ao registro do Windows, mas isso não funciona. Eu não vejo o que eu adicionei quando eu corro gpedit.msc. Se eu adicionar algo com o gpedit.msc, isso parece substituir o que adicionei manualmente ao registro.

    
por Francis 06.04.2012 / 20:16

5 respostas

2

Eu consegui trabalhar.

Eu adicionei o script com gpedit.msc em um computador. Eu exportei chaves de registro de HKLM\Software\Policies\Microsoft\Windows\System\Scripts e HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine . Eu também fechei o diretório C:\WINDOWS\SYSTEM32\GroupPolicy .

Em um computador diferente, atualizei o registro com meus 2 arquivos .reg que exportei earler no meu primeiro computador. Também descompactei meu arquivo zip para o mesmo local no segundo computador.

O script está sendo executado no desligamento e eu o vejo em gpedit.msc. Tudo parece ser bom!

    
por 13.04.2012 / 22:45
6

Para quem está lutando para conseguir que isso funcione, minha simpatia. Passei muitas horas tentando descobrir exatamente quais das centenas de alterações feitas são realmente importantes. Meus testes foram realizados no Windows Server 2016. Eles se mostraram relevantes:

  1. Os valores abaixo:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]
    \Windows\system32\GroupPolicy\Machine\Scripts\Startup
    \Windows\system32\GroupPolicy\Machine\Scripts\Shutdown
    
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]
    \Windows\system32\GroupPolicy\Machine\Scripts\Startup
    \Windows\system32\GroupPolicy\Machine\Scripts\Shutdown
    
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]%pre%%pre% HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]%pre% HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]%pre%%pre%
    %pre% HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]%pre% HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]%pre%%pre%
  2. Os diretórios:

    %pre%

O Windows usa esses diretórios como o diretório de trabalho dos scripts. Mesmo que você não mantenha seus scripts de inicialização / desligamento, esses diretórios precisam existir.

Nada mais gpedit parecia importar. Isso inclui muitas entradas do Registro e os arquivos .ini referenciados em outras respostas. É possível que algumas das chaves acima também sejam supérfluas, mas acabei ficando sem paciência.

    
por 05.03.2018 / 19:07
1

Vamos fingir que nosso script de inicialização está localizado em C: \ MyStartupScript.bat

Você precisa de uma entrada de registro REG_SZ chamada Script com seu valor definido como C: \ MyStartupScript.bat localizado nos dois locais a seguir:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Diretiva de Grupo \ Estado \ Machine \ Scripts \ Inicialização \ 0 \ 0

HKEY_LOCAL_MACHINE \ SOFTWARE \ Políticas \ Microsoft \ Windows \ Sistema \ Scripts \ Inicialização \ 0 \ 0

Você também precisa da seguinte entrada em C: \ WINDOWS \ system32 \ GroupPolicy \ Machine \ Scripts \ Scripts.ini

[Startup]
0CmdLine=C:\MyStartupScript.bat
0Parameters=

Para um script de desligamento, siga as mesmas instruções, mas substitua todas as instâncias da palavra Startup pela palavra Shutdown

editar:

Parece que você também precisa criar duas outras entradas de registro se elas ainda não existirem.

Você precisará criá-los nos dois locais de registro mencionados acima.

A primeira entrada é uma entrada REG_SZ chamada Parâmetros e seu valor pode ser deixado em branco.

A segunda entrada é uma entrada REG_QWORD chamada ExecTime e seu valor é definido como 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

No Windows XP, o comando REG não pode adicionar uma entrada REG_QWORD ao registro.

Para contornar essa limitação, eu, por exemplo, uso um arquivo em lote que adiciona essas linhas

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup
regedit /s addQword.reg
[Startup]
0CmdLine=C:\MyStartupScript.bat
0Parameters=
] "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

para um arquivo chamado addQword.reg , em seguida, executa o arquivo usando este comando:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup
regedit /s addQword.reg
%pre%] "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
    
por 29.06.2016 / 00:19
0

Você pode adicionar chaves aqui: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Diretiva de grupo \ Estado \ Machine \ Scripts \ Shutdown

Procure aqui mais informações: link

Você só precisará criar um arquivo reg que será executado em todas as suas máquinas para adicionar a chave ao registro.

    
por 06.04.2012 / 21:42
0

Eu criei um script de desligamento usando gpedit.msc em um servidor, em seguida, exportei a chave do Registro e importei-a para os servidores de destino. Use a seguinte chave:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts]

Você também precisará copiar o arquivo abaixo para o destino:

C:\Windows\system32\GroupPolicy\Machine\Scripts\scripts.ini

Se for um script do Powershell, copie o seguinte arquivo:

C:\Windows\system32\GroupPolicy\Machine\Scripts\psscripts.ini

    
por 22.10.2018 / 16:00