Azure上でVMの検証作業を行っていると何度もVMをデプロイすることがあり、このとき、OS上で決まりきった設定を何度も行う羽目にある。毎回GUIでポチポチ設定変更するのも効率が悪いので、コマンド一発で実施できるようにしておきたい。
実現したいこと
今回は、フォルダオプションの設定を行うコマンドを作成する。
具体的に実現したい設定は以下の通りだ。
- [隠しファイル、隠しフォルダ、隠しドライブの表示]の有効化
- [ファイル拡張子の表示]の有効化
基本的にはPowerShellコマンドレットでの記載を行うが、それ以外に実施する方法がある場合は併せてその方法も記載していく。今回行う変更はPowerShellによる変更、reg.exeの実行による変更の2通りの方法があるので章別に解説を行う。
今後は、分野ごとに複数エントリに分けて設定変更コマンドを作成、最終的には一つにまとめてカスタムスクリプト拡張機能用スクリプトにする想定だ。
PowerShellで実施する場合
[隠しファイル、隠しフォルダ、隠しドライブの表示]を行うPowerShellコマンドレット
Set-ItemPropertyを利用する。このコマンド、公式Docsの解説を確認しても、”項目のプロパティの値を作成または変更します。”としか記載されていない。かなり広い用途で使われているようだ。
サンプルを確認するに、ファイルのプロパティ情報やレジストリ情報の更新や追加を行うことができる模様。(以前、何の作業でファイルのプロパティの変更で使った記憶がある。)
なおWindowsのフォルダオプション設定変更はレジストリ値として保持されているので、Set-Itempropertyでフォルダオプションの変更を行う場合は、対象のレジストリキーの値を書き換えることになる。
[隠しファイル、隠しフォルダ、隠しドライブの表示]については、以下のキーにぶら下がる値 [Hidden] のデータを書き換える。
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
具体的なコマンド内容は以下の通りだ。
Set-ItemProperty HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -name "Hidden" -Value 1
以下の通り変更されることが確認できる。
ファイル拡張子の表示 を行うPowerShellコマンドレット
こちらも同じくSet-ItemPropertyを利用して対象のレジストリキーの値の書き換えで実現する。以下のキーにぶら下がる値 [HideFileExt] のデータを書き換える。
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
具体的には以下のコマンドで変更を行う。
Set-ItemProperty HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -name "HideFileExt" -Value 0
以下の通り変更されることが確認できる。
reg.exeで実施してみる
隠しファイル、隠しフォルダ、隠しドライブの表示 を行うregコマンド
regコマンドでも変更できるので紹介しておく。regコマンドは読んで字のごとく、レジストリ情報の追加、削除、エクスポートなどをコマンドラインで実施できるCUIツールだ。PowerShellやコマンドプロンプトから呼び出すことができる。今回はreg addコマンドを使って対象のレジストリ値の更新を行う。
reg add に続く形でレジストリのキー、データの種類、エントリ名、値などを入力する形になる。
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v Hidden /t REG_DWORD /d 1 /f
ファイル拡張子の表示 を行うregコマンド
ファイル拡張子の表示/非表示についても同様だ。以下のコマンドを実行する。
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v HideFileExt /t REG_DWORD /d 0 /f
コメント