Hide Settings
Supported on: All Citrix Workspace supported platforms
Description
This policy allows you to manage application shortcuts on desktop and startup along with workspace settings via UI. End user needs control over how the apps are spread out in the start menu. The UI provides an option to place the shortcuts in a start menu folder chosen by the user. The same control is also given for desktop shortcuts. Also provides an UI for managing workspace control settings. By doing this, we uplift the usability attribute of windows Citrix Workspace app. If you enable this policy setting, you can opt out from the three choices provided i.e. disable entire UI, disable Applications Tab or disable Workspace Tab. (Please note after enabling this policy setting, on Endpoint you need to Reset Citrix Workspace app for settings to take place) Disabling this policy setting is equal to Not Configured state.
Registry
SOFTWARE\Policies\Citrix Value name: DisableSettings
REG Builder
BETAConfigure the state and elements to generate .reg, PowerShell, Intune, and SCCM outputs.
These exports replicate the policy's registry effect. Editing the registry directly is not the same as applying the GPO through the management console (no gpupdate, no central reporting). Test before production; HKLM changes require administrator rights.
.reg file
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Hide Settings
; State: Enabled
; Supported on: All Citrix Workspace supported platforms
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Citrix]
"DisableSettings"=dword:00000001
"DisableSettings"="3" PowerShell
# Exported from gporais.com
# Policy: Hide Settings
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
$path = 'HKLM:\SOFTWARE\Policies\Citrix'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableSettings' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'DisableSettings' -Value '3' -Type String 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: Hide Settings
# 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' -Name 'DisableSettings' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\SOFTWARE\Policies\Citrix' -Name 'DisableSettings' -Expected '3' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Hide Settings
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
$path = 'HKLM:\SOFTWARE\Policies\Citrix'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableSettings' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'DisableSettings' -Value '3' -Type String SCCM CI
# Exported from gporais.com
# Policy: Hide Settings
# 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: Hide Settings
# 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' -Name 'DisableSettings' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKLM:\SOFTWARE\Policies\Citrix' -Name 'DisableSettings' -Expected '3' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Hide Settings
# State: Enabled
# Supported on: All Citrix Workspace supported platforms
$path = 'HKLM:\SOFTWARE\Policies\Citrix'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableSettings' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'DisableSettings' -Value '3' -Type String