How to Disable IE10 WebCache via Group Policy to Manage Terminal Server Disk Quotas


3 views

When IE10 introduced its new WebCache system (replacing traditional Temporary Internet Files), many sysadmins encountered unexpected storage consumption. The WebCache folder at C:\Users\[username]\AppData\Local\Microsoft\Windows\WebCache can grow 5x larger than previous IE caching mechanisms - a critical issue for terminal servers with strict disk quotas.

Common Group Policy adjustments like disabling these settings prove ineffective:

User Configuration → Policies → Administrative Templates → Windows Components → Internet Explorer:
- "Allow websites to store indexed databases" (Disabled)
- "Allow websites to store application caches" (Disabled)

These control HTML5 features rather than the core WebCache functionality. The WebCache actually consists of multiple ESE databases (WebCacheV01.dat through V16.dat) for different caching purposes.

Create a Group Policy Preference to deploy this registry change:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Main\FeatureControl]
"FEATURE_WEBOC_DISABLE_CACHE_MANAGER"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache]
"ContentLimit"=dword:00000000
"PerUserItem"=dword:00000001

For immediate relief, deploy this PowerShell script to modify WebCache permissions:

$acl = Get-Acl "C:\Users\*\AppData\Local\Microsoft\Windows\WebCache"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Users","Write","Deny")
$acl.AddAccessRule($rule)
Set-Acl -Path "C:\Users\*\AppData\Local\Microsoft\Windows\WebCache" -AclObject $acl

Implement this WMI query to alert when cache exceeds thresholds:

SELECT Name,FileSize FROM CIM_DataFile 
WHERE Path = '\\Users\\%\\AppData\\Local\\Microsoft\\Windows\\WebCache\\' 
AND FileSize > 15000000

When deploying via SCCM or similar systems, include these detection methods:

<DetectionMethod>
  <RegistryDetection>
    <KeyPath>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Main\FeatureControl</KeyPath>
    <ValueName>FEATURE_WEBOC_DISABLE_CACHE_MANAGER</ValueName>
    <DetectionType>exists</DetectionType>
  </RegistryDetection>
</DetectionMethod>

Microsoft's Internet Explorer 10 introduced a new caching mechanism that significantly impacts disk space utilization. The WebCache folder (located at C:\Users\\AppData\Local\Microsoft\Windows\WebCache) can consume 400-500% more space than traditional Temporary Internet Files, creating serious challenges in terminal server environments with strict profile size quotas.

The WebCache system comprises multiple components:

WebCacheV01.dat - Main database file
WebCacheV01.jfm - Jet database transaction log
WebCacheV01.log - Additional logging data

Unlike traditional IE caching, WebCache utilizes the Windows Search database format (ESE) for improved performance, but with significantly larger storage requirements.

While standard IE cache policies don't affect WebCache, these registry-based solutions can help:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Search]
"AllowSearchToUseLocation"=dword:00000000
"DisableWebCache"=dword:00000001
"PreventIndexingUncDrives"=dword:00000001

For automated deployment across terminal servers:

# Disable WebCache via PowerShell
$RegPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Search"
If (!(Test-Path $RegPath)) {
    New-Item -Path $RegPath -Force | Out-Null
}
Set-ItemProperty -Path $RegPath -Name "DisableWebCache" -Value 1 -Type DWord
Set-ItemProperty -Path $RegPath -Name "AllowSearchToUseLocation" -Value 0 -Type DWord
Set-ItemProperty -Path $RegPath -Name "PreventIndexingUncDrives" -Value 1 -Type DWord

# Reset existing WebCache folders
Get-ChildItem "C:\Users\" -Filter "WebCache" -Directory -Recurse | Remove-Item -Recurse -Force

For environments where complete WebCache disabling isn't feasible, consider redirecting to network storage:

# Create symbolic link to network location
$UserFolders = Get-ChildItem "C:\Users\" -Directory
foreach ($User in $UserFolders) {
    $WebCachePath = Join-Path $User.FullName "AppData\Local\Microsoft\Windows\WebCache"
    If (Test-Path $WebCachePath) {
        Remove-Item $WebCachePath -Recurse -Force
    }
    New-Item -ItemType SymbolicLink -Path $WebCachePath -Target "\\NETWORK\Share\WebCache\$($User.Name)"
}

Implement this PowerShell monitoring script to track WebCache usage:

# WebCache Size Monitoring
$Results = @()
$UserProfiles = Get-ChildItem "C:\Users\" -Directory

foreach ($Profile in $UserProfiles) {
    $WebCachePath = Join-Path $Profile.FullName "AppData\Local\Microsoft\Windows\WebCache"
    $SizeMB = 0
    if (Test-Path $WebCachePath) {
        $SizeBytes = (Get-ChildItem $WebCachePath -Recurse | Measure-Object -Property Length -Sum).Sum
        $SizeMB = [math]::Round($SizeBytes / 1MB, 2)
    }
    $Results += [PSCustomObject]@{
        Username = $Profile.Name
        WebCacheSizeMB = $SizeMB
        LastModified = if (Test-Path $WebCachePath) { (Get-Item $WebCachePath).LastWriteTime } else { $null }
    }
}

$Results | Export-Csv -Path "C:\Temp\WebCacheUsage.csv" -NoTypeInformation