エクスペリエンス管理(DEEM とも呼ばれる)は、Windows デバイスで動作し、ネットワークの健全性に関するインサイトを提供します。Windows 向けのエクスペリエンス管理エージェントは、Windows アプリケーションの Workspace ONE Intelligent Hub に組み込まれているため、このアプリケーションを管理対象 Windows デバイスに展開してインストールすると、Workspace ONE Intelligence のダッシュボードとレポートで Windows テレメトリのエクスペリエンス管理を使用できます。
お使いのデバイスが、エクスペリエンス管理用のテレメトリ データを Workspace ONE Intelligence に送信していない場合は、Workspace ONE Intelligent Hub のステータスを確認し、ログ ファイルをレビューして、システムのトラブルシューティングを行うことができます。
Windows デバイスにエクスペリエンス管理エージェントをインストールする必要はありません。Windows 向けのエクスペリエンス管理エージェントは、Windows のWorkspace ONE Intelligent Hub とともにインストールされます。C:\Program Files\VMware\Endpoint Telemetry Service でエージェントを検索します。
Workspace ONE Intelligence にデータを送信する際の問題をトラブルシューティングする方法の 1 つは、Windows デバイスで Workspace ONE Intelligent Hub または Windows 向けのエクスペリエンス管理エージェントが実行されていることを確認することです。エクスペリエンス管理エージェントには、2 つのサービスが含まれています。
サービス名 | サービス表示名 |
---|---|
VMWOSQEXT | VMware のデジタル体験のテレメトリ |
vmwetlm | VMware Experience Management Service |
管理者としてコマンド プロンプト アプリケーションを起動し、sc query vmwosqext
または sc query vmwetlm
を実行します。これらのコマンドは、DEEM テレメトリ エージェント サービスのステータスを VMWOSQEXT または vmwetlm として表示します。
Experience Management は、Windows デバイスの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VMWOSQEXT および HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmwetlm にレジストリ エントリを作成します。これらのレジストリは、Workspace ONE Intelligent Hub と Windows 向けのエクスペリエンス管理エージェントの両方で機能します。
tlmtool
)トラブルシューティングを容易にするため、エクスペリエンス管理エージェント v22.6.0 以降には、tlmtool
と呼ばれる新しいユーティリティ ツールが付属しています。ユーティリティ ツールを使用して、ログ レベルの設定、ログ ファイルの収集、およびログ ファイルのパッケージ化を行います。
ユーティリティ ツールは、Windows 向けのエクスペリエンス管理エージェントと同じディレクトリ (C:\Program Files\VMware\Endpoint Telemetry Service\Tools) にあるデバイスにインストールされます。インストールパスは、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmwetlm\ImagePath でレジストリ キーを使用して取得できます。
管理者として tlmtool
を実行し、PowerShell スクリプトで実行ポリシーを使用します。PowerShell コマンドは Set-ExecutionPolicy
です。
tlmtool <options> [arguments]
を実行します。tlmtool -setLogLevel Trace
があります。tlmtool
でサポートされているコマンド オプションを表示するには、コマンド プロンプトに「tlmtool -help
」と入力します。オプション | 使用状況 | 説明 |
---|---|---|
collectLog | -collectLog |
ログ ファイルを収集してパッケージ化し、デフォルトで C:\Windows\Temp\Diagnostic に格納します。 |
getDEEMManagementMode | -getDEEMManagementMode |
エクスペリエンス管理システム、Workspace ONE UEM または Horizon を管理するシステムを取得します。 |
getDEEMDisabled | -getDEEMDisabled |
ユーティリティ ツールによって設定されたエクスペリエンス管理データの収集と送信のステータスを取得します。 - false : エクスペリエンス管理はデータを収集して送信しています。- true : エクスペリエンス管理はデータを収集して送信していません。 |
help | -help |
ツールのヘルプ情報を表示します。 |
resetAllLogSettings | -resetAllLogSettings |
ログ レベルと構成を含むすべてのログ設定をデフォルトにリセットします。 |
resetLogConfiguration | -resetLogConfiguration maxLogSize |
ログ ファイルの最大サイズをデフォルトの 1 MB にリセットします。 |
-resetLogConfiguration maxTraceLogSize |
トレース ログ ファイルの最大サイズをデフォルトの 10 MB にリセットします。 | |
-resetLogConfiguration maxLogFiles |
保持される履歴ログ ファイルの最大数をデフォルトの 10 にリセットします。 | |
resetLogLevel | -resetLogLevel |
ログ レベルをデフォルト設定にリセットします。 |
setDEEMDisabled | -setDEEMDisabled false |
エクスペリエンス管理を設定して、データの収集と送信を続行します。 |
-setDEEMDisabled true |
エクスペリエンス管理によるデータの収集と送信を停止します。 管理ポリシーは、このコマンドを無効にできます。「グループ ポリシー オブジェクトを使用した Windows 向けのエクスペリエンス管理の構成」セクションを参照してください。 |
|
setDEEMManagementMode | -setDEEMManagementMode <uem> |
エクスペリエンス管理サービスを管理するように Workspace ONE UEM を設定します。 |
-setDEEMManagementMode <horizon> |
エクスペリエンス管理サービスを管理するように Horizon を設定します。 | |
setLogConfiguration | -setLogConfiguration maxLogSize <1..50> |
ログ ファイルの最大サイズを MB 単位で設定します。範囲は 1 ~ 50 です。 |
-setLogConfiguration maxTraceLogSize <1..50> |
トレース ログ ファイルの最大サイズを MB 単位で設定します。範囲は 1 ~ 50 です。 | |
-setLogConfiguration maxLogFiles <1..30> |
保持される履歴ログ ファイルの最大数を設定します。範囲は 1 ~ 30 です。 | |
setLogLevel | -setLogLevel <Error\Info\Debug\Trace> |
ログレベルを <Error\Info\Debug\Trace> に設定します。 |
tlmtool
コマンド tlmtool -setLogLevel Trace
を実行してエクスペリエンス管理のログを有効にします。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VMWOSQEXT\ImagePath = “"C:\Program Files (x86)\Airwatch\AgentUI\Telemetry\vmwosqext.exe" --service --osq_named_pipe=vmwosqext.em --logger_min_status=0 --vmw_windows_log_verbose”
HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Endpoint Telemetry\Service\Config\Log\LogLevel="Trace"
Windows ログイン/ログアウト エクスペリエンスに関する追加のエクスペリエンス管理メトリックをユーザー エクスペリエンス スコアに提供するには、該当する Windows デバイスで、一覧表示されている高度な監査ポリシーを有効にします。
一覧表示されたプロセスを使用して、Windows マシンでこれらのポリシーを有効にできます。
CMD ファイル(バッチ ファイル)を使用して高度な監査ポリシーを有効にする場合は、一覧表示されたコードで該当する GPO を更新します。
@echo off
echo "Machine Name,Policy Target,Subcategory,Subcategory GUID,Inclusion Setting,Exclusion Setting,Setting Value" >audit_policy.csv
echo ",System,Audit Logoff,{0cce9216-69ae-11d9-bed3-505054503030},Success and Failure,,3" >>audit_policy.csv
echo ",System,Audit Logon,{0cce9215-69ae-11d9-bed3-505054503030},Success and Failure,,3" >>audit_policy.csv
echo ",System,Audit Other Logon/Logoff Events,{0cce921c-69ae-11d9-bed3-505054503030},Success and Failure,,3" >>audit_policy.csv
auditpol.exe /restore /file:audit_policy.csv
del /f audit_policy.csv
高度な監査ポリシーを有効にするもう 1 つの方法では、ベースラインを使用します。ベースラインとは、Windows の構成の効率化を図るためにグループ化した、選別された設定のことです。一覧表示されたプロセスに、高度な監査ポリシーを有効にする一般的な手順の概略を示します。ベースラインの詳細については、「ベースラインの使用」を参照してください。
GPO、CMD ファイル、ベースラインを使用しない場合は、PowerShell コマンドを使用して、Windows ログイン/ログアウト エクスペリエンス データの監査ポリシーをアクティブ化することもできます。
$host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (500, $host.UI.RawUI.BufferSize.Height)
$ProgressPreference = 'SilentlyContinue'
$csvContent = @"
"Machine Name,Policy Target,Subcategory,Subcategory GUID,Inclusion Setting,Exclusion Setting,Setting Value"
",System,Audit Logoff,{0cce9216-69ae-11d9-bed3-505054503030},Success and Failure,,3"
",System,Audit Logon,{0cce9215-69ae-11d9-bed3-505054503030},Success and Failure,,3"
",System,Audit Other Logon/Logoff Events,{0cce921c-69ae-11d9-bed3-505054503030},Success and Failure,,3"
"@`
$csvContent | Out-File -FilePath "audit_policy.csv" -Encoding ASCII
& auditpol.exe /restore /file:audit_policy.csv
Remove-Item -Path "audit_policy.csv" -Force
グループ ポリシー オブジェクトを使用して、エクスペリエンス管理エージェントを構成します。
たとえば、ユーザーのデバイスからテレメトリを収集しない場合は、グループ ポリシー オブジェクトを使用してエクスペリエンス管理エージェントを構成できます。ローカル Windows マシンでのエクスペリエンス管理テレメトリの収集を制御するには、Windows ADMX テンプレート ファイル vmw_etlm.admx
のエクスペリエンス管理に含まれるカスタム グループ ポリシー オブジェクト (GPO) を使用します。
テンプレート ファイルを ZIP 形式で検索し、My Workspace ONE からダウンロードします。ファイルを Active Directory サーバにコピーし、グループ ポリシー管理エディタを使用して管理テンプレートを追加する必要があります。
GPO 設定 | 説明 |
---|---|
ローカル無効化を許可 | ユーザーのデバイスで tlmtool ユーティリティ ツールを使用してローカル無効化を許可するかどうかを決定します。有効に設定すると、 tlmtool ユーティリティ ツールを使用したローカル無効化が許可されます。無効 に設定すると、ユーティリティ ツールによる無効化は効果がありません。 このポリシーを構成しない場合は、ローカル無効化が許可されます。 |
DEEM を無効にする | 管理ポリシー (GPO) によってエクスペリエンス管理を無効にできるかどうかを決定します。 有効に設定すると、エクスペリエンス管理はユーザーのデバイスからのテレメトリ データの収集と送信を停止します。 このポリシー設定を無効に設定した場合、またはこのポリシー設定を構成しない場合でも、ローカル無効化の許可ポリシー設定に応じて、エクスペリエンス管理をローカルで無効にできます。 |
管理モード | エクスペリエンス管理統合、Workspace ONE UEM、または Horizon を管理するソリューションを決定します。 デフォルトのマネージャは Workspace ONE UEM です。GPO を使用してデフォルトをオーバーライドします。 |
プロキシ構成 | これらのポリシー設定は、Intelligence サービスにデータを送信するときに Horizon デスクトップで使用されるプロキシ サーバ構成を行います。 自動プロキシ設定を選択すると、システムは WPAD (Web プロキシ自動検出プロトコル) や DHCP (動的ホスト構成プロトコル) などのプロトコルを使用してプロキシ構成を自動的に検出します。 スクリプト プロキシ設定を選択すると、システムはスクリプト アドレスを使用してプロキシ構成スクリプトを取得します。スクリプト アドレスは、URL または標準の URN の場所にできます。たとえば、ローカル ディスクまたはリモート ディスクのファイル \\server\share\script.pac にできます。静的 プロキシ設定を選択すると、静的プロキシ URL は使用するプロキシを指定します。URL にはポートを含めることができます。 このポリシーを無効にするか、構成しない場合、システムはプロキシを使用しません。 |
管理テンプレートと GPO またはユーティリティ ツール (tlmtool
) を使用して、エクスペリエンス管理データの収集を制御します。
ローカル Windows マシンでエクスペリエンス管理を制御する機能は、いくつかのシナリオで役立ちます。
エクスペリエンス管理の無効化で GPO とユーティリティ ツールがどのように連携するかを理解するには、GPO 設定の DEEM の無効化から開始しフロー チャートを操作して、有効にする設定と無効にする設定を確認します。
カスタム GPO を含む管理テンプレートをインストールして構成します。
コマンド ラインを使用したデータの収集と送信からエクスペリエンス管理を制御します。
-setDEEMDisabled <value>
を使用し、ユーティリティ ツールでエクスペリエンス管理データの収集と送信を制御します。
-setDEEMDisabled false
: エクスペリエンス管理は引き続きデータを収集して送信します。-setDEEMDisabled true
: エクスペリエンス管理はデータの収集と送信を停止します。-getDEEMDisabled
を使用して、エクスペリエンス管理のステータスを確認できます。
false
: エクスペリエンス管理はデータを収集して送信しています。true
: エクスペリエンス管理はデータを収集して送信していません。スクリプトを使用して、Windows デバイスのエクスペリエンス管理をリモートで制御 (有効化または無効化) し、センサーを使用して Windows デバイスのエクスペリエンス管理の現在のステータスをリモートで取得します。
さまざまなシナリオでエクスペリエンス管理をオフにする必要がある場合があります。
スクリプトとセンサーを使用してエクスペリエンス管理を制御するには、リストされている要件を満たす必要があります。
このスクリプトを使用して、エクスペリエンス管理を有効または無効にします。
# Set the $deemDisabled value. $True will Disable DEEM, $False will Enable DEEM
$deemDisabled = $true
# Define the log file path
$logFilePath = "C:\ProgramData\AirWatch\UnifiedAgent\Logs\DEEMstatus.log"
# Function to check and truncate the log file if it exceeds 1MB
function CheckAndTruncateLogFile {
if (Test-Path $logFilePath) {
$file = Get-Item $logFilePath
$fileSizeMB = $file.Length / 1MB
if ($fileSizeMB -gt 1) {
Clear-Content $logFilePath
}
}
}
# Function to log and write a message
function LogAndWriteMessage {
# Arguments
$message = $args[0]
$addSeparator = $false
if ($args.Length -gt 1) {
$addSeparator = $args[1]
}
CheckAndTruncateLogFile
$separator = if ($addSeparator) { "`r`n" + ("*" * 50) + "`r`n" } else { "" }
$finalMessage = "$message$separator"
$finalMessage | Out-File -FilePath $logFilePath -Append
Write-Host $finalMessage
}
# Full path to tlmtool.exe
$tlmToolPath = "C:\Program Files\VMware\Endpoint Telemetry Service\Tools\tlmtool.exe"
# Check if tlmtool.exe exists
if (-not (Test-Path $tlmToolPath)) {
LogAndWriteMessage "The file $tlmToolPath does not exist."
return
}
# Log the user running the script
$currentUsername = whoami
LogAndWriteMessage "Script is being run by user: $currentUsername"
# Run tlmtool.exe with the specified parameters and log the output
& $tlmToolPath -setDEEMDisabled $deemDisabled | Out-File -FilePath $logFilePath -Append
# Determine the expected status and startup type based on $deemDisabled
$expectedStatus = if ($deemDisabled -eq $true) { 'Stopped' } else { 'Running' }
$startupType = if ($deemDisabled -eq $true) { 'Disabled' } else { 'Automatic' }
# Initialize counter for service status check loop
$retryCount = 0
$maxRetries = 6 # Up to 60 seconds wait (6 retries * 10 seconds each)
# Loop to update the service and check the status
do {
# Update the service status and startup type
if ($deemDisabled -eq $true) {
Stop-Service -Name "VMWOSQEXT" -ErrorAction SilentlyContinue
Set-Service -Name "VMWOSQEXT" -StartupType Disabled
} elseif ($deemDisabled -eq $false) {
Start-Service -Name "VMWOSQEXT" -ErrorAction SilentlyContinue
Set-Service -Name "VMWOSQEXT" -StartupType Automatic
}
Start-Sleep -Seconds 10
$currentStatus = (Get-Service -Name "VMWOSQEXT").Status
LogAndWriteMessage "Checking VMWOSQEXT service status: $currentStatus. Expected: $expectedStatus. Attempt: $($retryCount + 1)"
$retryCount++
} while ($currentStatus -ne $expectedStatus -and $retryCount -lt $maxRetries)
# Verify final status of the service and the registry key value
$deemRegKeyPath = "HKLM:\SOFTWARE\VMware, Inc.\VMware Endpoint Telemetry\DEEM"
$deemRegValName = "Disabled"
$deemRegVal = (Get-ItemProperty -Path $deemRegKeyPath -Name $deemRegValName -ErrorAction SilentlyContinue).$deemRegValName
# Convert registry value to a boolean for comparison
$registryValueAsBool = [System.Boolean]::Parse($deemRegVal)
if ($currentStatus -eq $expectedStatus) {
if (($registryValueAsBool -and $deemDisabled -eq $true) -or (-not $registryValueAsBool -and $deemDisabled -eq $false)) {
$deemState = if ($deemDisabled -eq $true) { "Disabled" } else { "Enabled" }
LogAndWriteMessage "Service VMWOSQEXT is in the expected state: $expectedStatus and DEEM is $deemState." $true
} else {
LogAndWriteMessage "Warning: Service VMWOSQEXT is in the expected state, but DEEM registry key value does not match the expected configuration." $true
}
} else {
LogAndWriteMessage "Warning: Service VMWOSQEXT did not reach the expected state ($expectedStatus) after $($retryCount * 10) seconds." $true
}
このセンサーを使用して、デバイスのエクスペリエンス管理のステータスを返します。
# Define the service and registry path
$serviceName = "VMWOSQEXT"
# Get the service status
$service = Get-Service -Name $serviceName -ErrorAction SilentlyContinue
#DEEM registry path
$registryPath = "HKLM:\SOFTWARE\VMware, Inc.\VMware Endpoint Telemetry\DEEM"
# Get the DEEM status value
$registryValue = Get-ItemProperty -Path $registryPath -Name Disabled -ErrorAction SilentlyContinue
# Check if the service and registry key exist
if ($service -eq $null) {
Write-Host "Service $serviceName not found."
#exit
}
if (-not (Test-Path $registryPath)) {
Write-Host "Registry path $registryPath not found."
#exit
}
# Check the DEEM status conditions and return the appropriate message
if ($service.Status -eq 'Running' -and $service.StartType -eq 'Automatic' -and $registryValue.Disabled -eq $false) {
"DEEM is enabled"
} elseif ($service.Status -eq 'Stopped' -and $service.StartType -eq 'Disabled' -and $registryValue.Disabled -eq $true) {
"DEEM is disabled"
} else {
"DEEM status is in an unknown state."
}
このセンサーを使用して、デバイス上のエクスペリエンス管理のバージョンを返します。
# Define the registry path
$registryPath = "HKLM:\SOFTWARE\VMware, Inc.\VMware Endpoint Telemetry\Service\Version"
# Check if the registry key exists
if ($registryPath) {
# Retrieve the value data if the key exists
$versionData = Get-ItemPropertyValue -Path $registryPath -Name "VMware DEEM for Intelligent Hub" -ErrorAction SilentlyContinue
if ($versionData) {
# Output the value data
Return $versionData
} else {
# Output if the specific value does not exist under the key
Return "Value 'VMware DEEM for Intelligent Hub' does not exist in the key."
}
} else {
# Output if the registry key does not exist
Return "DEEM version key does not exist"
}