Local app discovery
Verified with Citrix Workspace App 26.3.10 — updated on July 10, 2026
Supported on: All Citrix Workspace supported platforms
Path in the GPO console
Computer Configuration\Administrative Templates\Citrix Components\Citrix Workspace\Self Service Description
This policy helps integrate locally installed Windows operating system apps with Citrix Workspace app. When you set this policy to Not Configured, Citrix Workspace app is not integrated with the locally installed apps. When you set this policy to Enabled, Citrix Workspace app integrates with the apps that are locally installed only when Enable local app discovery option is also enabled. When you set this policy to Disabled, Citrix Workspace app is not integrated with the apps that are locally installed. The whitelist field lets you add the location of the apps that your administrator would like to pin to the Workspace app. For example: [ { "arguments": "www.citrix.com", "name" : "Company Pages - Citrix Home", "path" : "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe" }, { "arguments": "www.microsoft.com", "name" : "Company Pages - Microsoft Home", "path" : "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe" }, { "arguments": "", "name" : "Company Office - Word", "path" : "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\winword.exe" }, { "arguments": "", "name" : "Company Office - Excel", "path" : "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\excel.exe" }, { "arguments": "", "name" : "Company Office - PowerPoint", "path" : "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\POWERPNT.exe" } ]
Registry
Software\Policies\Citrix\Dazzle Export Builder
BETAConfigure the state, scope and options, then generate .reg, PowerShell, Intune and SCCM outputs — or add the setting to a multi-setting collection.
These exports write the registry — this is not a managed GPO. ⓘ
.reg file
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Local app discovery
; State: Enabled
; Supported on: All Citrix Workspace supported platforms
[HKEY_LOCAL_MACHINE\Software\Policies\Citrix\Dazzle]
"EnableLocalAppDiscovery"=dword:00000001
"LocalAppWhitelist"=hex(7):00,00
; REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. More formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Local app discovery
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
$path = 'HKLM:\Software\Policies\Citrix\Dazzle'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'EnableLocalAppDiscovery' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'LocalAppWhitelist' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. Intune XML
No direct Policy CSP / OMA-URI mapping for this policy. Use the Intune Remediation tab, or ingest the ADMX in Intune. Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Local app discovery
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Citrix\Dazzle' -Name 'EnableLocalAppDiscovery' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Citrix\Dazzle' -Name 'LocalAppWhitelist' -Expected @() -Kind MultiString)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Local app discovery
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
$path = 'HKLM:\Software\Policies\Citrix\Dazzle'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'EnableLocalAppDiscovery' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'LocalAppWhitelist' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. SCCM scripts
# Exported from gporais.com
# Policy: Local app discovery
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
# SCCM Configuration Item guidance:
# Create a Configuration Item of type "Setting: Script".
# Discovery script: use the Detection script below.
# Remediation script: use the Remediation script below.
# Compliance rule: the Discovery script output equals 'Compliant'.
# === Detection script ===
# Exported from gporais.com
# Policy: Local app discovery
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Citrix\Dazzle' -Name 'EnableLocalAppDiscovery' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Citrix\Dazzle' -Name 'LocalAppWhitelist' -Expected @() -Kind MultiString)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Local app discovery
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
$path = 'HKLM:\Software\Policies\Citrix\Dazzle'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'EnableLocalAppDiscovery' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'LocalAppWhitelist' -Value @() -Type MultiString
# REG_MULTI_SZ: one string per input line; edit in regedit if you need richer formatting. Building a multi-setting collection? Add this setting and generate combined .reg / PowerShell / GPO scripts.