How to Show File Extensions for All Users on Windows 11
🔍 WiseChecker

How to Show File Extensions for All Users on Windows 11

Quick fix: Set the registry value at HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced with DWORD HideFileExt = 0, then deploy via Group Policy Preferences or run a logon script. The HKLM setting applies before per-user HKCU values are read.

You’re an admin managing many PCs and want every user to see file extensions in File Explorer by default. The per-user toggle (View > Show > File name extensions) only applies to the current user. To make it the default for everyone — including new accounts and the system default user template — you need to set the registry value at the machine level and ensure user profiles inherit it.

Symptom: Need file extensions visible for all users on a Windows 11 PC, not just the current user.
Affects: Windows 11 (and Windows 10) with multiple user accounts or fleet deployment.
Fix time: ~10 minutes.

ADVERTISEMENT

What causes this

File extension visibility is a per-user setting at HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt. It defaults to 1 (hide) for every new user account because the system’s “default user” template profile has 1. Changing the default for all users requires modifying that template, plus updating any existing user profiles.

Method 1: Apply to all users via the default profile

The standard approach for new user accounts.

  1. Open Terminal (Admin).
  2. Load the default user profile’s registry hive:
    reg load "HKLM\TempDefault" "C:\Users\Default\NTUSER.DAT"
  3. Set the HideFileExt value to 0:
    reg add "HKLM\TempDefault\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f
  4. Unload the hive:
    reg unload "HKLM\TempDefault"
  5. Any new user account created from this point will have extensions visible by default.
  6. For existing users, see Method 2.

This modifies the template that new user accounts copy from.

ADVERTISEMENT

Method 2: Apply to all existing users via PowerShell loop

For PCs where multiple users already have accounts.

  1. Open Terminal (Admin).
  2. Run this script to iterate all user profiles and update each one’s registry:
    $profiles = Get-WmiObject Win32_UserProfile | Where-Object { $_.Special -eq $false -and $_.LocalPath -like "C:\Users\*" }
    foreach ($p in $profiles) {
        $hive = "HKU\TempLoad_$($p.SID)"
        $ntuserDat = "$($p.LocalPath)\NTUSER.DAT"
        if (Test-Path $ntuserDat) {
            reg load $hive $ntuserDat
            reg add "$hive\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f
            reg unload $hive
            Write-Host "Updated profile: $($p.LocalPath)"
        }
    }
  3. Active user profiles (currently signed in) can’t have their hive loaded. Sign them out first, or set their registry value while signed in:
    Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name HideFileExt -Value 0
  4. Restart Explorer for the active user: Stop-Process -Name explorer -Force (it auto-restarts).

This catches all existing accounts in one script.

Method 3: Use Group Policy Preferences for domain deployment

For Active Directory / Group Policy environments with many machines.

  1. Open Group Policy Management Console on a domain controller or admin workstation.
  2. Edit the appropriate GPO → User Configuration → Preferences → Windows Settings → Registry.
  3. Right-click → New → Registry Item.
  4. Configure:
    • Action: Update
    • Hive: HKEY_CURRENT_USER
    • Key Path: Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    • Value name: HideFileExt
    • Value type: REG_DWORD
    • Value data: 0
  5. Save. Run gpupdate /force on target PCs.
  6. On next user logon, the GPP applies the registry value.

This is the right approach for enterprise environments — applies to every user on every domain-joined PC.

How to verify the fix worked

  • Create a new user account on the PC. Sign in to that account. Open File Explorer — extensions are visible.
  • Sign in to an existing user account that you updated. Extensions are visible in File Explorer.
  • Run Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name HideFileExt in PowerShell as different users. Each returns 0.

If none of these work

If extensions still hide for some users after these methods, three causes apply. Active session lock: a user currently signed in won’t have their NTUSER.DAT updated via Method 2’s reg load. Sign them out first, or use the in-session HKCU update. Per-folder view override: even with HideFileExt = 0, individual folders can have customized views that re-hide extensions. After applying the registry change, open File Explorer → Options → View tab → Apply to Folders to push the setting universally. Group Policy precedence: a Group Policy setting can override both HKLM and HKCU values. Check if any GPO sets HideFileExt. For consumer (non-domain) PCs where these issues persist, run the registry script (Method 2) on each user account after signing in to it.

Bottom line: File extension visibility for all users requires updating both the default-user template (for new accounts) and each existing user’s profile (for current accounts). Group Policy Preferences automates this in managed environments.

ADVERTISEMENT