PowerShellスクリプトサンプル(Windows Server環境構築 初期設定の一括実行)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

小ネタです。

AWS環境上にWindowsインスタンスを構築する際の手順の1つとしてCloudFormationで一発ドンと作ってしまうと言うのがまず思い付く方法かと思いますが、CloudFormationからWindowsOS内部の設定を行うスクリプト部分の記載は若干癖があり、多少複雑なスクリプトを書こうとするとデバッグも辛味が増してくる感がして来ています。(※あくまでも個人の感想です)

この為、私個人的には以下の方針でWindows(ここでは主にWindows Server 2012)インスタンスの準備を行っている今日この頃だったりします。

  • Windowsインスタンスの構築まではCloudFormationで作成
  • WindowsOS内部の設定等についてはPowerShellや手動で設定

がしかし、後半のWindowsOS内部の設定については幾つか手動で行っていたためやはり少々手間が掛かっていました。そこでコピペでドン!で作業が済むような簡易的にPowerShellスクリプトをこしらえてみました。

前提とか準備とか

ここで使うインスタンスは、以下の様なWindows Server 2012 日本語版のものを使います。

windows-server-instances

また、Windowsインスタンス稼働後、PowerShellを起動する際は管理者権限で起動してください。

windows-powershell-launch-by-admin

PowerShellスクリプトサンプル

以下が今回のエントリで使うPowerShellスクリプトサンプルです。PowerShellコンソールウインドウにコピペしてください。コードが実行され、OS再起動までの処理を行います。

以下サンプルスクリプトはWindowsOSの一部レジストリを書き換える操作となります。
実行の際は自己責任でお願いします。
## PowerShell実行ポリシーの変更(強制)
Set-ExecutionPolicy RemoteSigned -force

## AWSデフォルトリージョンの設定
Set-DefaultAWSRegion us-east-1

## 現在の言語に日本語を追加/表示言語の上書き設定
## Set-WinUserLanguageList ja-JP, en-US -Force
## Set-WinUILanguageOverride -Language ja-JP

## タイムゾーンを変更
tzutil.exe /s "Tokyo Standard Time"

## フォルダオプション(拡張子を表示する)
Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -name "HideFileExt" -Value 0

## フォルダオプション(隠しファイル、隠しフォルダ、隠しドライブを表示する)
Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -name "Hidden" -Value 1

## OS再起動
Restart-Computer

まとめ

以上、簡単ではありますがWindowsインスタンス環境準備の為のお手軽スクリプトのご紹介でした。Windows PowerShellはこの他にも色々な事が行えるので、適宜PowerShellやその他関連スクリプトで処理を置き換え、効率化を図って行きたいところですね。このエントリの内容についてもその辺りを踏まえて適宜追記・更新をして行きたいと思います。こちらからは以上です。

参考情報: