グループポリシーを使用して DigiCert Trust Assistant を配布する
Windows Server のグループポリシー機能を使用すると、Windows ドメイン内のユーザーおよびコンピュータに DigiCert® Trust Assistant を配布できます。このドキュメントでは、グループポリシーを使用して DigiCert® Trust Assistant のインストール、更新、アンインストールを自動化する方法について説明します。
注記
この機能は、Windows ドメインに参加している Windows コンピュータのみに対応します。他のオペレーティングシステムでは、別のデバイス管理ソリューションの使用が必要になる場合があります。
前提条件
グループポリシーと Windows ドメインでのグループポリシー設定方法に関する知識。
グループポリシーを設定するための管理者権限。
対象の Windows ドメイン下に、適切なグループ、ユーザー、およびコンピュータセキュリティフィルターが適用された既存のグループポリシーオブジェクト(GPO)。テスト用にGPOを 1 つ作成する必要があります。Microsoft 公式ドキュメントを参照してください。
コンピュータとユーザーがリモートでアクセス可能な共有ネットワークフォルダ(Microsoft 公式ドキュメントを参照)。
インストーラを共有ネットワークフォルダに配置する
DigiCert® Trust Assistant Windows インストーラをダウンロードします。「Download installer」を参照してください。
このバイナリファイルを共有ネットワークフォルダに配置し、対象のユーザー、コンピュータ、またはグループにフォルダとバイナリファイルの両方に対する読み取りと実行の権限があることを確認します。
DigiCert Software KeyStore の使用を予定している場合は、DigiCert Software KeyStore Provider のインストーラも配布する必要があります。DigiCert® Trust Assistant のインストール後、インストーラは次の場所に格納されます。
<install directory>/resources/dsksprovider.msi
PowerShell インストーラスクリプトを準備する
グループポリシーソフトウェアのインストールは Microsoft Software Installer(.msi)形式のインストーラに対応しており、DigiCert® Trust Assistant インストーラはバンドルされたバイナリ(.exe)として提供されるため、グループポリシー PowerShell スクリプトランナーを使用する必要があります。
注記
DigiCert Software KeyStore Provider は .msi 形式で提供されるため、グループポリシーソフトウェアのインストールを通じてこのアプリケーションをインストールできます。
次の PowerShell インストーラスクリプトを Windows ドメイン内のドメインコントローラにコピーします。
# Script to install DigiCert Trust Assistant. Can be used via GPO Startup/Shutdown/Logon/Logoff scripts
# Usage: DTAInstall.ps1 -i installer_path [-t install_type]
# installer_path - UNC path of installer, e.g. \\DOMAIN-COMPUTER-1\share\DigiCert-Trust-Assistant-Setup-1.0.0.exe
# * Make sure the user or computer that runs this script has read and execute permission to this file
# install_type - (optional) Specify 'user' or 'machine' to indicate type of install. Default is 'user'.
# * Specifying 'machine' will require Local Administrator privilege
# * Default target installation directory is:
# 'user' -- %userprofile%\AppData\Local\Programs\DigiCert Trust Assistant
# 'machine' -- C:\Program Files\DigiCert Trust Assistant
#
# Log from this script can be found in following locations:
# install_type = 'user' : %userprofile%\AppData\Local\Temp
# install_type = 'machine': %systemdrive%\Windows\Temp
Param($i,$t='user')
$logfile = "$env:TEMP\DigiCert-Trust-Assistant-installation.log"
function WriteLog {
Param ([string]$LogString)
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
$LogMessage = "$Stamp $LogString"
Add-content $LogFile -value $LogMessage
}
# Check installer_path
if (-not $i) {
$msg = "-i option is required. Please specify UNC Path of the installer. For example: '-i \\DOMAIN-COMPUTER-1\share\DigiCert-Trust-Assistant-Setup-1.0.0.exe'"
WriteLog $msg
throw $msg
}
if (-not (Test-Path -Path $i)) {
$msg = "$i not found, check if the file exists or permission is properly applied to user or computer."
WriteLog $msg
throw $msg
}
# Check install_type
if (($t -ne 'user') -and ($t -ne 'machine')) {
$msg = "-t option needs to be either 'user' or 'machine'. Specified '$t'"
WriteLog $msg
throw $msg
}
# Fix below to change from default installation directory
if ($t -eq 'user') {
$installDir = "$env:userprofile\AppData\Local\Programs\DigiCert Trust Assistant"
} else {
$installDir = 'C:\Program Files\DigiCert Trust Assistant'
}
$install = $false
if (-not (Test-Path -Path "$installDir\DigiCert Trust Assistant.exe")) {
$install = $true
WriteLog "DTA not installed"
} else {
$currentVersion = (Get-Item "$installDir\DigiCert Trust Assistant.exe").VersionInfo.FileVersion
$newVersion = (Get-Item $i).VersionInfo.ProductVersion
if ($currentVersion -ne $newVersion) {
$install = $true
WriteLog "DTA current version=$currentVersion, upgrading to $newVersion"
}
}
if ($install) {
WriteLog "Installing DTA using $i"
$dArg = '/D="' + $installDir + '"'
if ($t -eq 'user') {
$process = start-process -FilePath $i -ArgumentList '/S',$dArg,'--force-run' -PassThru -Wait
} else {
$process = start-process -FilePath $i -ArgumentList '/S','/AllUsers',$dArg -PassThru -Wait
}
WriteLog "Process finished with exitcode=$($process.ExitCode)"
}グループポリシーを使用して DigiCert Trust Assistant をインストールする
DigiCert® Trust Assistant は、マシン単位またはユーザー単位でインストールできます。このセクションでは両方の方法について説明しますが、グループポリシーを使用する場合はマシン単位でのインストールを推奨します。ユーザーはローカル管理者権限なしでアプリケーションをアンインストールできないためです。
マシン単位でのインストール
[Windows スタートメニュー]を選択して、[グループポリシー管理]を開きます。
検索ボックスに「グループポリシー管理」と入力し、[グループポリシー管理]をクリックします。
ドメインの下で、対象のグループポリシーオブジェクト(GPO)を右クリックし、[編集]を選択してグループポリシー管理エディタを開きます。
[コンピュータの設定]>[ポリシー]>[Windows の設定]>[スクリプト(起動/シャットダウン)]に移動し、右のパネルから[起動]をダブルクリックして[起動のプロパティ]ダイアログを開きます。
[PowerShell スクリプト]タブを選択します。[スクリプト]タブのインターフェースは類似しており、設定を[スクリプト]タブから行った場合は機能しないため、この手順は重要です。
[追加] を選択し、[スクリプトの追加]ダイアログを開きます。
[参照]を選択し、前のセクションで準備した PowerShell インストーラスクリプトを選択します。
[スクリプトのパラメータ]フィールドで、このスクリプトのパラメータを次のとおり指定します。
-i <Universal Naming Convention path of installer> -t machineを指定します。例:
-i \\DOMAIN-COMPUTER-1\share\DigiCert-Trust-Assistant-1.2.0-win-x64.exe -t machine[OK]を 2 回クリックしてダイアログを閉じ、設定を適用します。
ユーザー単位でのインストール
[Windows スタートメニュー]を選択して、[グループポリシー管理]を開きます。
検索ボックスに「グループポリシー管理」と入力し、[グループポリシー管理]をクリックします。
ドメインの下で、対象のグループポリシーオブジェクト(GPO)を右クリックし、[編集]を選択してグループポリシー管理エディタを開きます。
[ユーザー設定]>[ポリシー]>[Windows の設定]>[スクリプト(ログオン/ログオフ)]に移動し、右のパネルから[ログオン]をダブルクリックして[ログオンのプロパティ]ダイアログを開きます。
[PowerShell スクリプト]タブを選択します。[スクリプト]タブのインターフェースは類似しており、設定を [スクリプト]タブから行った場合は機能しないため、この手順は重要です。
[追加] を選択し、[スクリプトの追加]ダイアログを開きます。
[参照]を選択し、前のセクションで準備した PowerShell インストーラスクリプトを選択します。
[スクリプトのパラメータ]フィールドで、このスクリプトのパラメータを次のとおり指定します。
-i <Universal Naming Convention path of installer>を指定します。例:
-i \\DOMAIN-COMPUTER-1\share\DigiCert-Trust-Assistant-1.2.0-win-x64.exe[OK] を 2 回クリックしてダイアログを閉じ、設定を適用します。
DigiCert Trust Assistant のインストールに関するグループポリシーをテストする
インストールがマシン単位かユーザー単位かによって、アプリケーションのインストールタイミングが異なります。次の手順を実行し、コンピュータに DigiCert Trust Assistant がインストールされているか確認します。
マシン単位の場合: コンピュータを再起動します。起動時にインストールが開始されます。
ユーザー単位の場合: サインアウトし、コンピュータにサインインします。サインイン時にインストールが開始されます。
インストールの完了に数分かかる場合があります。
注記
ユーザーのマシンに最新のグループポリシーが適用されていない場合、インストールが開始されないことがあります。Windows のコマンドプロンプトで次のコマンドを実行すると、グループポリシーを強制適用できます。 > gpupdate /force
設定によっては、コンピュータの再起動を求められる場合があります。
インストールの状況については、PowerShell インストーラスクリプトのログ出力を確認することもできます。次のパスでログを確認します。
マシン単位の場合:
%systemdrive%\Windows\Temp\DigiCert-Trust-Assistant-installation.logユーザー単位の場合:
%userprofile%\AppData\Local\Temp\DigiCert-Trust-Assistant-installation.log
ログ出力の例:
2024/09/29 00:17:57 DTA not installed 2024/09/29 00:17:57 Installing DTA using \\DOMAIN-COMPUTER-1\share\DigiCert-Trust-Assistant-1.2.0-win-x64.exe 2024/09/29 00:20:05 Process finished with exitcode=0
グループポリシーを使用して DigiCert Trust Assistant を更新する
新しいバージョンのインストーラを入手し、共有ディレクトリに配置します。対象のユーザー、コンピュータ、および/またはグループがバイナリに対する読み取りと実行の権限を持っていることを確認します。
スクリプトパラメータ内のインストーラのユニバーサル命名規則のパスを新しいインストーラのパスに変更します。このパラメータについては、インストール手順の手順 8 を参照してください。
グループポリシーを使用して DigiCert Trust Assistant をアンインストールする
グループポリシーを使用して DigiCert® Trust Assistant をアンインストールするには、次のとおり別の PowerShell スクリプトを使用する必要があります。
# Script to uninstall DigiCert Trust Assistant (both PerUser and PerMachine).
# Can be used via GPO Startup/Shutdown/Logon/Logoff scripts
#
# Log from this script can be found in following locations:
# install_type = 'user' : %userprofile%\AppData\Local\Temp
# install_type = 'machine': %systemdrive%\Windows\Temp
# Following is the default installation directory
$installDirPerMachine = 'C:\Program Files\DigiCert Trust Assistant'
$installDirPerUser = "$env:userprofile\AppData\Local\Programs\DigiCert Trust Assistant"
$logfile = "$env:TEMP\DigiCert-Trust-Assistant-installation.log"
function WriteLog {
Param ([string]$LogString)
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
$LogMessage = "$Stamp $LogString"
Add-content $LogFile -value $LogMessage
}
if (Test-Path -Path "$installDirPerMachine\DigiCert Trust Assistant.exe") {
WriteLog "Uninstalling DTA (PerMachine)"
$process = start-process -FilePath "$installDirPerMachine\Uninstall DigiCert Trust Assistant.exe" -ArgumentList '/S' -PassThru -Wait
WriteLog "Process finished with exitcode=$($process.ExitCode)"
}
if (Test-Path -Path "$installDirPerUser\DigiCert Trust Assistant.exe") {
WriteLog "Uninstalling DTA (PerUser)"
$process = start-process -FilePath "$installDirPerUser\Uninstall DigiCert Trust Assistant.exe" -ArgumentList '/S' -PassThru -Wait
WriteLog "Process finished with exitcode=$($process.ExitCode)"
}上記の PowerShell アンインストーラスクリプトをドメインコントローラにコピーします。設定手順はインストール時と同じですが、手順 7 で別のスクリプトを使用し、スクリプトパラメータが不要なため手順 8 は省略します。
アンインストールスクリプトは、インストーラと同じパスに結果ログを作成します。アンインストール時のログ出力の例は次のとおりです。
2024/09/29 23:52:06 Uninstalling DTA (All users) 2024/09/29 23:52:12 Process finished with exitcode=0
グループポリシーを使用して DigiCert Software KeyStore Provider をインストールする
DigiCert Software KeyStore Provider の場合、.msi グループポリシーソフトウェアのインストールを使用できます。これにはローカル管理者権限が必要なため、ユーザー設定ではなくコンピュータの設定のみを使用できます。次の手順に従います(詳細な情報については、Microsoft の公式ドキュメントを参照)。
対象の GPO のグループポリシー管理エディタで、[コンピュータの設定]>[ポリシー]>[ソフトウェアの設定]に移動します。
[ソフトウェアのインストール]を右クリックし、[新規]>[パッケージ]を選択してファイル選択ダイアログを開きます。
共有ネットワークフォルダからインストーラを選択し、[開く]をクリックします。
[ソフトウェアの展開]ダイアログで[割り当て済み]を選択し、[OK]をクリックします。
対象ユーザーのコンピュータを再起動し、DigiCert Software KeyStore アプリケーションがインストールされているか確認します。
注記
ユーザーのマシンに最新のグループポリシーが適用されていない場合、インストールが開始されないことがあります。Windows のコマンドプロンプトで次のコマンドを実行すると、グループポリシーを強制適用できます。
> gpupdate /force
設定によっては、コンピュータの再起動を求められる場合があります。
グループポリシーを使用して DigiCert Software KeyStore Provider を更新する
対象 GPO のグループポリシー管理エディタで、[コンピュータの設定]>[ポリシー]>[ソフトウェアの設定]に移動します。
[ソフトウェアのインストール]を右クリックし、[新規]>[パッケージ]を選択してファイル選択ダイアログを開きます。
共有ネットワークフォルダから新しいインストーラを選択し、[開く]をクリックします。
[ソフトウェアの展開]ダイアログで、[詳細設定]を選択し、[OK]をクリックして[プロパティ]ダイアログを開きます。
[アップグレード]タブを選択し、[追加]を選択します。
[アップグレード対象パッケージ]で、以前のバージョンのインストールを選択し、[パッケージは以前のバージョンの上書きが可能]ラジオボタンを選択します。
[OK] を 2 回クリックして設定を完了します。
対象ユーザーのコンピュータを再起動し、DigiCert Software KeyStore アプリケーションがアップグレードされているか確認します。必要に応じて gpupdate /force コマンドを実行します。
グループポリシーを使用して DigiCert Software KeyStore Provider をアンインストールする
対象 GPO のグループポリシー管理エディタで、[コンピュータの設定]>[ポリシー]>[ソフトウェアの設定]に移動し、[ソフトウェアのインストール]を選択します。
右ペインの DigiCert Software KeyStore インストールを右クリックし、[すべてのタスク]>[削除] を選択します。
ユーザーとコンピュータからソフトウェアを直ちにアンインストールするラジオボタンを選択し、[OK] をクリックします。
更新用のインストールが複数ある場合は繰り返します。
対象ユーザーのコンピュータを再起動し、DigiCert Software KeyStore アプリケーションがアンインストールされているか確認します。必要に応じて gpupdate /force コマンドを実行します。
トラブルシューティング:
.msi ファイルがインストールされず、Windows イベントビューアに次の警告が表示される場合があります。
The assignment of application DigiCert Software Keystore from DTA Target Machines failed. The error was: %%1274
これは通常、非同期ポリシー処理の問題であり、次のグループポリシーを有効にすることで解決できます。これにより、インストールの開始前にネットワークが使用可能になるまでコンピュータに待機するよう強制します。
同じ GPO 内で、[コンピュータの設定]>[ポリシー]>[管理用テンプレート]>[システム]>[ログオン]に移動し、[コンピュータの起動時およびログオン時に常にネットワークを待機する]を[有効]に設定します。