<#
This PowerShell script attempts to replicate the functionality of O&O ShutUp10++'s recommended and somewhat recommended settings.

Disclaimer:
- This script is provided for informational and educational purposes only.
- Modifying system settings can have unintended consequences. Use with caution.
- Always create a system restore point or backup before making significant changes.
- This script is not a perfect 1:1 replacement for O&O ShutUp10++.
- Some settings may require administrator privileges.
- Some settings might not be available in all Windows versions.
- Double check the settings this script intends to change against your own Windows settings.
- Run this script in an elevated PowerShell session (Run as administrator).
#>

# Recommended Settings (Based on common interpretations of ShutUp10++'s recommendations)

# Disable telemetry and data collection
Write-Host "Disabling telemetry and data collection..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Value 0 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowCommercialDataPipeline" -Value 0 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" -Name "ShowedToastAtLevel" -Value 0 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" -Name "TelemetryLevel" -Value 0 -Force

# Disable advertising ID
Write-Host "Disabling advertising ID..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled" -Value 0 -Force

# Disable location services
Write-Host "Disabling location services..."
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc" -Name "Start" -Value 4 -Force
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SensorService" -Name "Start" -Value 4 -Force

# Disable connected user experiences and telemetry
Write-Host "Disabling connected user experiences..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Privacy\UserDataSync" -Name "SyncState" -Value 0 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppCompat" -Name "DisableUAR" -Value 1 -Force

# Disable feedback prompts
Write-Host "Disabling feedback prompts..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Name "PeriodInNanoSeconds" -Value 0 -Force

# Disable Cortana
Write-Host "Disabling Cortana..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "AllowCortana" -Value 0 -Force

# Disable automatic updates for Microsoft Store apps
Write-Host "Disabling Microsoft Store automatic updates..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" -Name "AutoDownload" -Value 2 -Force

# Somewhat Recommended Settings (Based on common interpretations of ShutUp10++'s recommendations)

# Disable background apps
Write-Host "Disabling background apps..."
#This is harder to script universally, because it depends on installed apps.
#You'd need to loop through installed apps, which is complex.
#Instead, consider manually disabling them in Settings -> Privacy -> Background apps.
Write-Host "Please manually disable unwanted background apps in Settings -> Privacy -> Background apps."

# Disable activity history
Write-Host "Disabling activity history..."
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\System" -Name "PublishUserActivities" -Value 0 -Force
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\System" -Name "UploadUserActivities" -Value 0 -Force

# Disable handwriting recognition data sharing
Write-Host "Disabling handwriting recognition data sharing..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Value 1 -Force

# Disable typing personalization
Write-Host "Disabling typing personalization..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Value 1 -Force

# Disable diagnostic data inking and typing
Write-Host "Disabling diagnostic data inking and typing..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization" -Name "AllowInputPersonalization" -Value 0 -Force

# Disable Windows tips
Write-Host "Disabling Windows tips..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestions" -Value 0 -Force
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SoftLandingEnabled" -Value 0 -Force
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Value 0 -Force

#Disable cloud clipboard
Write-Host "Disabling cloud clipboard"
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\System\Clipboard" -Name "AllowCrossDeviceClipboard" -Value 0 -Force

Write-Host "Script execution complete. Please restart your computer for changes to take effect."