Windows

ChromeとEdgeのポリシーをレジストリで配る【HKLM/HKCU/Recommendedの使い分け】

スポンサーラベル
同じポリシーでも置く場所で効き方が変わる Windows

当サイトはアフィリエイト広告を利用しています。

「パスワードの保存を禁止したい」「起動時のページを社内ポータルにしたい」といった要望は、端末を配る立場だと必ず出てきます。以前 ChromeとEdgeでパスワード保存を無効化する(レジストリ) で1つの設定を扱いましたが、実際には「どこに書けばどう効くのか」を理解していないと、効かなかったり、逆に利用者が変更できなくなって問い合わせが増えたりします

この記事では、Chrome と Edge のポリシーをレジストリで配るときの考え方をまとめます。設定項目そのものより、置く場所による効き方の違いが本題です。

同じポリシーでも置く場所で効き方が変わる

1. ポリシーを書く場所は3種類ある

Chrome と Edge は、決められたレジストリキーを起動時に読み込みます。同じポリシー名でも、書く場所で挙動が変わります。

書き込み先効き方
HKLM\SOFTWARE\Policies\...全ユーザーに強制。利用者は変更できない
HKCU\SOFTWARE\Policies\...そのユーザーだけに適用
...\Policies\...\Recommended初期値として配る。利用者はあとから変更できる

ブラウザごとのキーは次のとおりです。

Chrome : HKLM\SOFTWARE\Policies\Google\Chrome
Edge   : HKLM\SOFTWARE\Policies\Microsoft\Edge

「強制」と「初期値」を意識せずに全部 HKLM の直下へ書くと、利用者が自分で変えられなくなります。設定画面には「組織によって管理されています」と表示され、項目がグレーアウトします。

セキュリティ要件として譲れないものは HKLM 直下、利便性のための既定値は Recommended、と使い分けるのが実務的です。

2. まず現状を確認する

配る前に、その端末に既にポリシーが入っていないかを見ます。読み取りだけなので管理者権限は不要です。

# ChromeとEdgeのポリシーキーを確認する
foreach ($p in 'HKLM:\SOFTWARE\Policies\Google\Chrome',
               'HKLM:\SOFTWARE\Policies\Microsoft\Edge') {
    if (Test-Path $p) {
        Write-Host "$p"
        # PS で始まる内部プロパティは除外して表示する
        (Get-ItemProperty $p).PSObject.Properties |
            Where-Object { $_.Name -notlike 'PS*' } |
            ForEach-Object { "  {0} = {1}" -f $_.Name, $_.Value }
    } else {
        Write-Host "$p : ポリシー未設定"
    }
}

手元の端末ではどちらも未設定でした。

HKLM:\SOFTWARE\Policies\Google\Chrome : ポリシー未設定
HKLM:\SOFTWARE\Policies\Microsoft\Edge : ポリシー未設定

キーが存在しない=ポリシーが1つも配られていないという意味です。既存の設定がある端末に追加する場合は、上書きしないよう既存値を控えておきます。

3. よく使うポリシー

情シスでよく設定するものを挙げます。ポリシー名は Chrome と Edge で共通のものが多いので、同じ名前で両方のキーに書けば済みます。

ポリシー名内容
PasswordManagerEnabledDWORDパスワード保存を許可するか(0で禁止)
BrowserSigninDWORDブラウザへのサインイン(0で無効)
SyncDisabledDWORD同期の無効化(1で無効)
RestoreOnStartupDWORD起動時の動作(4で指定ページを開く)
RestoreOnStartupURLs文字列(サブキー)起動時に開くURL
ExtensionInstallBlocklist文字列(サブキー)拡張機能のブロック(* で全面禁止)
ExtensionInstallAllowlist文字列(サブキー)ブロック時に例外で許可する拡張機能ID
IncognitoModeAvailabilityDWORDシークレットモード(1で禁止)
DownloadDirectory文字列既定のダウンロード先

利用できるポリシーの全量は各ベンダーのドキュメントで公開されています。バージョンによって追加・廃止があるため、適用前に自組織のブラウザバージョンで有効かを確認してください。

4. レジストリに書き込む

PowerShell から設定する例です。管理者権限が必要で、端末全体に影響します。

$chrome = 'HKLM:\SOFTWARE\Policies\Google\Chrome'

# キーが無ければ作る
if (-not (Test-Path $chrome)) { New-Item -Path $chrome -Force | Out-Null }

# パスワード保存を禁止する(強制)
New-ItemProperty -Path $chrome -Name 'PasswordManagerEnabled' `
    -PropertyType DWord -Value 0 -Force | Out-Null

# シークレットモードを禁止する
New-ItemProperty -Path $chrome -Name 'IncognitoModeAvailability' `
    -PropertyType DWord -Value 1 -Force | Out-Null

リストを渡すポリシーは、サブキーを作って 1 から連番の名前で値を並べます。ここが分かりにくいところです。

# 起動時に開くページ(RestoreOnStartup = 4 とセットで指定する)
New-ItemProperty -Path $chrome -Name 'RestoreOnStartup' `
    -PropertyType DWord -Value 4 -Force | Out-Null

$urls = "$chrome\RestoreOnStartupURLs"
if (-not (Test-Path $urls)) { New-Item -Path $urls -Force | Out-Null }
# 値の名前は "1" "2" … という連番にする
New-ItemProperty -Path $urls -Name '1' -PropertyType String `
    -Value 'https://portal.example.local/' -Force | Out-Null

初期値として配りたい場合は、Recommended サブキーの下に同じ名前で書きます。

# 初期値だけ配る(利用者はあとから変更できる)
$rec = "$chrome\Recommended"
if (-not (Test-Path $rec)) { New-Item -Path $rec -Force | Out-Null }
New-ItemProperty -Path $rec -Name 'DownloadDirectory' `
    -PropertyType String -Value 'D:\Downloads' -Force | Out-Null

なお、本記事の確認は読み取りのみで行っており、上記の書き込みコマンドは実行していません。動作している端末のブラウザ設定を変更しないためです。

5. 適用できたかを必ず確認する

レジストリに書いただけでは確認になりません。ブラウザは起動時にポリシーを読むため、再起動が必要です。

適用状況はブラウザ側で確認します。

Chrome : chrome://policy
Edge   : edge://policy

この画面には、読み込まれたポリシー名と値、そして適用元(コンピューター/ユーザー)が一覧で出ます。「ポリシーを再読み込み」ボタンを押せばブラウザを閉じずに反映できます。

ここに出てこない場合、よくある原因は次の3つです。

  • ポリシー名のスペルミス。存在しない名前は無視されるだけでエラーが出ない
  • 値の型が違う。DWORD で書くべきものを文字列で書いている
  • 32bit / 64bit のレジストリビューの取り違え

「設定したのに効かない」の大半は1つ目です。chrome://policy に名前自体が出てこないなら、スペルを疑ってください。

6. GPOで配る場合

台数が多い場合はレジストリを直接書かず、グループポリシーで配ります。ADMX テンプレートを各ベンダーから入手し、ドメインのセントラルストアに配置すると、グループポリシー管理エディターに設定項目が出るようになります。

\\<ドメイン名>\SYSVOL\<ドメイン名>\Policies\PolicyDefinitions\

GPO で設定した内容も、最終的には端末側の同じレジストリキーに書き込まれます。つまり本記事のレジストリの考え方は、GPO を使う場合でもそのまま当てはまります。「管理されたポリシー」と「推奨されたポリシー」という2つのフォルダに分かれているのが、HKLM 直下と Recommended の違いにあたります。

少数の検証端末でレジストリを直接書いて挙動を確かめ、問題なければ GPO に落とす、という順番が安全です。

7. まとめ

Chrome と Edge のポリシーをレジストリで配る方法をまとめました。

  • 書く場所で効き方が変わる。HKLM 直下は強制、Recommended は初期値
  • 配る前に既存のポリシーを読み取って確認する。キーが無ければ未設定
  • リスト型のポリシーはサブキーを作り、1 からの連番で値を並べる
  • chrome://policy / edge://policy で必ず確認する。出てこないならスペルミスを疑う

何でも HKLM 直下で強制すると、問い合わせが増えて運用が重くなります。譲れないものだけを強制し、残りは初期値として配ると落としどころが作りやすくなります。

ChromeとEdgeでパスワード保存を無効化する(レジストリ)

不要なアニメーションやエフェクトを無効化してWindows 11を快適に!

コメント

タイトルとURLをコピーしました