Windows Components › Tablet PC › Input Panel
Turn off tolerant and Z-shaped scratch-out gestures
Supported on Windows Vista only
What it does
Turns off both the more tolerant scratch-out gestures that were added in Windows Vista and the Z-shaped scratch-out gesture that was available in Microsoft Windows XP Tablet PC Edition. The tolerant gestures let users scratch out ink in Input Panel by using strikethrough and other scratch-out gesture shapes. Tablet PC Input Panel is a Tablet PC accessory that enables you to use handwriting or an on-screen keyboard to enter text, symbols, numbers, or keyboard shortcuts. If you enable this policy and choose “All” from the drop-down menu, no scratch-out gestures will be available in Input Panel. Users will not be able to configure this setting in the Input Panel Options dialog box. If you enable this policy and choose “Tolerant," users will be able to use the Z-shaped scratch-out gesture that was available in Microsoft Windows XP Tablet PC Edition. Users will not be able to configure this setting in the Input Panel Options dialog box. If you enable this policy and choose “None,” users will be able to use both the tolerant scratch-out gestures and the Z-shaped scratch-out gesture. Users will not be able to configure this setting in the Input Panel Options dialog box. If you disable this policy, users will be able to use both the tolerant scratch-out gestures and the Z-shaped scratch-out gesture. Users will not be able to configure this setting in the Input Panel Options dialog box. If you do not configure this policy, users will be able to use both the tolerant scratch-out gestures and the Z-shaped scratch-out gesture. Users will be able to configure this setting on the Gestures tab in Input Panel Options.
What it writes
- Hive
- HKEY_CURRENT_USER
- Registry key
software\policies\microsoft\TabletTip\1.7- Value name
ScratchOutState- When enabled
- DWORD 1
- When disabled
- DWORD 0
Why it needs changes for Intune
- Policy references a Windows supportedOn definition.
- ADMX-INTUNE-WINDOWS-SUPPORTEDON-REFERENCE
In Intune
Native Intune setting: Yes — Policy CSP
./User/Vendor/MSFT/Policy/Config/ADMX_TabletPCInputPanel/ScratchOut_1ADMX_TabletPCInputPanel on Microsoft LearnADMX-backed: Windows ships this template, so it is set with the template's own values, without an import.Windows builds listed: 10.0.22000, 10.0.19043.1202, 10.0.19042.1202, 10.0.19041.1202.
From Microsoft's Policy CSP DDF files (DDF v2 Files, February 2026), read 18 Oct 2026.
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Turn off tolerant and Z-shaped scratch-out gesturesRequiredDefault: All | Drop-down list | ScratchOut |
|
Configure and deploy
Choose a state and the option values; the output below is generated from the template for exactly that.
Enabled · User · template defaults
Registry file (.reg)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7]
"ScratchOut"=dword:00000001
"ScratchOutState"=dword:00000001
PowerShell
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Turn off tolerant and Z-shaped scratch-out gestures
# Name: ScratchOut_1
# Scope: User
# State: Enabled
# Source: TabletPCInputPanel.admx
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7' -Name 'ScratchOutState' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7' -Name 'ScratchOut' -PropertyType 'DWord' -Value 1
These deployment candidates come from the ADMX template; they are separate from the native CSP mapping above.
- The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
- Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.
ADMX profile candidate (OMA-URI)
./User/Vendor/MSFT/Policy/Config/ADMX_TabletPCInputPanel/ScratchOut_1ADMX SyncML candidate
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Replace>
<CmdID>1</CmdID>
<Item>
<Meta>
<Format>chr</Format>
<Type>text/plain</Type>
</Meta>
<Target>
<LocURI>./User/Vendor/MSFT/Policy/Config/ADMX_TabletPCInputPanel/ScratchOut_1</LocURI>
</Target>
<Data><enabled/>
<data id="ScratchOut" value="1"/></Data>
</Item>
</Replace>
<Final/>
</SyncBody>
</SyncML>Intune remediation scripts
Detection
$ErrorActionPreference = 'Stop'
$reasons = [System.Collections.Generic.List[string]]::new()
function Test-RegistryValueExists {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
}
function Test-RegistryValueEquals {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $Kind,
[Parameter(Mandatory = $true)][object] $Expected
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
$valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
if ($null -eq $valueObject) {
return $false
}
$actual = $valueObject.$Name
switch ($Kind) {
'String' { return [string]$actual -ceq [string]$Expected }
'ExpandString' { return [string]$actual -ceq [string]$Expected }
'DWord' { return [uint32]$actual -eq [uint32]$Expected }
'QWord' { return [uint64]$actual -eq [uint64]$Expected }
'MultiString' {
$actualArray = @($actual)
$expectedArray = @($Expected)
if ($actualArray.Count -ne $expectedArray.Count) { return $false }
for ($index = 0; $index -lt $actualArray.Count; $index++) {
if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
}
return $true
}
'Binary' {
$actualArray = [byte[]]$actual
$expectedArray = [byte[]]$Expected
if ($actualArray.Length -ne $expectedArray.Length) { return $false }
for ($index = 0; $index -lt $actualArray.Length; $index++) {
if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
}
return $true
}
default { return [string]$actual -ceq [string]$Expected }
}
}
# Policy: Turn off tolerant and Z-shaped scratch-out gestures
# Name: ScratchOut_1
# Scope: User
# State: Enabled
# Source: TabletPCInputPanel.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7' -Name 'ScratchOutState' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7\ScratchOutState') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7' -Name 'ScratchOut' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7\ScratchOut') | Out-Null
}
if ($reasons.Count -eq 0) {
Write-Output 'Compliant'
exit 0
}
$reasons | ForEach-Object { Write-Output $_ }
exit 1
Remediation
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Turn off tolerant and Z-shaped scratch-out gestures
# Name: ScratchOut_1
# Scope: User
# State: Enabled
# Source: TabletPCInputPanel.admx
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7' -Name 'ScratchOutState' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\TabletTip\1.7' -Name 'ScratchOut' -PropertyType 'DWord' -Value 1
History 3 retained releases
- 22H2 · 1.015 Jul 2024
- Already present in the first release ChangeIntel keeps.
2 later releases left it unchanged.
Template
- Internal name
ScratchOut_1- Namespace
Microsoft.Policies.TabletPCInputPanel- Template file
TabletPCInputPanel.admx- Release
- Windows 11 23H2 · 1.0 · file set
d784d0ea5f14a680…
Definition, editor controls and support
Definition
<policy class="User" displayName="$(string.ScratchOut)" explainText="$(string.ScratchOutExplain)" key="software\policies\microsoft\TabletTip\1.7" name="ScratchOut_1" presentation="$(presentation.ScratchOut_1)" valueName="ScratchOutState" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.TabletPCInputPanel:TabletTIP" />
<supportedOn ref="Microsoft.Policies.Windows:SUPPORTED_WindowsVistaOnly" />
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
<elements>
<enum id="ScratchOut" required="true" valueName="ScratchOut">
<item displayName="$(string.ScratchOut_All)">
<value>
<decimal value="1" />
</value>
</item>
<item displayName="$(string.ScratchOut_Tolerant)">
<value>
<decimal value="2" />
</value>
</item>
<item displayName="$(string.ScratchOut_None)">
<value>
<decimal value="3" />
</value>
</item>
</enum>
</elements>
</policy>Editor controls
<presentation id="ScratchOut_1" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<dropdownList defaultItem="0" noSort="true" refId="ScratchOut">Turn off tolerant and Z-shaped scratch-out gestures</dropdownList>
</presentation>Supported platforms and category
Microsoft.Policies.TabletPCInputPanel:category:TabletTIP
<category displayName="$(string.TabletTIP)" name="TabletTIP" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:TabletPC" />
</category>
Microsoft.Policies.Windows:category:TabletPC
<category displayName="$(string.TabletPC)" name="TabletPC" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
</category>
Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.Windows:definition:SUPPORTED_WindowsVistaOnly
<definition displayName="$(string.SUPPORTED_WindowsVistaOnly)" name="SUPPORTED_WindowsVistaOnly" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<or>
<reference ref="Microsoft.Policies.Products:MicrosoftWindowsVista" />
</or>
</definition>
Microsoft.Policies.Windows:unresolved:Microsoft.Policies.Products:MicrosoftWindowsVista
<unresolved reference="Microsoft.Policies.Products:MicrosoftWindowsVista" />
Microsoft.Policies.TabletPCInputPanel:category:TabletTIP
<category displayName="$(string.TabletTIP)" name="TabletTIP" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:TabletPC" />
</category>
<strings><string id="Microsoft.Policies.TabletPCInputPanel:TabletTIP">Input Panel</string></strings>
Microsoft.Policies.Windows:category:TabletPC
<category displayName="$(string.TabletPC)" name="TabletPC" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
</category>
<strings><string id="Microsoft.Policies.Windows:TabletPC">Tablet PC</string></strings>
Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.Windows:WindowsComponents">Windows Components</string><string id="Microsoft.Policies.Windows:WindowsComponents_Help">Contains settings for operating system components.</string></strings>
Microsoft.Policies.Windows:definition:SUPPORTED_WindowsVistaOnly
<definition displayName="$(string.SUPPORTED_WindowsVistaOnly)" name="SUPPORTED_WindowsVistaOnly" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<or>
<reference ref="Microsoft.Policies.Products:MicrosoftWindowsVista" />
</or>
</definition>
<strings><string id="Microsoft.Policies.Windows:SUPPORTED_WindowsVistaOnly">Windows Vista only</string></strings>