ページ概要
本ページでは、Microsoft Intuneを利用してWindowsデバイスに対してJOSYSブラウザ拡張機能をサイレントインストール/アクティベーションする際に必要となるスクリプトのサンプルを掲示しております。
Intuneを使ってWindowsデバイスに拡張機能をサイレントインストール・アクティベーションする方法(2/2)にて、ケースG(複数名が1つのデバイスにログインしない状況で、ユーザーがデバイスの管理者権限を持っておらず、USERNAMEがメールアドレスのローカルパートと同じ場合)だった方向けです。
想定読者
JOSYSブラウザ拡張機能の一括展開を計画・実施されるご担当者様。
ブラウザ拡張機能について
ブラウザ拡張機能に関する情報は、下記のページをお先にご覧ください。
1.ブラウザ拡張機能について
2.ブラウザ拡張機能のご利用方法
スクリプト
下記のスクリプトをシステムコンテキストで実施するため、保存してください。
- 下記のスクリプトをコピーし、メモ帳などに貼り付けてください。
- 2行目の YOUR_ORGANIZATION_KEY をジョーシス上で確認した自社の組織IDに変更してください。
- 下部にある @example.com を貴社のメールアドレスのドメインに変更してください。
例)@josys.com - ファイル名を「josys-extension-config.ps1」として保存してください。
- ファイルの種類が「Windows PowerShellスクリプト」となっていることを確認してください。
- Intuneを使ってWindowsデバイスに拡張機能をサイレントインストール・アクティベーションする方法(2/2) - 2.スクリプトを対象デバイスに適用するに戻って作業を進めてください。
####### 組織IDをレジストリに書き込み #######
$organizationKey = "YOUR_ORGANIZATION_KEY"
# 書き込み対象のレジストリパスを配列で定義 (ChromeとEdge)
$registryPaths = @(
"HKLM:\Software\Policies\Google\Chrome\3rdparty\extensions\moaklgcgokbgplldonjkoochhlefkbjf\policy",
"HKLM:\Software\Policies\Microsoft\Edge\3rdparty\extensions\hjifncajikcdkhlofdjjlhcjoennmdfc\policy"
)
# ChromeとEdgeの両方のパスに書き込み
foreach ($registryPath in $registryPaths) {
# レジストリパス(キー)が存在しない場合のみ作成する
if (!(Test-Path $registryPath)) {
New-Item -Path $registryPath -Force -ItemType Directory | Out-Null
}
# "OrganizationKey"という項目が存在しない場合のみ、レジストリに書き込み
# Get-ItemPropertyでエラーが発生しても処理を続行するために -ErrorAction SilentlyContinue を指定
if (!(Get-ItemProperty -Path $registryPath -Name "OrganizationKey" -ErrorAction SilentlyContinue)) {
New-ItemProperty -Path $registryPath -Name "OrganizationKey" -Value $organizationKey
}
}
####### ブラウザプロフィールから自動認証を行う場合は、下記のコードは不要です #######
####### メールアドレスを取得 ########
# ユーザー名を取得
$username = $null
while ($username -eq $null) {
$username = (Get-CimInstance Win32_Process -Filter 'name = "explorer.exe"' | Invoke-CimMethod -MethodName getowner).User
if ($username -is [array]) {
$username = $username[0]
}
Start-Sleep -Seconds 5 # 5秒間待機 (任意)
}
# 1.メールアドレスがユーザー名から構築可能な場合
# $username = $username -replace ' ', '.' # 必要に応じて
$userEmail = $username + "@example.com" # 貴社のメールアドレスドメインに変更
# 2.その他の方法でメールアドレスを取得する場合
# コードをここに入力
# ChromeとEdgeの両方のパスに書き込み
foreach ($registryPath in $registryPaths) {
# レジストリパス(キー)が存在する場合にのみ処理を行う
if (Test-Path $registryPath) {
# "UserEmail"という項目が存在しない場合のみ、レジストリに書き込み
if (!(Get-ItemProperty -Path $registryPath -Name "UserEmail" -ErrorAction SilentlyContinue)) {
New-ItemProperty -Path $registryPath -Name "UserEmail" -Value $userEmail
}
}
}
exit 0