新規インストールしたWindows環境を自分好みに素早く構成する方法:山市良のうぃんどうず日記(188)
今回は、新規インストールしたWindows/Windows Serverを特定の目的に応じた基本構成にしたり、自分が使いやすいように素早くかつ安全、確実にカスタマイズしたりする方法を考えてみました。筆者がテストや評価のためにWindowsやWindows Serverを新規インストールする際に利用することを想定しましたが、カスタマイズすればWindows/Windows Serverの基本構成に応用できると思います。
新規のPCを“自分好み”にするには毎回手間がかかる
読者の皆さんにも、新しいWindows PCを手にしたときに、これだけはまず済ませておくという使用環境の調整作業があると思います。例えば筆者の場合、「エクスプローラー(Explorer.exe)」の表示オプション「ファイル名拡張子」をチェックして、拡張子を真っ先に表示させます。また、Windowsコンピュータに自動的に設定される「コンピューター名」(DESKTOP-XXXXXXXやWIN-XXXXXXX、XXXXXXはランダム)が気になり、分かりやすい名前に変更する人もいるでしょう。複数のPCをお持ちの場合、Pro以上のエディションではリモートデスクトップ接続の許可設定を行うかもしれません。
個人ユーザーが新しいWindows PCを手にする機会は、そう頻繁にあるものではありません。なので、その都度、手動で設定すればよいことです。しかし、大量のPCを導入するIT管理者や、物理/仮想マシン環境にテストや評価のために何度も新規インストールするITエンジニアにとっては手間のかかる作業です。
筆者は昔から、「ファイル名拡張子」を“既定でオン”にしてくれないものかと思ってきました(画面1)。「Windows 8」になって表示オプションのチェックのオン/オフで簡単に切り替えることができるようになりましたが、それでも手間です(「Windows 10」では「設定」アプリの「開発者向け」オプションから切り替えることも可能です)。「Windows 7」以前は「フォルダーオプション」を開いて「登録されている拡張子は表示しない」をオフにする必要があり、もっと手間がかかりました。
画面1 筆者が新しいWindows PCで必ず行う「ファイル名拡張子」オプションをチェックする操作。拡張子を非表示にするメリットは筆者には思い当たらない。実行ファイルであることを隠すような、逆に悪意のある使われ方をされることの方が問題
こうした毎回必ず行う作業をコマンドプロンプトやWindows PowerShellのコマンドラインから実行できる方法を見つけておくことは、大量のPCや頻繁な新規インストールを行う場合に効率化できて便利です。
例えば、次の3行のコマンドラインを実行することで、「ファイル名拡張子」オプションをチェックして、エクスプローラーにファイル名の拡張子を表示させることができます(エクスプローラーは再起動されます)。
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f TASKKILL /F /IM explorer.exe START explorer.exe
Windows Serverのための自動構成バッチ(Windows 10でも利用可能)
Windows ServerのServer Core環境は、コマンドライン操作でシステムの基本的な構成を行います。CUIベースの「Sconfig」ユーティリティーも用意されていますが、メニューを選んで設定していくのは結構手間のかかる作業です(画面2)。
また、どうしてもコマンドライン操作で行う必要があるものは、コマンドラインを覚えておくのが面倒です。バッチファイルやスクリプトで一連の構成を自動化できれば、コマンドラインを覚える必要がなく便利ですし、素早く設定作業を完了できます。さらには、Server Core環境でできることは、デスクトップエクスペリエンス環境でも使えます。一部の設定については、Windows 10の構成にも応用できるでしょう。
そこで今回は、Windows Server(デスクトップエクスペリエンスおよびServer Core)の新規インストール構成を簡素化することを想定し、幾つかの基本設定やカスタマイズのためのコマンドラインを「myautoconf.cmd」としてバッチファイルにしてみました。コマンドプロンプトで単純に実行すれば(管理者権限が必要)、以下の5項目を筆者の好みに従って構成し、コンピュータを再起動します。
(1)Administratorパスワードの有効期限を「無期限」に変更する
(2)リモートデスクトップ接続を許可する
(3)エクスプローラーの表示オプション「ファイル名拡張子」をチェックする
(4)Windows Updateの自動更新を無効にする(つまり、手動更新設定にする)
(5)「コンピューター名」を変更する
(1)について少し解説します。Windows Serverの既定では、ビルトインの「Administrator」アカウント(ローカルの既定の管理者アカウント)のパスワードの有効期限は「42日」に設定されます。「ローカルユーザーとグループ」スナップイン(lusrmgr.msc)で「Administratorのプロパティ」を開き、「全般」タブで「パスワードを無期限にする」をチェックすると「無期限」になります(画面3)。
画面3 テストや評価環境なら、ビルトイン「Administrator」アカウントのパスワードは「無期限」にしておいた方が楽。なお、Windows Server 2019のデスクトップエクスペリエンスについては既定で「無期限」、それ以外のWindows Serverの既定は「42日」
ただし、例外があります。「Windows Server 2019」の「デスクトップエクスペリエンス」インストールでは、既定で「無期限」になります。既定値の変更理由は定かではありませんが、現在はパスワードの定期的な変更の意味が薄れたためと想像しています。Server Coreインストール、半期チャネル(SAC)、長期サービスチャネル(LTSC)のそれ以外のバージョン(2016以前)の既定は「42日」です。
Server Coreインストールの場合は、パスワードの有効期限を「無制限」にするために、コマンドライン操作が必要です。具体的には、コマンドプロンプトで次のコマンドラインを実行します。
WMIC USERACCOUNT WHERE Name="Administrator" SET PasswordExpires=False
なお、後述するServer Coreアプリ互換性オンデマンド機能が利用可能であれば「lusrmgr.msc」のGUIで設定することもできます。
(3)についても少し解説します。Windows Server 2019のServer Coreインストールと、半期チャネル(Server Coreのみで、デスクトップエクスペリエンスの提供なし)の「Windows Server, version 1809」以降では、「Server Coreアプリ互換性オンデマンド機能(FOD)」が用意されており、Server Core環境に「エクスプローラー(Explorer.exe)」と基本的なGUI管理ツール、「Internet Explorer(IE)11」をオプションでインストールして利用できます。
しかし、Server Core環境向けの調整が行われたGUIツールの一部は、デスクトップエクスペリエンス環境と同じものではありません。例えば、Server Core環境の「エクスプローラー」では、表示オプション「ファイル名拡張子」をオン/オフすることができません。そして、既定ではファイル名の拡張子は非表示です(画面4)。表示オプション「ファイル名拡張子」をコマンドラインからオンにする方法を調べたきっかけは、実はこのことがあったからでした。
画面4 Server Coreアプリ互換性オンデマンド機能を追加することで、Server Core環境で「エクスプローラー」が利用可能になる。ただし、この「エクスプローラー」には表示オプション「ファイル名拡張子」が存在しない
バッチファイルではコメントアウト(先頭が「REM」という文字列になっている行は実行されない)していますが、Windowsのライセンス認証、「Windowsリモート管理(WinRM)」の有効化、「PowerShell Remoting」の有効化、Server Coreアプリ互換性オンデマンド機能(FOD)の有効化のコマンドラインも含めておきました。必要な場合は、先頭のREMを取り外してください(プロダクトキーは正規のキーに書き換えてください)。
以下の「myautoconf.cmd」は必ずANSIコードで保存して実行してください(画面5)。Windows 10 バージョン1903およびWindows Server, version 1903以降の「メモ帳(notepad.exe)」は、既定で「UTF-8」で保存します。「UTF-8」で保存した場合、バッチファイル内の日本語は文字化けし、バッチファイル内のファイアウォールグループ名「リモート デスクトップ」も正しく認識されずにコマンド実行に失敗します。日本語を含まないその他のコマンドラインは正しく実行されます。
画面5 「myautoconf.cmd」によるServer Coreの基本設定の自動構成。カスタマイズ次第でWindows ServerデスクトップエクスペリエンスやWindows 10の構成にも応用できる
@echo off echo *** 簡単構成を開始します。 (続行するには Enter を、中止するには Ctrl+C を押してください) *** pause echo [1/5] ビルトイン Administrator のパスワードの有効期限を "無期限" に変更します。 WMIC USERACCOUNT WHERE Name="Administrator" SET PasswordExpires=False echo [2/5] リモート デスクトップを許可します。 (ネットワーク レベル認証のみ) REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f NETSH advfirewall firewall set rule group="リモート デスクトップ" new enable=yes REM 注:英語環境の場合はグループ名 "Remote Desktop" です。 REM NETSH advfirewall firewall set rule group="Remote Desktop" new enable=yes echo [3/5] エクスプローラー(explorer.exe)で「ファイル名拡張子」を表示させます。 (explorer.exe は再起動されます) REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f TASKKILL /F /IM explorer.exe REM 注:explorer.exe が存在しない場合、以下の行はエラーになりますが無視できます。 START explorer.exe echo [4/5] Windows Update の自動更新を無効(手動)にします。 REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU /v NoAutoUpdate /t REG_DWORD /d 1 /f REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU /v AUOptions /t REG_DWORD /d 1 /f echo [5/5] コンピューター名を変更します。(中止するには Ctrl+C を押してください) set INPUT_COMPUTERNAME= set /P INPUT_COMPUTERNAME="新しいコンピューター名: " WMIC COMPUTERSYSTEM where name="%COMPUTERNAME%" call rename name="%INPUT_COMPUTERNAME%" echo コンピューター名が "%INPUT_COMPUTERNAME%" に変更されました。新しいコンピューター名は再起動後に有効です。 REM 注:この方法でのコンピューター名の変更は、Active Directoryドメイン メンバーには使用できません。 REM echo [追加の構成] Windowsリモート管理 (WinRM) を有効化します。(TrustedHosts は全て "*" ) REM cmd /C "winrm quickconfig -force" REM cmd /C "winrm set winrm/config/client @{TrustedHosts="*"}" REM echo [追加の構成] PowerShell Remotingを有効化します。 REM powershell.exe -Command "Enable-PSRemoting" REM echo [追加の構成] Windows のライセンス認証を行います。 REM cmd /C "cscript C:\Windows\System32\slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" REM cmd /C "cscript C:\Windows\System32\slmgr.vbs /ato" REM echo [追加の構成] Server Core アプリ互換性 FOD をインストールします。 REM 注:Windows Server 2019 Server Core および Windows Server SAC(ver 1809以降)用、インターネット接続必要 REM powershell.exe -Command "Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0" REM powershell.exe -Command "Add-WindowsCapability -Online -Name Browser.InternetExplorer~~~~0.0.11.0" echo すぐに再起動するには、Enter を押してください。あとで自分で再起動する場合は Ctrl+C を押してください。 PAUSE echo 再起動を開始しています。 shutdown /r /t 0
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.