PowerShellでは、Windowsのレジストリを直接操作して、各種設定やポリシーを自動で適用することが可能です。グループポリシーで反映される内容や、ユーザー環境の調整も、レジストリ操作で実現できます。
レジストリの読み取り
レジストリの値を取得するには Get-ItemProperty
コマンドレットを使用します。
# 例:自動更新の設定を確認(Windows Update)
Get-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
パスは HKEY_LOCAL_MACHINE
(HKLM)や HKEY_CURRENT_USER
(HKCU)などのレジストリルートを使って記述します。
レジストリへの書き込み
新しい値を書き込む場合や、既存の値を更新する場合は Set-ItemProperty
を使います。
# 例:自動更新の構成を変更
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 1 -Type DWord
値の種類(-Type
)は、必要に応じて String
、DWord
、QWord
などに指定可能です。
新しいレジストリキーや値を作成
存在しないキーを新しく作るには New-Item
、値を作るには New-ItemProperty
を使います。
# キーの作成
New-Item -Path "HKCU:\Software\MyApp\Settings" -Force
# 値の作成
New-ItemProperty -Path "HKCU:\Software\MyApp\Settings" -Name "EnableFeatureX" -Value 1 -PropertyType DWord
レジストリの削除
不要なレジストリキーや値は以下のように削除できます。
# 値の削除
Remove-ItemProperty -Path "HKCU:\Software\MyApp\Settings" -Name "EnableFeatureX"
# キーの削除(内容ごと)
Remove-Item -Path "HKCU:\Software\MyApp\Settings" -Recurse
注意点と実行権限
レジストリ操作はシステムに影響を与えるため、特に HKLM
を操作する際は、PowerShellを「管理者として実行」する必要があります。また、誤操作による設定不具合やシステムトラブルを避けるため、事前のバックアップやスナップショット取得を推奨します。
まとめ
PowerShellを使えば、レジストリの読み取りから設定の追加・変更・削除までを一貫して自動化できます。企業環境でのポリシー配布や、検証用マシンの一括設定、ログオンスクリプトなどの用途において、レジストリ操作は非常に強力なツールです。実行には十分な注意を払いながら、効率的な管理に活用しましょう。