セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.39 VMゲストの初期設定に役立つスクリプト|ラボ環境 in オンプレを作る(7)
2024年09月02日配信
2024年09月06日更新
執筆者:山内 和朗
前回(vol.38)は、Hyper-V VMを作成および管理するHyper-Vホスト側で利用するPowerShellスクリプトを紹介しました。今回はWindowsゲストを実行するHyper-V VM側に事前にコピーしておいているバッチおよびスクリプトを紹介します。主な目的は、ゲストOSの初期設定の簡素化です。
WindowsのVMテンプレートには、「C:¥vmtools」フォルダーにこれまで作成したスクリプトやバッチ、無人応答ファイル(unattend.xml)のテンプレートをあらかじめコピーしておいています。それらはVMの展開後に、必要に応じて、手動で実行することを想定して配置したものです。その中の「run1st.cmd」を紹介します。このバッチを管理者として実行することで、y/n形式で答えていくことで設定を簡素化します(画面1)。
画面1 VMの展開後に「run1st.cmd」を管理者として実行し、検証、テスト環境でよくする設定を自動化する
[run1st.cmd](ANSIエンコードで保存すること)
※注意: このバッチスクリプト内で使用している「WMIC」コマンドは既に非推奨となっており、Windows 11バージョン22H2はオンデマンド機能(既定で有効)になりました。Windows 11およびWindows Serverの次のリリースでは、オンデマンド機能は既定で無効になり、さらに詳細のリリースではWMICの機能はWindowsから削除される予定です。
WMI command line (WMIC) utility deprecation: Next steps(Windows IT Pro Blog)
「run1st.cmd」では、エクスプローラーの表示設定の変更、セキュリティが強化されたWindowsファイアウォールの無効化/有効化、PowerShell実行ポリシーの変更、Administratorのパスワードを無期限に設定、コンピューター名の変更、およびWindows Updateの即時実行をバッチ化しており、y/nで答えていくことで必要な設定を行います。エクスプローラーの表示設定の変更、Windowsファイアウォールの無効化/有効化については、2回目以降の実行でnで答えた場合に既定に戻すこともできます(それ以外は一方向です)。
エクスプローラーの表示設定は、表示オプションの変更時(拡張子の表示/非表示、隠しファイルの表示/非表示、OSファイルの表示/非表示)のアクティビティをWindows SysinternalsのProcess Monitor(procmon)でキャプチャし、レジストリの変更場所を調べたものをREGコマンドで表現しました(画面2、画面3)。Procmonについては「ITニュース. Sysinternals更新情報: Process Monitor v4.0(さらにv4.01)」の記事をご覧ください。なお、これらの設定の変更は、Windowsの再起動後に有効になります。
画面2 エクスプローラーの表示オプションの変更操作時のアクティビティを、Procmonでキャプチャ
画面3 エクスプローラーのプロセスによるレジストリ値の設定(RegSetValue操作)から、表示オプションの保存先を見つける
Windowsファイアウォールの設定は、コマンドプロンプトで以下のコマンドラインを実行することで、即時にオフ/オンすることができます。
C:¥> netsh advfirewall set allprofiles state offまたはon |
PowerShellの実行ポリシーは、PowerShellスクリプトの実行の可否を制御します。以下のコマンドラインでRemoteSignedに設定することで、ローカルスクリプトの実行が許可されます。インターネットからダウンロードされたスクリプトについては、デジタル署名が必要です。この設定はWindows Serverの既定の実行ポリシーです。Windowsクライアントの既定はRestricted(スクリプトの実行は不可)です。
PS C:¥> Set-ExecutionPolicy RemoteSigned |
Administratorのパスワードの期限については、評価、テスト環境を想定したものです。WindowsクライアントではAdministratorアカウントは既定で無効なので、特に設定変更は不要です。Windows Serverについては、パスワードを無期限にしておくことが多いと思います。そのためにこの設定を用意しました。
VMテンプレートから展開したVMのコンピューター名は、ランダムに設定されます。WMICコマンドを次のように実行すると、コンピューター名を変更することができます。
C:¥> wmic computersystem where name="%computername%" call rename name=<新しいコンピューター名>" |
Windows Updateについては、「メモ. Windows Update補完計画、フェーズ2」でも紹介した、Microsoft提供のサンプルスクリプトをそのままコピーしたものを使用しています。
Windows UpdateエージェントAPIの使用|更新プログラムを検索、ダウンロード、インストールする(Microsoft Learn)
2024年10月08日 | メモ. 必要な機能は標準装備で意外と簡単! Hyper-Vホストクラスターの構築 |
---|---|
2024年10月07日 | vol.49 電子メールによる通知|BOMおじさんとZabbix(5) |
2024年10月03日 | ITニュース. Windows 11バージョン24H2(OSビルド26100)の一般提供開始 |
2024年10月03日 | vol.48 「アクティブチェック: 不明」の理由は大文字小文字|BOMおじさんとZabbix(4) |
2024年10月02日 | ITニュース. Windows Server 2025、ホットパッチ(プレビュー)提供開始と最新プレビュービルドの公開 |
2024年09月30日 | vol.47 Windows Serverを監視対象に追加する|BOMおじさんとZabbix(3) |
2024年09月26日 | vol.46 Zabbix UIのセットアップと日本語化|BOMおじさんとZabbix(2) |
2024年09月25日 | ITニュース. 企業のパッチ管理の基盤「WSUS」が非推奨へ、どうする!?オンプレのパッチ管理 |
2024年09月24日 | vol.45 BOMを担ぐおじさん、Zabbixと戯れる |
2024年09月19日 | vol.44 USBドライブのマウントを強制解除|コマンド&スクリプト強化週間 |