目次

2-5.WindowsにGPOで配布するときの具体的な手順

Katsutoshi Murakami 更新 by Katsutoshi Murakami

概要

Windowsのドメインコントローラー(以下、AD) を利用して、拡張機能のインストール、拡張機能のためのパラメーターの配布、利用者の情報の特定の3点についてこのドキュメントで具体的に説明いたします。

もちろん各社の環境や状況、セキュリティ設定によって許可されていないアクションがあるかもしれません。一つのケースとしてご参照ください。

またEdgeへの配布はレジストリのパスを変えれば完全に同じ手順ですので、読み替えてください。

もし、SYSVOLなどログオンスクリプトが配布禁止になっている場合は、スクリプトの代わりにワンライナーのコマンドで環境変数を設定することもできると思われます。

やるべきこと

Adminaの拡張機能を配布し、ログインユーザー毎にEmailを動的に設定できるようにする。

  • Chrome拡張機能のインストールを行う(インストール用のレジストリを登録する)
  • Adminaの拡張機能のためのパラメーターをレジストリに登録する
  • パラメーターの1つである UserEmail を動的に組み立てて適用する

仕組み

すべてを一つのGPOで実現できます。この項目では一つづつ説明します。

Chrome拡張機能のインストールを行う(インストール用のレジストリを登録する)

(この手順は新しい方法を検証しましたので、他のガイドとパラメーターの位置が違いますが、以前の設定よりも疎結合な設定になっており他の拡張機能のInstallを妨げたり、競合したりしないようになっています。)

以下のパラメーターでレジストリキーを登録します。これで自動インストールが行われます。

ハイブ:HKEY_CURRENT_USER 
パス:Software\Policies\Google\Chrome\ExtensionSettings
値の名前: bdeanmdeckegmfjpbnngomallcedjold
値の種類: REG_SZ
値のデータ: {"installation_mode":"force_installed"}
これまでは以下のパスで案内していましたが、他社製品と設定が競合することがありました。HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist

Adminaの拡張機能のためのパラメーターをレジストリに登録する

3つの必須パラメーターを設定します。(値の名前毎それぞれ設定して下さい)

ハイブ:HKEY_CURRENT_USER 
パス:Software\Policies\Google\Chrome\3rdparty\extensions\bdeanmdeckegmfjpbnngomallcedjold\policy
値の名前: ApiKey, CreatedDate, OrganizationID
値の種類: REG_SZ
値のデータ: (Adminaの 設定 > ブラウザ拡張 > ポリシーから得られる値)

4つ目のパラメーターであるUserEmailは以下のように設定します。環境変数から取得します。

ハイブ:HKEY_CURRENT_USER 
パス:Software\Policies\Google\Chrome\3rdparty\extensions\bdeanmdeckegmfjpbnngomallcedjold\policy
値の名前: UserEmail
値の種類: REG_SZ
値のデータ: %USEREMAIL%

他にも %HOSTNAME%@domain.com, %USERNAME%@domain.com , 定数 なども可能です。既に定義されている変数を使う場合は、次のステップは不要です。次の手順では最も拡張性の高い方法(任意の文字列を作れる方法)でご案内します。

パラメーターの1つである UserEmail を動的に組み立てて適用する

%USEREMAIL% を作成します。

この値は、ユーザー環境変数(システム環境変数ではない)に対して、ログオンスクリプトで対応します。

以下の様なBatファイルをログオンスクリプトを配布する場所(例:ADサーバー上:C:\Windows\SYSVOL\sysvol\<DOMAIN>\scripts\admina\Set-UserEmailEnv.bat ) に配置します。

このファイルはBATファイルです。内部でPowershellファイルを呼び出したり、別のコマンドを使うことで任意の作り方で %USEREMAIL%を環境変数に持つことができます。

コマンドでは、永続化( setx ) と、次回ログイン時のセッションへの反映 ( set ) の両方をあえて記載しています。ログオンスクリプトでsetxされた値は、さらに次のログイン時まで読み込まれないためです。

@echo off
setlocal

echo SET VARIABLES
set DomainPart=autoset.example.com
set UserEmail=%USERNAME%@%DomainPart%

echo SET USER EMAIL ENVIRONEMENT VARIABLE
setx USEREMAIL "%UserEmail%"
set USEREMAIL "%UserEmail%"

endlocal

より安全的な値の使い方としては取得したい値が取れなくてもCOMPUTERNAMEやHOSTNAMEなど環境変数を頼ってみてください。何も取れないよりは遥かに参考になります。

@echo off
setlocal

echo SET VARIABLES

set DomainPart=autoset.example.com

set UserEmail=
if defined USERNAME (
set UserEmail=%USERNAME%@%DomainPart%
) else (
echo USERNAME environment variable is not defined. Trying to get hostname...
if defined COMPUTERNAME (
set TempUser=%COMPUTERNAME%
) else if defined HOSTNAME (
set TempUser=%HOSTNAME%
) else (
echo Hostname variables (COMPUTERNAME, HOSTNAME) are not defined. Trying to get logon server...
if defined LOGONSERVER (
set TempUser=%LOGONSERVER%
) else (
echo LOGONSERVER environment variable is not defined. Using 'unknown' as user.
set TempUser=unknown
)
)
set UserEmail=%TempUser%@%DomainPart%
)

echo SET USER EMAIL ENVIRONEMENT VARIABLE
echo UserEmail will be set to: %UserEmail%

setx USEREMAIL "%UserEmail%"
set USEREMAIL="%UserEmail%"
echo Current session USEREMAIL is set to: %USEREMAIL%

endlocal

GPOに以下の様にログオンスクリプトを指定しておきます。

( 設定イメージ。ドメイン名などは適宜変更してください)

スクリプト名:\\<DOMAIN>\SYSVOL\<DOMAIN>\scripts\admina\Set-UserEmailEnv.bat

配布

ここまでの設定をAdmina ExtensionというGPOにまとめておきます。

あとはこのGPOを対象グループにLinkするだけです。

次回ログイン時に、環境変数設定 -> レジストリも自動設定のように動きます。もし環境変数設定とレジストリの設定が順序が前後しても再々ログインする時に補正されます。

補足

UserEmailをいい感じに取得する方法

* Entra ID ログインをしている場合 whoami /upn のコマンドでUPNのメアドが取れます。

* ADサーバーのUserオブジェクトにある電子メールアドレスフィールドを使う場合は、次のようなPowerShellを組み合わせたBatファイルでも取得できると思います。

@echo off
for /f "usebackq tokens=*" %%i in (`powershell -Command "([ADSISEARCHER]'(&(objectCategory=person)(samAccountName=%USERNAME%))').FindOne().Properties.mail"`) do set UserEmail=%%i

setx USEREMAIL "%UserEmail%"
set USEREMAIL "%UserEmail%"

この記事はお役に立ちましたでしょうか?

2-4.Mac 構成プロファイルとMDMを用いたChrome拡張機能の配布と設定

2-6.Diagデータを取得する

お問い合わせ