【PowerShell】レジストリを直接読み書きする方法|ポリシーや設定の自動適用

【PowerShell】レジストリを直接読み書きする方法|ポリシーや設定の自動適用 PowerShell

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)は、必要に応じて StringDWordQWord などに指定可能です。

新しいレジストリキーや値を作成

存在しないキーを新しく作るには 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を使えば、レジストリの読み取りから設定の追加・変更・削除までを一貫して自動化できます。企業環境でのポリシー配布や、検証用マシンの一括設定、ログオンスクリプトなどの用途において、レジストリ操作は非常に強力なツールです。実行には十分な注意を払いながら、効率的な管理に活用しましょう。