PowerShellを使ってWindowsの自動再起動を含めた処理の自動化をする方法…の一例を紹介します。最近だとPowerShell3.0でリモートPowerShellを使うとコマンド1発だったりするのですが、PowerShell2.0以前だったり自ホストに対しての処理を行うような場合にはまだ需要はあるものと思います。

自動ログオンさせる

自動ログオンさせるのは以下のようにできます。

[gist id=3987219]

単純にレジストリにユーザー名、パスワードを書いてしまえばOKです。

参考

- [AutoAdminLogon](http://technet.microsoft.com/en-us/library/cc939702.aspx)
- [DefaultUserName](http://technet.microsoft.com/en-us/library/cc939710.aspx)
- [DefaultDomainName](http://technet.microsoft.com/en-us/library/cc939708.aspx)
- ※DefaultPasswordに関してはMSの技術文章が見つからないですね…。

再起動後にPowerShellスクリプトを実行する

再起動後(のログオン後)にPowerShellスクリプトを自動的に実行させるのは以下のようにできます。

[gist id=3987231]

RunOnceレジストリキーに書き込んでおくという方法です。

参考

- [レジストリの RunOnce キーの定義](http://support.microsoft.com/kb/137367/ja)

これらの方法を組み合わせれば、再起動~自動ログオン~PowerShellスクリプト実行を全自動で行うことができます。