Set and Lock Skin
Verified with Windows 11 25H2 — updated on July 30, 2026
Supported on: Windows Media Player for Windows XP and later.
Path in the GPO console
User Configuration\Administrative Templates\Windows Components\Windows Media Player\User Interface Description
This policy setting allows you to set and lock Windows Media Player in skin mode, using a specified skin. If you enable this policy setting, the Player displays only in skin mode using the skin specified in the Skin box on the Setting tab. You must use the complete file name for the skin (for example, skin_name.wmz), and the skin must be installed in the %programfiles%\Windows Media Player\Skins Folder on a user's computer. If the skin is not installed on a user's computer, or if the Skin box is blank, the Player opens by using the Corporate skin. The only way to specify the Corporate skin is to leave the Skin box blank. A user has access only to the Player features that are available with the specified skin. Users cannot switch the Player to full mode and cannot choose a different skin. If you disable or do not configure this policy setting, users can display the Player in full or skin mode and have access to all available features of the Player.
Registry
Software\Policies\Microsoft\WindowsMediaPlayer Value name: SetAndLockSkin
Enabled: SetAndLockSkin = 1
Disabled: SetAndLockSkin = 0
MDM / Intune (CSP)
./User/Vendor/MSFT/Policy/Config/ADMX_WindowsMediaPlayer/SkinLockDown Microsoft Learn documentation Mapping data: Microsoft Learn (CC BY 4.0)
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: Set and Lock Skin
; State: Enabled
; Supported on: Windows Media Player for Windows XP and later.
[HKEY_CURRENT_USER\Software\Policies\Microsoft\WindowsMediaPlayer]
"SetAndLockSkin"=dword:00000001
"DefaultSkin"="" More formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Set and Lock Skin
# State: Enabled
# Supported on: Windows Media Player for Windows XP and later.
# Warning: In SYSTEM context (the Intune default), HKCU targets the SYSTEM profile. Run this script using the logged-on credentials.
$path = 'HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SetAndLockSkin' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'DefaultSkin' -Value '' -Type String Intune XML
OMA-URI: ./User/Vendor/MSFT/Policy/Config/ADMX_WindowsMediaPlayer/SkinLockDown
Data type: String
Value:
<enabled/>
<data id="LockSkin" value=""/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Set and Lock Skin
# State: Enabled
# Supported on: Windows Media Player for Windows XP and later.
# Warning: In SYSTEM context (the Intune default), HKCU targets the SYSTEM profile. Run this script using the logged-on credentials.
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 'HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer' -Name 'SetAndLockSkin' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer' -Name 'DefaultSkin' -Expected '' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Set and Lock Skin
# State: Enabled
# Supported on: Windows Media Player for Windows XP and later.
# Warning: In SYSTEM context (the Intune default), HKCU targets the SYSTEM profile. Run this script using the logged-on credentials.
$path = 'HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SetAndLockSkin' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'DefaultSkin' -Value '' -Type String SCCM scripts
# Exported from gporais.com
# Policy: Set and Lock Skin
# State: Enabled
# Supported on: Windows Media Player for Windows XP and later.
# 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: Set and Lock Skin
# State: Enabled
# Supported on: Windows Media Player for Windows XP and later.
# Warning: In SYSTEM context (the Intune default), HKCU targets the SYSTEM profile. Run this script using the logged-on credentials.
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 'HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer' -Name 'SetAndLockSkin' -Expected 1 -Kind DWord)
(Test-RegistryValue -Path 'HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer' -Name 'DefaultSkin' -Expected '' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Set and Lock Skin
# State: Enabled
# Supported on: Windows Media Player for Windows XP and later.
# Warning: In SYSTEM context (the Intune default), HKCU targets the SYSTEM profile. Run this script using the logged-on credentials.
$path = 'HKCU:\Software\Policies\Microsoft\WindowsMediaPlayer'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SetAndLockSkin' -Value 1 -Type DWord
Set-ItemProperty -Path $path -Name 'DefaultSkin' -Value '' -Type String Building a multi-setting collection? Add this setting and generate combined .reg / PowerShell / GPO scripts.