環境
WindowsServer2019
Windows10
ドメインの機能レベル Windows Server 2016
スクリプトの設定
echo "test"
set logdate=%userprofile%\desktop\date.log
echo %date% %time% >> %logdate%
@rem pause
pause
WindowsServerの下記フォルダにbatファイルを配置する
C:\Windows\SYSVOL\sysvol\DCのドメイン名\Policies\GPOのID\User\Scripts\Logon
C:\Windows\SYSVOL\sysvol\DCのドメイン名\Policies\GPOのID\User\Scripts\Logout
スタートアップ/シャットダウン時に起動したいスクリプトもCドライブ下に配置する。
グループポリシーオブジェクト配下から適当なGPOを右クリック→「編集」でグループポリシー管理エディターを開く。
スタートアップ/シャットダウン時にスクリプトを起動させる場合は赤のスクリプト、ログオン/ログアウト時は青のスクリプトに設定する。
ユーザーに対してスクリプトを設定する場合(ユーザーの構成)は、【グループポリシーの管理】の設定したポリシーに紐づいているOUと【Active Directoryユーザーとコンピューター】で先程と同じOUにユーザーオブジェクトを紐づける必要がある。(ログオンスクリプト)
Clientマシンに対してスクリプトを設定(コンピューターの構成)する場合は、【グループポリシーの管理】の設定したポリシーに紐づいているOUと【Active Directoryユーザーとコンピューター】の同じOUに紐づいているのがコンピューターオブジェクトでないと動作しないから注意。(スタートアップスクリプト)
ログオンかログオフをクリック→【ログオンのプロパティ】が開かれるので、「追加」クリック→【スクリプトの追加】で参照をクリック→batファイルを選択して「開く」をクリックするとプロパティ画面に戻るので「適用」をクリック。
ログオンスクリプトを設定した場合、
「コンピューターの構成」→「管理用テンプレート」→「システム」→「スクリプト」→「ログオンスクリプトを同期的に実行する」をクリック。「有効」にチェックして「適用」→「OK」クリック。
更新後の確認
スタートアップスクリプトで設定した場合はgpresult /zで確認出来るが、ログオンスクリプトで設定した場合だと確認の仕方が不明。
以下の出力はコンピューターの構成に設定したスクリプトが適用されているかを確認している。
コンピューターのポリシーの結果セット
-------------------------------------
ソフトウェア インストール
-------------------------
N/A
スタートアップ スクリプト
-------------------------
GPO: test2
名前: test.bat
パラメーター:
最終実行: このスクリプトはまだ実行されていません。
シャットダウン スクリプト
-------------------------
GPO: test2
名前: test.bat
パラメーター:
最終実行: このスクリプトはまだ実行されていません。
ログオンスクリプトが動作しない
以下を参照。
windows10では高速ログオンの設定を変更するにはドメインユーザー側の管理者権限でgpeditを開く必要がある。
WaitForNetwork、GpNetworkStartTimeoutPolicyValue もドメインユーザー側のregeditを管理者権限で開き、設定を追加。
低速リンクの検出の無効化はDC側で設定可能。