web-dev-qa-db-ja.com

シャットダウンスクリプトを追加する方法(gpedit.mscやActive Directoryを使用しない方法)

XPワークステーションにシャットダウンスクリプトとして展開するスクリプトを作成しました。UI(gpedit.msc)を使用してスクリプトをシャットダウンスクリプトとして追加できることはわかっていますが、スクリプトの展開を自動化します。ワークステーションはWindowsドメインの一部ではありません。OCSインベントリで展開します。

Windowsレジストリにエントリを追加しようとしましたが、これは機能しません。 gpedit.mscを実行したときに追加したものが表示されません。 gpedit.mscで何かを追加すると、手動でレジストリに追加したものを上書きするようです。

6
Francis

私はそれを働かせました。

1台のコンピューターにgpedit.mscでスクリプトを追加しました。 HKLM\Software\Policies\Microsoft\Windows\System\ScriptsおよびHKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\State\Machineからレジストリキーをエクスポートしました。 C:\WINDOWS\SYSTEM32\GroupPolicyディレクトリも圧縮しました。

別のコンピューターで、最初のコンピューターでイヤラーをエクスポートした2つの.regファイルでレジストリにパッチを適用しました。また、Zipファイルを2台目のPCの同じ場所に解凍しました。

スクリプトはシャットダウン時に実行され、gpedit.mscに表示されます。すべてが良いようです!

3
Francis

これを機能させるのに苦労している人にとって、私の同情。私は何百時間もかけて、gpeditが何百もの変更を加えることが実際に重要であるかを正確に理解しようとしました。私のテストはWindows Server 2016で行われました。これらは適切であることがわかりました。

  1. 以下の値:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0\0
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0\0
    
  2. ディレクトリ:

    \Windows\system32\GroupPolicy\Machine\Scripts\Startup
    \Windows\system32\GroupPolicy\Machine\Scripts\Shutdown
    

Windowsは、これらのディレクトリをスクリプトの作業ディレクトリとして使用します。スタートアップ/シャットダウンスクリプトをそこに保持していなくても、これらのディレクトリが存在している必要があります。

他にgpeditは重要ではないようです。これには、多くのレジストリエントリと他の回答で参照されている.iniファイルが含まれます。上記のキーの一部が不必要である可能性もありますが、テストの忍耐力を使い果たしました。

9
jtatum

起動スクリプトはC:\ MyStartupScript.batにあるものとします。

次の2つの場所の両方にあるScriptと呼ばれる値がC:\ MyStartupScript.batに設定されたREG_SZレジストリエントリが必要です。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\0

C:\ WINDOWS\system32\GroupPolicy\Machine\Scripts\Scripts.iniにも次のエントリが必要です。

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

シャットダウンスクリプトの場合は、同じ手順に従いますが、WordのすべてのインスタンスStartupをWordに置き換えますShutdown

編集:

他に2つのレジストリエントリが存在しない場合は、それらも作成する必要があるようです。

上記の両方のレジストリの場所にそれらを作成する必要があります。

最初のエントリはParametersと呼ばれるREG_SZエントリで、その値は空のままにできます。

2番目のエントリはExecTimeと呼ばれるREG_QWORDエントリであり、その値は 00 00 00 00 00 00 00 00 00 00 00 00 00 00 に設定されています。

Windows XPでは、REGコマンドはREG_QWORDエントリをレジストリに追加できません。

この制限を回避するには、たとえば、これらの行を追加するバッチファイルを使用します

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0]
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

addQword.regというファイルに、次のコマンドを使用してファイルを実行します。

regedit /s addQword.reg
3
Eric Glass

フランシスの回答の小さな更新。

Windows Server 2016の場合、HKLM\Software\Policies\Microsoft\Windows\System\ScriptsHKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scriptsに移動しました

だから私は以下のレジストリキーをエクスポートすることでそれを機能させました:

HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine

フランシスがコピーを提案したように

C:\ WINDOWS\SYSTEM32\GroupPolicy

1
AlexShah

ここでキーを追加できます:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown

詳細については、こちらをご覧ください: http://en.kioskea.net/faq/3358-execute-a-script-a-startup-and-shutdown

キーをレジストリに追加するには、すべてのマシンで実行されるregファイルを作成する必要があります。

0
sidprak

1つのサーバーでgpedit.mscを使用してシャットダウンスクリプトを作成し、レジストリキーをエクスポートして、ターゲットサーバーにインポートしました。次のキーを使用します。

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

以下のファイルをターゲットにコピーする必要もあります。

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

Powershellスクリプトの場合は、代わりに次のファイルをコピーします。

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

0
Andrew Brennan