Windows 10 audit mode deployment script
########## | |
# Win10 Initial Setup Script | |
# Author: Disassembler <disassembler@dasm.cz> | |
# Version: 1.4, 2016-01-16 | |
########## | |
# Ask for elevated permissions if required | |
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) { | |
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs | |
Exit | |
} | |
########## | |
# Privacy Settings | |
########## | |
# Disable Telemetry | |
Write-Host "Disabling Telemetry..." | |
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0 | |
# Enable Telemetry | |
# Remove-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" | |
# Disable Wi-Fi Sense | |
Write-Host "Disabling Wi-Fi Sense..." | |
If (!(Test-Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting")) { | |
New-Item -Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting" -Force | Out-Null | |
} | |
Set-ItemProperty -Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting" -Name "Value" -Type DWord -Value 0 | |
Set-ItemProperty -Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowAutoConnectToWiFiSenseHotspots" -Name "Value" -Type DWord -Value 0 | |
# Enable Wi-Fi Sense | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting" -Name "Value" -Type DWord -Value 1 | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowAutoConnectToWiFiSenseHotspots" -Name "Value" -Type DWord -Value 1 | |
# Disable SmartScreen Filter | |
Write-Host "Disabling SmartScreen Filter..." | |
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "SmartScreenEnabled" -Type String -Value "Off" | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AppHost" -Name "EnableWebContentEvaluation" -Type DWord -Value 0 | |
# Enable SmartScreen Filter | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "SmartScreenEnabled" -Type String -Value "RequireAdmin" | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AppHost" -Name "EnableWebContentEvaluation" | |
# Disable Bing Search in Start Menu | |
Write-Host "Disabling Bing Search in Start Menu..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled" -Type DWord -Value 0 | |
# Enable Bing Search in Start Menu | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled" | |
# Disable Location Tracking | |
Write-Host "Disabling Location Tracking..." | |
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" -Name "SensorPermissionState" -Type DWord -Value 0 | |
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 0 | |
# Enable Location Tracking | |
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" -Name "SensorPermissionState" -Type DWord -Value 1 | |
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 1 | |
# Disable Feedback | |
Write-Host "Disabling Feedback..." | |
If (!(Test-Path "HKCU:\Software\Microsoft\Siuf\Rules")) { | |
New-Item -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Force | Out-Null | |
} | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -Type DWord -Value 0 | |
# Enable Feedback | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" | |
# Disable Advertising ID | |
Write-Host "Disabling Advertising ID..." | |
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo")) { | |
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" | Out-Null | |
} | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled" -Type DWord -Value 0 | |
# Enable Advertising ID | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled" | |
# Disable Cortana | |
Write-Host "Disabling Cortana..." | |
If (!(Test-Path "HKCU:\Software\Microsoft\Personalization\Settings")) { | |
New-Item -Path "HKCU:\Software\Microsoft\Personalization\Settings" -Force | Out-Null | |
} | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" -Type DWord -Value 0 | |
If (!(Test-Path "HKCU:\Software\Microsoft\InputPersonalization")) { | |
New-Item -Path "HKCU:\Software\Microsoft\InputPersonalization" -Force | Out-Null | |
} | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Type DWord -Value 1 | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Type DWord -Value 1 | |
If (!(Test-Path "HKCU:\Software\Microsoft\InputPersonalization\TrainedDataStore")) { | |
New-Item -Path "HKCU:\Software\Microsoft\InputPersonalization\TrainedDataStore" -Force | Out-Null | |
} | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization\TrainedDataStore" -Name "HarvestContacts" -Type DWord -Value 0 | |
# Enable Cortana | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Type DWord -Value 0 | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Type DWord -Value 0 | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization\TrainedDataStore" -Name "HarvestContacts" | |
# Restrict Windows Update P2P only to local network | |
Write-Host "Restricting Windows Update P2P only to local network..." | |
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode" -Type DWord -Value 1 | |
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization")) { | |
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization" | Out-Null | |
} | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization" -Name "SystemSettingsDownloadMode" -Type DWord -Value 3 | |
# Unrestrict Windows Update P2P | |
# Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode" | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization" -Name "SystemSettingsDownloadMode" | |
# Remove AutoLogger file and restrict directory | |
Write-Host "Removing AutoLogger file and restricting directory..." | |
$autoLoggerDir = "$env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger" | |
If (Test-Path "$autoLoggerDir\AutoLogger-Diagtrack-Listener.etl") { | |
Remove-Item "$autoLoggerDir\AutoLogger-Diagtrack-Listener.etl" | |
} | |
icacls $autoLoggerDir /deny SYSTEM:`(OI`)`(CI`)F | Out-Null | |
# Unrestrict AutoLogger directory | |
# $autoLoggerDir = "$env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger" | |
# icacls $autoLoggerDir /grant:r SYSTEM:`(OI`)`(CI`)F | Out-Null | |
# Stop and disable Diagnostics Tracking Service | |
Write-Host "Stopping and disabling Diagnostics Tracking Service..." | |
Stop-Service "DiagTrack" | |
Set-Service "DiagTrack" -StartupType Disabled | |
# Enable and start Diagnostics Tracking Service | |
# Set-Service "DiagTrack" -StartupType Automatic | |
# Start-Service "DiagTrack" | |
########## | |
# Service Tweaks | |
########## | |
# Lower UAC level | |
# Write-Host "Lowering UAC level..." | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Type DWord -Value 0 | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Type DWord -Value 0 | |
# Raise UAC level | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Type DWord -Value 5 | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Type DWord -Value 1 | |
# Enable sharing mapped drives between users | |
# Write-Host "Enabling sharing mapped drives between users..." | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -Type DWord -Value 1 | |
# Disable sharing mapped drives between users | |
# Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" | |
# Disable Firewall | |
# Write-Host "Disabling Firewall..." | |
# Set-NetFirewallProfile -Profile * -Enabled False | |
# Enable Firewall | |
# Set-NetFirewallProfile -Profile * -Enabled True | |
# Disable Windows Defender | |
# Write-Host "Disabling Windows Defender..." | |
# Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -Type DWord -Value 1 | |
# Enable Windows Defender | |
# Remove-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" | |
# Disable Windows Update automatic restart | |
Write-Host "Disabling Windows Update automatic restart..." | |
Set-ItemProperty -Path "HKLM:\Software\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 1 | |
# Enable Windows Update automatic restart | |
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 0 | |
# Stop and disable Home Groups services | |
Write-Host "Stopping and disabling Home Groups services..." | |
Stop-Service "HomeGroupListener" | |
Set-Service "HomeGroupListener" -StartupType Disabled | |
Stop-Service "HomeGroupProvider" | |
Set-Service "HomeGroupProvider" -StartupType Disabled | |
# Enable and start Home Groups services | |
# Set-Service "HomeGroupListener" -StartupType Manual | |
# Set-Service "HomeGroupProvider" -StartupType Manual | |
# Start-Service "HomeGroupProvider" | |
# Disable Remote Assistance | |
# Write-Host "Disabling Remote Assistance..." | |
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 0 | |
# Enable Remote Assistance | |
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 1 | |
# Enable Remote Desktop w/o Network Level Authentication | |
# Write-Host "Enabling Remote Desktop w/o Network Level Authentication..." | |
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 0 | |
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 0 | |
# Disable Remote Desktop | |
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 1 | |
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 1 | |
########## | |
# UI Tweaks | |
########## | |
# Disable Action Center | |
# Write-Host "Disabling Action Center..." | |
# If (!(Test-Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer")) { | |
# New-Item -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" | Out-Null | |
# } | |
# Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" -Type DWord -Value 1 | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" -Type DWord -Value 0 | |
# Enable Action Center | |
# Remove-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" | |
# Disable Lock screen | |
# Write-Host "Disabling Lock screen..." | |
# If (!(Test-Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization")) { | |
# New-Item -Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization" | Out-Null | |
# } | |
# Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -Type DWord -Value 1 | |
# Enable Lock screen | |
# Remove-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" | |
# Disable Autoplay | |
# Write-Host "Disabling Autoplay..." | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 1 | |
# Enable Autoplay | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 0 | |
# Disable Autorun for all drives | |
# Write-Host "Disabling Autorun for all drives..." | |
# If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer")) { | |
# New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" | Out-Null | |
#} | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" -Type DWord -Value 255 | |
# Enable Autorun | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" | |
# Disable Sticky keys prompt | |
# Write-Host "Disabling Sticky keys prompt..." | |
# Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "506" | |
# Enable Sticky keys prompt | |
# Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "510" | |
# Hide Search button / box | |
Write-Host "Hiding Search Box / Button..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" -Type DWord -Value 0 | |
# Show Search button / box | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" | |
# Hide Task View button | |
Write-Host "Hiding Task View button..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 0 | |
# Show Task View button | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" | |
# Show small icons in taskbar | |
# Write-Host "Showing small icons in taskbar..." | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons" -Type DWord -Value 1 | |
# Show large icons in taskbar | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons" | |
# Show titles in taskbar | |
Write-Host "Showing titles in taskbar (simple and mm)..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -Type DWord -Value 2 | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "MMTaskbarGlomLevel" -Type DWord -Value 2 | |
# Hide titles in taskbar | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" | |
# Show all tray icons | |
# Write-Host "Showing all tray icons..." | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" -Type DWord -Value 0 | |
# Hide tray icons as needed | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" | |
# Show known file extensions | |
Write-Host "Showing known file extensions..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 0 | |
# Hide known file extensions | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 1 | |
# Show hidden files | |
Write-Host "Showing hidden files..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 1 | |
# Hide hidden files | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 2 | |
# Change default Explorer view to "Computer" | |
Write-Host "Changing default Explorer view to `"Computer`"..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1 | |
# Change default Explorer view to "Quick Access" | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" | |
# Hide desktop icons | |
Write-Host "Hiding desktop icons..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideIcons" -Type DWord -Value 1 | |
# Dont user powershell on winx | |
Write-Host "Dont user powershell on winx..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DontUsePowerShellOnWinX" -Type DWord -Value 1 | |
# Hide Cortana button on taskbar | |
Write-Host "Hide Cortana button on taskbar..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowCortanaButton" -Type DWord -Value 0 | |
# Disable mm taskbar | |
Write-Host "Disable mm taskbar..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "MMTaskbarEnabled" -Type DWord -Value 0 | |
# Show icons only on taskbar monitor open | |
Write-Host "Set mm taskbar grouping..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "MMTaskbarMode" -Type DWord -Value 2 | |
# Enable Aero Peek | |
Write-Host "Enabling Aero Peek..." | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisablePreviewDesktop" -Type DWord -Value 0 | |
# Show Computer shortcut on desktop | |
# Write-Host "Showing Computer shortcut on desktop..." | |
# If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu")) { | |
# New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" | Out-Null | |
# } | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0 | |
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0 | |
# Hide Computer shortcut from desktop | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" | |
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" | |
# Remove Desktop icon from computer namespace | |
# Write-Host "Removing Desktop icon from computer namespace..." | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" -Recurse -ErrorAction SilentlyContinue | |
# Add Desktop icon to computer namespace | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" | |
# Remove Documents icon from computer namespace | |
# Write-Host "Removing Documents icon from computer namespace..." | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}" -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}" -Recurse -ErrorAction SilentlyContinue | |
# Add Documents icon to computer namespace | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}" | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}" | |
# Remove Downloads icon from computer namespace | |
# Write-Host "Removing Downloads icon from computer namespace..." | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}" -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}" -Recurse -ErrorAction SilentlyContinue | |
# Add Downloads icon to computer namespace | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}" | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}" | |
# Remove Music icon from computer namespace | |
# Write-Host "Removing Music icon from computer namespace..." | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}" -Recurse -ErrorAction SilentlyContinue | |
# Add Music icon to computer namespace | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}" | |
# Remove Pictures icon from computer namespace | |
# Write-Host "Removing Pictures icon from computer namespace..." | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}" -Recurse -ErrorAction SilentlyContinue | |
# Add Pictures icon to computer namespace | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}" | |
# Remove Videos icon from computer namespace | |
# Write-Host "Removing Videos icon from computer namespace..." | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}" -Recurse -ErrorAction SilentlyContinue | |
# Add Videos icon to computer namespace | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" | |
# New-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}" | |
# Remove 3D Objects icon from computer namespace | |
Write-Host "Removing 3D Objects icon from computer namespace..." | |
Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Recurse -ErrorAction SilentlyContinue | |
## Add secondary en-US keyboard | |
Write-Host "Adding secondary ro-RO keyboard..." | |
$langs = Get-WinUserLanguageList | |
$langs.Add("ro-RO") | |
Set-WinUserLanguageList $langs -Force | |
Write-Host "Set location to Romania" | |
Set-WinHomeLocation -GeoId 0xc8 | |
Set-WinSystemLocale -SystemLocale ro-RO | |
Set-Culture -CultureInfo ro-RO | |
Set-TimeZone -Id "GTB Standard Time" -PassThru | |
# Remove secondary en-US keyboard | |
# $langs = Get-WinUserLanguageList | |
# Set-WinUserLanguageList ($langs | ? {$_.LanguageTag -ne "en-US"}) -Force | |
########## | |
# Remove unwanted applications | |
########## | |
# Disable OneDrive | |
Write-Host "Disabling OneDrive..." | |
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive")) { | |
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" | Out-Null | |
} | |
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC" -Type DWord -Value 1 | |
# Enable OneDrive | |
# Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC" | |
# Uninstall OneDrive (WINDOWS WILL NOT SYSPREP WITHOUT IT!) | |
# Write-Host "Uninstalling OneDrive..." | |
# Stop-Process -Name OneDrive -ErrorAction SilentlyContinue | |
# Start-Sleep -s 3 | |
# $onedrive = "$env:SYSTEMROOT\SysWOW64\OneDriveSetup.exe" | |
# If (!(Test-Path $onedrive)) { | |
# $onedrive = "$env:SYSTEMROOT\System32\OneDriveSetup.exe" | |
# } | |
# Start-Process $onedrive "/uninstall" -NoNewWindow -Wait | |
# Start-Sleep -s 3 | |
# Stop-Process -Name explorer -ErrorAction SilentlyContinue | |
# Start-Sleep -s 3 | |
# Remove-Item "$env:USERPROFILE\OneDrive" -Force -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item "$env:LOCALAPPDATA\Microsoft\OneDrive" -Force -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item "$env:PROGRAMDATA\Microsoft OneDrive" -Force -Recurse -ErrorAction SilentlyContinue | |
# If (Test-Path "$env:SYSTEMDRIVE\OneDriveTemp") { | |
# Remove-Item "$env:SYSTEMDRIVE\OneDriveTemp" -Force -Recurse -ErrorAction SilentlyContinue | |
# } | |
# If (!(Test-Path "HKCR:")) { | |
# New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null | |
# } | |
# Remove-Item -Path "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Recurse -ErrorAction SilentlyContinue | |
# Remove-Item -Path "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Recurse -ErrorAction SilentlyContinue | |
# Install OneDrive | |
# $onedrive = "$env:SYSTEMROOT\SysWOW64\OneDriveSetup.exe" | |
# If (!(Test-Path $onedrive)) { | |
# $onedrive = "$env:SYSTEMROOT\System32\OneDriveSetup.exe" | |
# } | |
# Start-Process $onedrive -NoNewWindow | |
# Uninstall default Microsoft applications | |
Write-Host "Uninstalling default Microsoft applications..." | |
Get-AppxPackage "Microsoft.3DBuilder" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.BingFinance" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.BingNews" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.BingSports" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.BingWeather" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.Getstarted" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.MicrosoftOfficeHub" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.MicrosoftSolitaireCollection" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.Office.OneNote" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.People" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.SkypeApp" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.Windows.Photos" | Remove-AppxPackage | |
# Get-AppxPackage "Microsoft.WindowsAlarms" | Remove-AppxPackage | |
# Get-AppxPackage "Microsoft.WindowsCamera" | Remove-AppxPackage | |
Get-AppxPackage "microsoft.windowscommunicationsapps" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.WindowsMaps" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.WindowsPhone" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.WindowsSoundRecorder" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.XboxApp" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.ZuneMusic" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.ZuneVideo" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.AppConnector" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.ConnectivityStore" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.Office.Sway" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.Messaging" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.CommsPhone" | Remove-AppxPackage | |
Get-AppxPackage "9E2F88E3.Twitter" | Remove-AppxPackage | |
Get-AppxPackage "king.com.CandyCrushSodaSaga" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.WindowsFeedbackHub" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.Wallet" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.ScreenSketch" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.GetHelp" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.Xbox.TCUI" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.XboxGameOverlay" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.XboxSpeechToTextOverlay" | Remove-AppxPackage | |
Get-AppxPackage "Microsoft.MixedReality.Portal" | Remove-AppxPackage | |
Get-AppBackgroundTask "Microsoft.XboxIdentityProvider" | Remove-AppPackage | |
# Install default Microsoft applications | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.3DBuilder").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingFinance").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingNews").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingSports").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingWeather").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Getstarted").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.MicrosoftOfficeHub").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.MicrosoftSolitaireCollection").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Office.OneNote").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.People").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.SkypeApp").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Windows.Photos").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsAlarms").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsCamera").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.windowscommunicationsapps").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsMaps").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsPhone").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsSoundRecorder").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.XboxApp").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.ZuneMusic").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.ZuneVideo").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.AppConnector").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.ConnectivityStore").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Office.Sway").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Messaging").InstallLocation)\AppXManifest.xml" | |
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.CommsPhone").InstallLocation)\AppXManifest.xml" | |
# In case you have removed them for good, you can try to restore the files using installation medium as follows | |
# New-Item C:\Mnt -Type Directory | Out-Null | |
# dism /Mount-Image /ImageFile:D:\sources\install.wim /index:1 /ReadOnly /MountDir:C:\Mnt | |
# robocopy /S /SEC /R:0 "C:\Mnt\Program Files\WindowsApps" "C:\Program Files\WindowsApps" | |
# dism /Unmount-Image /Discard /MountDir:C:\Mnt | |
# Remove-Item -Path C:\Mnt -Recurse | |
# Uninstall Windows Media Player | |
Write-Host "Disabling Windows Media Player..." | |
dism /online /Disable-Feature /FeatureName:MediaPlayback /Quiet /NoRestart | |
# Install Windows Media Player | |
# dism /online /Enable-Feature /FeatureName:MediaPlayback /Quiet /NoRestart | |
# Uninstall Work Folders Client | |
Write-Host "Disabling Work Folders Client..." | |
dism /online /Disable-Feature /FeatureName:WorkFolders-Client /Quiet /NoRestart | |
# Enable WSL2 | |
Write-Host "Enabling Virtual Machine Platform..." | |
dism /online /enable-feature /featurename:VirtualMachinePlatform /Quiet /all /norestart | |
Write-Host "Enabling Windows Subsystem for Linux..." | |
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /Quiet /all /norestart | |
# Enable NET35 | |
Write-Host "Enabling NET35..." | |
DISM /Online /Enable-Feature /FeatureName:NetFx3 /Quiet /All /norestart | |
# Enable Hyper-V | |
Write-Host "Enabling Hyper-V..." | |
DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V /Quiet /All /norestart | |
# Enable IIS | |
Write-Host "Enabling IIS..." | |
dism /online /enable-feature /featurename:IIS-WebServerRole /featurename:IIS-WebServerManagementTools /featurename:IIS-ManagementConsole /Quiet /All /norestart | |
# Enable Telnet client | |
Write-Host "Enabling Telnet client..." | |
dism /online /Enable-Feature /FeatureName:TelnetClient /Quiet /All /norestart | |
# Install Work Folders Client | |
# dism /online /Enable-Feature /FeatureName:WorkFolders-Client /Quiet /NoRestart | |
# Set Photo Viewer as default for bmp, gif, jpg and png | |
Write-Host "Setting Photo Viewer as default for bmp, gif, jpg, png and tif..." | |
If (!(Test-Path "HKCR:")) { | |
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null | |
} | |
ForEach ($type in @("Paint.Picture", "giffile", "jpegfile", "pngfile")) { | |
New-Item -Path $("HKCR:\$type\shell\open") -Force | Out-Null | |
New-Item -Path $("HKCR:\$type\shell\open\command") | Out-Null | |
Set-ItemProperty -Path $("HKCR:\$type\shell\open") -Name "MuiVerb" -Type ExpandString -Value "@%ProgramFiles%\Windows Photo Viewer\photoviewer.dll,-3043" | |
Set-ItemProperty -Path $("HKCR:\$type\shell\open\command") -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1" | |
} | |
# Remove or reset default open action for bmp, gif, jpg and png | |
# If (!(Test-Path "HKCR:")) { | |
# New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null | |
# } | |
# Remove-Item -Path "HKCR:\Paint.Picture\shell\open" -Recurse | |
# Remove-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "MuiVerb" | |
# Set-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "CommandId" -Type String -Value "IE.File" | |
# Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "(Default)" -Type String -Value "`"$env:SystemDrive\Program Files\Internet Explorer\iexplore.exe`" %1" | |
# Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "DelegateExecute" -Type String -Value "{17FE9752-0B5A-4665-84CD-569794602F5C}" | |
# Remove-Item -Path "HKCR:\jpegfile\shell\open" -Recurse | |
# Remove-Item -Path "HKCR:\pngfile\shell\open" -Recurse | |
# Show Photo Viewer in "Open with..." | |
Write-Host "Showing Photo Viewer in `"Open with...`"" | |
If (!(Test-Path "HKCR:")) { | |
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null | |
} | |
New-Item -Path "HKCR:\Applications\photoviewer.dll\shell\open\command" -Force | Out-Null | |
New-Item -Path "HKCR:\Applications\photoviewer.dll\shell\open\DropTarget" -Force | Out-Null | |
Set-ItemProperty -Path "HKCR:\Applications\photoviewer.dll\shell\open" -Name "MuiVerb" -Type String -Value "@photoviewer.dll,-3043" | |
Set-ItemProperty -Path "HKCR:\Applications\photoviewer.dll\shell\open\command" -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1" | |
Set-ItemProperty -Path "HKCR:\Applications\photoviewer.dll\shell\open\DropTarget" -Name "Clsid" -Type String -Value "{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}" | |
# Remove Photo Viewer from "Open with..." | |
# If (!(Test-Path "HKCR:")) { | |
# New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null | |
# } | |
# Remove-Item -Path "HKCR:\Applications\photoviewer.dll\shell\open" -Recurse | |
# This script disables unwanted Windows services. If you do not want to disable | |
# certain services comment out the corresponding lines below. | |
$services = @( | |
"diagnosticshub.standardcollector.service" # Microsoft (R) Diagnostics Hub Standard Collector Service | |
"DiagTrack" # Diagnostics Tracking Service | |
"dmwappushservice" # WAP Push Message Routing Service (see known issues) | |
"lfsvc" # Geolocation Service | |
"MapsBroker" # Downloaded Maps Manager | |
"NetTcpPortSharing" # Net.Tcp Port Sharing Service | |
"RemoteAccess" # Routing and Remote Access | |
# "RemoteRegistry" # Remote Registry | |
"SharedAccess" # Internet Connection Sharing (ICS) | |
"TrkWks" # Distributed Link Tracking Client | |
# "WbioSrvc" # Windows Biometric Service (required for Fingerprint reader / facial detection) | |
#"WlanSvc" # WLAN AutoConfig | |
"WMPNetworkSvc" # Windows Media Player Network Sharing Service | |
#"wscsvc" # Windows Security Center Service | |
"WSearch" # Windows Search | |
"XblAuthManager" # Xbox Live Auth Manager | |
"XblGameSave" # Xbox Live Game Save Service | |
"XboxNetApiSvc" # Xbox Live Networking Service | |
"ndu" # Windows Network Data Usage Monitor | |
# Services which cannot be disabled | |
#"WdNisSvc" | |
) | |
foreach ($service in $services) { | |
Write-Output "Trying to disable $service" | |
Get-Service -Name $service | Set-Service -StartupType Disabled | |
} | |
$objSID = New-Object System.Security.Principal.SecurityIdentifier "S-1-1-0" | |
$EveryOne = $objSID.Translate( [System.Security.Principal.NTAccount]).Value | |
Write-Output "Disable 'Updates are available' message" | |
takeown /F "$env:WinDIR\System32\MusNotification.exe" | |
icacls "$env:WinDIR\System32\MusNotification.exe" /deny "$($EveryOne):(X)" | |
takeown /F "$env:WinDIR\System32\MusNotificationUx.exe" | |
icacls "$env:WinDIR\System32\MusNotificationUx.exe" /deny "$($EveryOne):(X)" | |
# This script removes unwanted Apps that come with Windows. If you do not want | |
# to remove certain Apps comment out the corresponding lines below. | |
Write-Output "Uninstalling default apps" | |
$apps = @( | |
# default Windows 10 apps | |
"Microsoft.3DBuilder" | |
"Microsoft.Advertising.Xaml" | |
"Microsoft.Appconnector" | |
"Microsoft.BingFinance" | |
"Microsoft.BingNews" | |
"Microsoft.BingSports" | |
"Microsoft.BingTranslator" | |
"Microsoft.BingWeather" | |
#"Microsoft.FreshPaint" | |
"Microsoft.GamingServices" | |
"Microsoft.Microsoft3DViewer" | |
"Microsoft.WindowsFeedbackHub" | |
"Microsoft.MicrosoftOfficeHub" | |
"Microsoft.MixedReality.Portal" | |
"Microsoft.MicrosoftPowerBIForWindows" | |
"Microsoft.MicrosoftSolitaireCollection" | |
#"Microsoft.MicrosoftStickyNotes" | |
"Microsoft.MinecraftUWP" | |
"Microsoft.NetworkSpeedTest" | |
"Microsoft.Office.OneNote" | |
"Microsoft.People" | |
"Microsoft.Print3D" | |
"Microsoft.SkypeApp" | |
"Microsoft.Wallet" | |
# "Microsoft.Windows.Photos" | |
# "Microsoft.WindowsAlarms" | |
# "Microsoft.WindowsCalculator" | |
# "Microsoft.WindowsCamera" | |
"microsoft.windowscommunicationsapps" | |
"Microsoft.WindowsMaps" | |
"Microsoft.WindowsPhone" | |
"Microsoft.WindowsSoundRecorder" | |
#"Microsoft.WindowsStore" # can't be re-installed | |
"Microsoft.Xbox.TCUI" | |
"Microsoft.XboxApp" | |
"Microsoft.XboxGameOverlay" | |
"Microsoft.XboxGamingOverlay" | |
"Microsoft.XboxSpeechToTextOverlay" | |
"Microsoft.YourPhone" | |
"Microsoft.ZuneMusic" | |
"Microsoft.ZuneVideo" | |
"Microsoft.Windows.CloudExperienceHost" | |
"Microsoft.Windows.ContentDeliveryManager" | |
"Microsoft.Windows.PeopleExperienceHost" | |
"Microsoft.XboxGameCallableUI" | |
# Threshold 2 apps | |
"Microsoft.CommsPhone" | |
"Microsoft.ConnectivityStore" | |
"Microsoft.GetHelp" | |
"Microsoft.Getstarted" | |
"Microsoft.Messaging" | |
"Microsoft.Office.Sway" | |
"Microsoft.OneConnect" | |
"Microsoft.WindowsFeedbackHub" | |
# Creators Update apps | |
"Microsoft.Microsoft3DViewer" | |
#"Microsoft.MSPaint" | |
#Redstone apps | |
"Microsoft.BingFoodAndDrink" | |
"Microsoft.BingHealthAndFitness" | |
"Microsoft.BingTravel" | |
"Microsoft.WindowsReadingList" | |
# Redstone 5 apps | |
"Microsoft.MixedReality.Portal" | |
"Microsoft.ScreenSketch" | |
"Microsoft.XboxGamingOverlay" | |
"Microsoft.YourPhone" | |
# non-Microsoft | |
"2FE3CB00.PicsArt-PhotoStudio" | |
"46928bounde.EclipseManager" | |
"4DF9E0F8.Netflix" | |
"613EBCEA.PolarrPhotoEditorAcademicEdition" | |
"6Wunderkinder.Wunderlist" | |
"7EE7776C.LinkedInforWindows" | |
"89006A2E.AutodeskSketchBook" | |
"9E2F88E3.Twitter" | |
"A278AB0D.DisneyMagicKingdoms" | |
"A278AB0D.MarchofEmpires" | |
"ActiproSoftwareLLC.562882FEEB491" # next one is for the Code Writer from Actipro Software LLC | |
"CAF9E577.Plex" | |
"ClearChannelRadioDigital.iHeartRadio" | |
"D52A8D61.FarmVille2CountryEscape" | |
"D5EA27B7.Duolingo-LearnLanguagesforFree" | |
"DB6EA5DB.CyberLinkMediaSuiteEssentials" | |
"DolbyLaboratories.DolbyAccess" | |
"DolbyLaboratories.DolbyAccess" | |
"Drawboard.DrawboardPDF" | |
"Facebook.Facebook" | |
"Fitbit.FitbitCoach" | |
"Flipboard.Flipboard" | |
"GAMELOFTSA.Asphalt8Airborne" | |
"KeeperSecurityInc.Keeper" | |
"NORDCURRENT.COOKINGFEVER" | |
"PandoraMediaInc.29680B314EFC2" | |
"Playtika.CaesarsSlotsFreeCasino" | |
"ShazamEntertainmentLtd.Shazam" | |
"SlingTVLLC.SlingTV" | |
"SpotifyAB.SpotifyMusic" | |
"TheNewYorkTimes.NYTCrossword" | |
"ThumbmunkeysLtd.PhototasticCollage" | |
"TuneIn.TuneInRadio" | |
"WinZipComputing.WinZipUniversal" | |
"XINGAG.XING" | |
"flaregamesGmbH.RoyalRevolt2" | |
"king.com.*" | |
"king.com.BubbleWitch3Saga" | |
"king.com.CandyCrushSaga" | |
"king.com.CandyCrushSodaSaga" | |
# apps which cannot be removed using Remove-AppxPackage | |
#"Microsoft.BioEnrollment" | |
#"Microsoft.MicrosoftEdge" | |
#"Microsoft.Windows.Cortana" | |
#"Microsoft.WindowsFeedback" | |
#"Microsoft.XboxGameCallableUI" | |
#"Microsoft.XboxIdentityProvider" | |
#"Windows.ContactSupport" | |
# apps which other apps depend on | |
"Microsoft.Advertising.Xaml" | |
) | |
foreach ($app in $apps) { | |
Write-Output "Trying to remove $app" | |
Get-AppxPackage -Name $app -AllUsers | Remove-AppxPackage -AllUsers | |
Get-AppXProvisionedPackage -Online | | |
Where-Object DisplayName -EQ $app | | |
Remove-AppxProvisionedPackage -Online | |
} | |
# Prevents Apps from re-installing | |
$cdm = @( | |
"ContentDeliveryAllowed" | |
"FeatureManagementEnabled" | |
"OemPreInstalledAppsEnabled" | |
"PreInstalledAppsEnabled" | |
"PreInstalledAppsEverEnabled" | |
"SilentInstalledAppsEnabled" | |
"SubscribedContent-314559Enabled" | |
"SubscribedContent-338387Enabled" | |
"SubscribedContent-338388Enabled" | |
"SubscribedContent-338389Enabled" | |
"SubscribedContent-338393Enabled" | |
"SubscribedContentEnabled" | |
"SystemPaneSuggestionsEnabled" | |
) | |
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Force | |
foreach ($key in $cdm) { | |
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" $key 0 | |
} | |
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" -Force | |
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" "AutoDownload" 2 | |
# Prevents "Suggested Applications" returning | |
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | |
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" "DisableWindowsConsumerFeatures" 1 | |
# Description: | |
# This script will remove and disable OneDrive integration. | |
Write-Output "Kill OneDrive process" | |
taskkill.exe /F /IM "OneDrive.exe" | |
taskkill.exe /F /IM "explorer.exe" | |
Write-Output "Remove OneDrive" | |
if (Test-Path "$env:systemroot\System32\OneDriveSetup.exe") { | |
& "$env:systemroot\System32\OneDriveSetup.exe" /uninstall | |
} | |
if (Test-Path "$env:systemroot\SysWOW64\OneDriveSetup.exe") { | |
& "$env:systemroot\SysWOW64\OneDriveSetup.exe" /uninstall | |
} | |
Write-Output "Removing OneDrive leftovers" | |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\Microsoft\OneDrive" | |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:programdata\Microsoft OneDrive" | |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:systemdrive\OneDriveTemp" | |
# check if directory is empty before removing: | |
If ((Get-ChildItem "$env:userprofile\OneDrive" -Recurse | Measure-Object).Count -eq 0) { | |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:userprofile\OneDrive" | |
} | |
Write-Output "Disable OneDrive via Group Policies" | |
New-Item -Path "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" -Force | |
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" "DisableFileSyncNGSC" 1 | |
Write-Output "Remove Onedrive from explorer sidebar" | |
New-PSDrive -PSProvider "Registry" -Root "HKEY_CLASSES_ROOT" -Name "HKCR" | |
mkdir -Force "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" | |
Set-ItemProperty -Path "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0 | |
mkdir -Force "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" | |
Set-ItemProperty -Path "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0 | |
Remove-PSDrive "HKCR" | |
# Thank you Matthew Israelsson | |
Write-Output "Removing run hook for new users" | |
reg load "hku\Default" "C:\Users\Default\NTUSER.DAT" | |
reg delete "HKEY_USERS\Default\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveSetup" /f | |
reg unload "hku\Default" | |
Write-Output "Removing startmenu entry" | |
Remove-Item -Force -ErrorAction SilentlyContinue "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" | |
Write-Output "Removing scheduled task" | |
Get-ScheduledTask -TaskPath '\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false | |
Write-Output "Restarting explorer" | |
Start-Process "explorer.exe" | |
Write-Output "Waiting for explorer to complete loading" | |
Start-Sleep 10 | |
Write-Output "Removing additional OneDrive leftovers" | |
foreach ($item in (Get-ChildItem "$env:WinDir\WinSxS\*onedrive*")) { | |
Takeown-Folder $item.FullName | |
Remove-Item -Recurse -Force $item.FullName | |
} | |
# Remove Password Age Limit (Passwords never expire) # | |
net accounts /maxpwage:0 | |
# This script removes all Start Menu Tiles from the .default user # | |
Set-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -Value '<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <LayoutOptions StartTileGroupCellWidth="6" />' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <DefaultLayoutOverride>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <StartLayoutCollection>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <defaultlayout:StartLayout GroupCellWidth="6" />' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' </StartLayoutCollection>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' </DefaultLayoutOverride>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <CustomTaskbarLayoutCollection>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <defaultlayout:TaskbarLayout>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <taskbar:TaskbarPinList>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <taskbar:UWA AppUserModelID="308046B0AF4A39CB" />' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <taskbar:UWA AppUserModelID="D78BF5DD33499EC2" />' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' <taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' </taskbar:TaskbarPinList>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' </defaultlayout:TaskbarLayout>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value ' </CustomTaskbarLayoutCollection>' | |
Add-Content -Path 'C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml' -value '</LayoutModificationTemplate>' | |
$START_MENU_LAYOUT = @" | |
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"> | |
<LayoutOptions StartTileGroupCellWidth="6" /> | |
<DefaultLayoutOverride> | |
<StartLayoutCollection> | |
<defaultlayout:StartLayout GroupCellWidth="6" /> | |
</StartLayoutCollection> | |
</DefaultLayoutOverride> | |
</LayoutModificationTemplate> | |
"@ | |
$layoutFile="C:\Windows\StartMenuLayout.xml" | |
#Delete layout file if it already exists | |
If(Test-Path $layoutFile) | |
{ | |
Remove-Item $layoutFile | |
} | |
#Creates the blank layout file | |
$START_MENU_LAYOUT | Out-File $layoutFile -Encoding ASCII | |
$regAliases = @("HKLM", "HKCU") | |
#Assign the start layout and force it to apply with "LockedStartLayout" at both the machine and user level | |
foreach ($regAlias in $regAliases){ | |
$basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" | |
$keyPath = $basePath + "\Explorer" | |
IF(!(Test-Path -Path $keyPath)) { | |
New-Item -Path $basePath -Name "Explorer" | |
} | |
Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 1 | |
Set-ItemProperty -Path $keyPath -Name "StartLayoutFile" -Value $layoutFile | |
} | |
#Restart Explorer, open the start menu (necessary to load the new layout), and give it a few seconds to process | |
Stop-Process -name explorer | |
Start-Sleep -s 5 | |
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}') | |
Start-Sleep -s 5 | |
#Enable the ability to pin items again by disabling "LockedStartLayout" | |
foreach ($regAlias in $regAliases){ | |
$basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" | |
$keyPath = $basePath + "\Explorer" | |
Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 0 | |
} | |
#Restart Explorer and delete the layout file | |
Stop-Process -name explorer | |
# Uncomment the next line to make clean start menu default for all new users | |
Import-StartLayout -LayoutPath $layoutFile -MountPath $env:SystemDrive\ | |
Remove-Item $layoutFile | |
# Prevents SYSPREP from freezing at "Getting Ready" on first boot # | |
# NOTE, DMWAPPUSHSERVICE is a Keyboard and Ink telemetry service, and potential keylogger. # | |
# It is recommended to disable this service in new builds, but SYSPREP will freeze/fail # | |
# if the service is not running. If SYSPREP will be used, add a FirstBootCommand to your # | |
# build to disable the service. # | |
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dmwappushservice" /v "DelayedAutoStart" /f | |
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dmwappushservice" /v "DelayedAutoStart" /t REG_DWORD /d "1" | |
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dmwappushservice" /v "Start" /f | |
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dmwappushservice" /v "Start" /t REG_DWORD /d "2" | |
# Add the line below to FirstBootCommand in answer file # | |
# reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v "disabledmwappushservice" /t REG_SZ /d "sc config dmwappushservice start= disabled" | |
# Disable Privacy Settings Experience # | |
# Also disables all settings in Privacy Experience # | |
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OOBE" /v "DisablePrivacyExperience" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OOBE" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OOBE" /v "DisablePrivacyExperience" /t REG_DWORD /d "1" /f | |
reg delete "HKEY_USERS\.DEFAULT\Software\Microsoft\Speech_OneCore\Settings\OnlineSpeechPrivacy" /v "HasAccepted" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Speech_OneCore" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Speech_OneCore\Settings" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Speech_OneCore\Settings\OnlineSpeechPrivacy" /v "HasAccepted" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Speech_OneCore\Settings\OnlineSpeechPrivacy" /v "HasAccepted" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Speech_OneCore" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Speech_OneCore\Settings" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Speech_OneCore\Settings\OnlineSpeechPrivacy" /v "HasAccepted" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" /v "Value" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" /v "Value" /t REG_SZ /d "Deny" /f | |
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" /v "Value" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" /v "Value" /t REG_SZ /d "Deny" /f | |
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Settings\FindMyDevice" /v "LocationSyncEnabled" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Settings\FindMyDevice" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Settings\FindMyDevice" /v "LocationSyncEnabled" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" /v "ShowedToastAtLevel" /f | |
reg add "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics" /f | |
reg add "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" /f | |
reg add "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" /v "ShowedToastAtLevel" /t REG_DWORD /d "1" /f | |
reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" /v "ShowedToastAtLevel" /f | |
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics" /f | |
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" /f | |
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" /v "ShowedToastAtLevel" /t REG_DWORD /d "1" /f | |
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /v "AllowTelemetry" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /v "AllowTelemetry" /t REG_DWORD /d "1" /f | |
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /v "MaxTelemetryAllowed" /f | |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /v "MaxTelemetryAllowed" /t REG_DWORD /d "1" /f | |
reg delete "HKEY_USERS\.DEFAULT\Software\Microsoft\Input\TIPC" /v "Enabled" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Input" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Input\TIPC" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Input\TIPC" /v "Enabled" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Input\TIPC" /v "Enabled" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Input" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Input\TIPC" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Input\TIPC" /v "Enabled" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Privacy" /v "TailoredExperiencesWithDiagnosticDataEnabled" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Privacy" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Privacy" /v "TailoredExperiencesWithDiagnosticDataEnabled" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Privacy" /v "TailoredExperiencesWithDiagnosticDataEnabled" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Privacy" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Privacy" /v "TailoredExperiencesWithDiagnosticDataEnabled" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v "Enabled" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /f | |
reg add "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v "Enabled" /t REG_DWORD /d "0" /f | |
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v "Enabled" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /f | |
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v "Enabled" /t REG_DWORD /d "0" /f | |
# Set Windows to Dark Mode # | |
#reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes" /f | |
#reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes" /v "AppsUseLightTheme" /t "REG_DWORD" /d "0" /f | |
#reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes" /v "SystemUsesLightTheme" /t "REG_DWORD" /d "0" /f | |
#reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes" /f | |
#reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /f | |
#reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v "AppsUseLightTheme" /t "REG_DWORD" /d "0" /f | |
#reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v "SystemUsesLightTheme" /t "REG_DWORD" /d "0" /f | |
#reg add "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes" /f | |
#reg add "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /f | |
#reg add "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v "AppsUseLightTheme" /t "REG_DWORD" /d "0" /f | |
#reg add "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v "SystemUsesLightTheme" /t "REG_DWORD" /d "0" /f | |
New-Item -Path "HKCU:\Software" -Name Tihiy -Force | |
New-Item -Path "HKCU:\Software\Tihiy" -Name OldNewExplorer -Force | |
Write-Host "Set up OldNewExplorer..." | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "DriveGrouping" -Type DWord -Value 1 | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "IEButtons" -Type DWord -Value 0 | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "NavBarGlass" -Type DWord -Value 1 | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "NoCaption" -Type DWord -Value 1 | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "NoIcon" -Type DWord -Value 1 | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "NoRibbon" -Type DWord -Value 1 | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "NoUpButton" -Type DWord -Value 0 | |
Set-ItemProperty -Path "HKCU:\Software\Tihiy\OldNewExplorer" -Name "Style" -Type DWord -Value 0 | |
Write-Host "Enabling PreferExternalManifest..." | |
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" -Name "PreferExternalManifest" -Type DWord -Value 1 | |
Copy-Item "Taskmgr.exe.manifest" -Destination "C:\Windows\System32" | |
Write-Host "Adding Take Ownership to context menu..." | |
reg import takeown.reg | |
Write-Host "Removing Cortana..." | |
Get-AppxPackage -allusers Microsoft.549981C3F5F10 | Remove-AppxPackage | |
Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ Microsoft.549981C3F5F10 | Remove-AppxProvisionedPackage -Online | |
Write-Host "Removing Paint 3D..." | |
Get-AppxPackage -allusers Microsoft.MSPaint | Remove-AppxPackage | |
Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ Microsoft.MSPaint | Remove-AppxProvisionedPackage -Online | |
Write-Host "Copying Tools folder to local system..." | |
Copy-Item "Z:\Tools" -Destination "C:\Tools" -Recurse | |
Write-Host "Copy conhost.exe..." | |
takeown /f "C:\Windows\System32\conhost.exe" | |
icacls "C:\Windows\System32\conhost.exe" /grant *S-1-3-4:F /t /c /l | |
Rename-Item -Path "C:\Windows\System32\conhost.exe" -NewName "conhostO.exe" | |
Copy-Item "conhost.exe" -Destination "C:\Windows\System32\conhost.exe" | |
Write-Host "Copy shellstyle.dll..." | |
takeown /f "C:\Windows\Resources\Themes\aero\Shell\NormalColor\shellstyle.dll" | |
icacls "C:\Windows\Resources\Themes\aero\Shell\NormalColor\shellstyle.dll" /grant *S-1-3-4:F /t /c /l | |
Rename-Item -Path "C:\Windows\Resources\Themes\aero\Shell\NormalColor\shellstyle.dll" -NewName "shellstyleO.dll" | |
Copy-Item "shellstyle.dll" -Destination "C:\Windows\Resources\Themes\aero\Shell\NormalColor\shellstyle.dll" | |
Write-Host "Registering tasks..." | |
schtasks.exe /Create /XML ApplicationMaintenance.xml /tn "Applications Maintenance" | |
schtasks.exe /Create /XML WinCenterTitle.xml /tn "WinCenterTitle" | |
# https://www.joseespitia.com/2017/09/15/set-wallpaper-powershell-function/ | |
Function Set-WallPaper { | |
<# | |
.SYNOPSIS | |
Applies a specified wallpaper to the current user's desktop | |
.PARAMETER Image | |
Provide the exact path to the image | |
.PARAMETER Style | |
Provide wallpaper style (Example: Fill, Fit, Stretch, Tile, Center, or Span) | |
.EXAMPLE | |
Set-WallPaper -Image "C:\Wallpaper\Default.jpg" | |
Set-WallPaper -Image "C:\Wallpaper\Background.jpg" -Style Fit | |
#> | |
param ( | |
[parameter(Mandatory=$True)] | |
# Provide path to image | |
[string]$Image, | |
# Provide wallpaper style that you would like applied | |
[parameter(Mandatory=$False)] | |
[ValidateSet('Fill', 'Fit', 'Stretch', 'Tile', 'Center', 'Span')] | |
[string]$Style | |
) | |
$WallpaperStyle = Switch ($Style) { | |
"Fill" {"10"} | |
"Fit" {"6"} | |
"Stretch" {"2"} | |
"Tile" {"0"} | |
"Center" {"0"} | |
"Span" {"22"} | |
} | |
If($Style -eq "Tile") { | |
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force | |
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 1 -Force | |
} | |
Else { | |
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force | |
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 0 -Force | |
} | |
Add-Type -TypeDefinition @" | |
using System; | |
using System.Runtime.InteropServices; | |
public class Params | |
{ | |
[DllImport("User32.dll",CharSet=CharSet.Unicode)] | |
public static extern int SystemParametersInfo (Int32 uAction, | |
Int32 uParam, | |
String lpvParam, | |
Int32 fuWinIni); | |
} | |
"@ | |
$SPI_SETDESKWALLPAPER = 0x0014 | |
$UpdateIniFile = 0x01 | |
$SendChangeEvent = 0x02 | |
$fWinIni = $UpdateIniFile -bor $SendChangeEvent | |
$ret = [Params]::SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, $Image, $fWinIni) | |
} | |
Write-Host "Setting wallpaper..." | |
Set-WallPaper -Image "C:\Tools\background.jpg" -Style Fill | |
# close Start menu | |
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}') | |
Write-Host "Removing Microsoft Edge Office PWA crap" | |
# first command is so that the shits get created (we start Edge but do not ruin its OOBE state) | |
Start -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -ArgumentList "--profile-directory=Default --uninstall-app-id=" | |
Start-Sleep -s 5 | |
taskkill /f /im msedge.exe | |
# remove Word | |
Start -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -ArgumentList "--profile-directory=Default --uninstall-app-id=hikhggiobiflkdfdgdajcfklmcibbopi" | |
Start-Sleep -s 5 | |
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys(' ') | |
Start-Sleep -s 10 | |
taskkill /f /im msedge.exe | |
# remove PowerPoint | |
Start -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -ArgumentList "--profile-directory=Default --uninstall-app-id=opfacbhaojodjaojgocnibmklknchehf" | |
Start-Sleep -s 5 | |
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys(' ') | |
Start-Sleep -s 10 | |
taskkill /f /im msedge.exe | |
# remove Outlook | |
Start -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -ArgumentList "--profile-directory=Default --uninstall-app-id=bjhmmnoficofgoiacjaajpkfndojknpb" | |
Start-Sleep -s 5 | |
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys(' ') | |
Start-Sleep -s 10 | |
taskkill /f /im msedge.exe | |
# remove Excel | |
Start -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -ArgumentList "--profile-directory=Default --uninstall-app-id=leffmjdabcgaflkikcefahmlgpodjkdm" | |
Start-Sleep -s 5 | |
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys(' ') | |
Start-Sleep -s 10 | |
taskkill /f /im msedge.exe | |
Write-Host "Registering OldNewExplorer..." | |
Start-Sleep -s 1 | |
Start-Process -WorkingDirectory "C:\Tools\OldNewExplorer" -FilePath "C:\Tools\OldNewExplorer\OldNewExplorerCfg.exe" | |
Start-Sleep -s 4 | |
$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys(' ') | |
Start-Sleep -s 10 | |
########## | |
# Restart | |
########## | |
#Write-Host | |
#Write-Host "Press any key to restart your system..." -ForegroundColor Black -BackgroundColor White | |
#$key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | |
#Write-Host "Restarting..." | |
#Restart-Computer |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment