この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
Windows使っているとユーザーのログオン/ログアウトのタイミングでスクリプトを実行させたいシチュエーションに遭遇することがあります。
そんな訳で今回はログオン/ログオフスクリプトについて書いておきたいと思います。
クリック可能な目次
Windows Server 2012 R2でのログオンスクリプト遅延問題の対応
Windows Server2012 R2では、ログオンスクリプトの挙動として「ユーザーがログオンしてすぐに実行されず、5分待ってから実行される」という遅延問題が既知の問題としてMSで挙げられています。
参考 ログオン スクリプトは、ユーザーが Windows 8.1 ベースのコンピューターにログオンした後、5分間は実行されません。
「ログオンした後、5分間は実行されない」というのはどうやら、ログオンスクリプトの仕様の問題のようです。
この問題の対応として、以下の対策を施しておきます。
「ファイル名を指定して実行」にて「gpedit.msc」と入力して実行。
グループポリシーの設定で、[ローカルグループポリシー]-[コンピュータの構成]-[管理用テンプレート]-[システム]-[グループ ポリシー]にある「ログオン スクリプトの遅延を構成する」を『未構成』⇒『無効』に変更します。
「未構成 ⇒ 無効」にチェックして「OK」を押下します。
ログオンスクリプトの設定
グループポリシーの設定で、[ユーザの構成]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]にてログオンをダブルクリック。
バッチの場合は「スクリプト」タブ、PowerShellの場合は「PowerShell スクリプト」タブにそれぞれ設定していきます。
バッチの場合
スクリプトタブにて「追加」をクリックします。
ログオン時に実行したい「バッチ」をフルパスで登録します。
「OK」をクリックしてスクリプトの登録を完了させます。
これで、ユーザログイン時にログオンスクリプトに登録したバッチが自動で実行されます。
PowerShellの場合
WindowsServer2008といった古いOSだと、PowerShellが実行出来なくなっている場合があります。
その場合のみ「PowerShell」の実行許可設定を行います。
まずはPowerShellの有効化をします。
PS C:UsersAdministratorDesktop> Get-ExecutionPolicy
Restricted
PS C:UsersAdministratorDesktop> Set-ExecutionPolicy RemoteSigned
PS C:UsersAdministratorDesktop> Get-ExecutionPolicy
RemoteSigned
バッチと同じ要領で登録します。
こんな感じで登録完了。
これでいけるハズ!
ログオフスクリプトの設定
グループポリシーの設定で、[ユーザの構成]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]にてログオフをダブルクリック。
ログオフスクリプト時と同様、バッチの場合は「スクリプト」タブ、PowerShellの場合は「PowerShell スクリプト」タブにそれぞれ設定していきます。
バッチの場合
スクリプトタブにて「追加」をクリックします。
2. ログオフ時に実行したい「バッチ」をフルパスで登録します。
3. 「OK」をクリックして登録を完了させます。
これで、ユーザログイン時にログオンスクリプトに登録したバッチが自動で実行されます。
PowerShellの場合
ログオン同様、OSが古い場合はPowerShellの有効化を行います。
(手順は前述)
バッチと同じ要領で登録します。
こんな感じで登録完了。
これでいけるハズ!
ログオン/ログオフスクリプトは上手く行きましたか?
ログオン/ログオフスクリプトはドメイン環境下だったりすると、それなりに使う機会があると思いますので知っておいて損はない機能だと思います。
バッチ同様、PowerShellも同様に実行出来るはずなのですが、手元の環境では何故か上手くいかず・・・orz
20150622 追記
バッチと同じように登録してやれば問題なく動作することがわかりました。手順も反映済み。
ログオンスクリプトが動かないならこちらもチェック。
ログオンスクリプトが動かない!キャッシュログオン無効化すると動くかも
もしかしたら、GPO周りが原因の場合もあるのでこちらも。
ActiveDirectoryでGPOが適用されない時に確認したいこと
以上、あいしんくいっとでした。