I had a customer asking for a script to automate several Windows interface elements, so a PowerShell script is here to save the day. This has been tested on Windows 11 24H2, so YMMV.

All sections have been commented to explain the function.

NOTE: If you’re deploying this with Intune, be sure that the script is set to run in the User context by selecting “Run this script using the logged on credentials” in the script configuration.

Enjoy!

<#
.SYNOPSIS
Applies desired user experience customizations to Windows 11 devices as requested

.DESCRIPTION
This script is designed to be deployed via Microsoft Intune as a user-context PowerShell script. 
It configures the following settings:
 - Disables Windows Spotlight, feedback prompts, and personalized suggestions
 - Adds the "This PC" icon to the desktop
 - Sets display scaling to 125% (Will take effect after a fresh signin)
 - Aligns the taskbar to the left and configures combine behavior
 - Hides Task View, Widgets, and Search on the taskbar
 - Launches File Explorer windows in separate processes for stability
 - (Default apps must be handled separately via Intune configuration profile)

.NOTES
Author: Brian Wilson
Intended Deployment: Microsoft Intune (User Context)
Compatibility: Windows 11 (tested on 24H2)
Last Updated: 2025-04-16

#>

# === DISABLE SPOTLIGHT, FEEDBACK, SUGGESTIONS ===

# ContentDeliveryManager – controls Spotlight and suggested content
$cdmPath = "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\ContentDeliveryManager"
if (-not (Test-Path $cdmPath)) { New-Item -Path $cdmPath -Force | Out-Null }

Set-ItemProperty -Path $cdmPath -Name "SubscribedContent-310093Enabled" -Value 0
Set-ItemProperty -Path $cdmPath -Name "SubscribedContent-338387Enabled" -Value 0
Set-ItemProperty -Path $cdmPath -Name "SubscribedContent-338388Enabled" -Value 0

# UserProfileEngagement – disables personalized tips
$upePath = "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement"
if (-not (Test-Path $upePath)) { New-Item -Path $upePath -Force | Out-Null }

Set-ItemProperty -Path $upePath -Name "ScoobeSystemSettingEnabled" -Value 0

# Feedback frequency suppression
$siufPath = "HKCU:\\Software\\Microsoft\\Siuf\\Rules"
if (-not (Test-Path $siufPath)) { New-Item -Path $siufPath -Force | Out-Null }

Set-ItemProperty -Path $siufPath -Name "NumberOfSIUFInPeriod" -Value 0
Set-ItemProperty -Path $siufPath -Name "PeriodInNanoSeconds" -Value 0

# === ADD 'THIS PC' ICON TO DESKTOP ===

$desktopIconsPath = "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\HideDesktopIcons\\NewStartPanel"
if (-not (Test-Path $desktopIconsPath)) { New-Item -Path $desktopIconsPath -Force | Out-Null }

# 0 = visible
Set-ItemProperty -Path $desktopIconsPath -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Value 0

# === SET DISPLAY SCALING TO 125% (LogPixels = 120) ===

$dpiPath = "HKCU:\\Control Panel\\Desktop"
if (-not (Test-Path $dpiPath)) { New-Item -Path $dpiPath -Force | Out-Null }

Set-ItemProperty -Path $dpiPath -Name "LogPixels" -Value 120
Set-ItemProperty -Path $dpiPath -Name "Win8DpiScaling" -Value 1

# === TASKBAR TWEAKS (Windows 11 only) ===

$advancedPath = "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
if (-not (Test-Path $advancedPath)) { New-Item -Path $advancedPath -Force | Out-Null }

# Align taskbar to the left (0 = left, 1 = center)
Set-ItemProperty -Path $advancedPath -Name "TaskbarAl" -Value 0

# Taskbar combine behavior:
# 0 = Always combine, 1 = Combine when full, 2 = Never combine
Set-ItemProperty -Path $advancedPath -Name "TaskbarGlomLevel" -Value 1

# Hide Widgets button (TaskbarDa = 0)
Set-ItemProperty -Path $advancedPath -Name "TaskbarDa" -Value 0

# Hide Task View button
Set-ItemProperty -Path $advancedPath -Name "ShowTaskViewButton" -Value 0

# Hide Search box/icon (0 = hidden, 1 = icon only, 2 = box)
Set-ItemProperty -Path $advancedPath -Name "SearchboxTaskbarMode" -Value 0

# === EXPLORER OPTION: SEPARATE PROCESS ===

# Launch folder windows in separate processes
Set-ItemProperty -Path $advancedPath -Name "SeparateProcess" -Value 1

# === REFRESH EXPLORER TO APPLY CHANGES ===

Stop-Process -Name explorer -Force