mirror of
https://github.com/Disassembler0/Win10-Initial-Setup-Script.git
synced 2026-01-14 16:37:57 -05:00
- Add "Disable Error reporting" - Add "Disable offering of drivers through Windows Update" - Update "Disable Web Search in Start Menu" - Update "Disable Start Menu suggestions" - Update "Disable Cortana" - Update "Disable Windows Update automatic restart" - Update "Disable Xbox DVR"
1104 lines
53 KiB
PowerShell
1104 lines
53 KiB
PowerShell
##########
|
|
# Win10 Initial Setup Script
|
|
# Author: Disassembler <disassembler@dasm.cz>
|
|
# Version: 2.0, 2017-01-08
|
|
##########
|
|
|
|
# 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`" $args" -Verb RunAs
|
|
Exit
|
|
}
|
|
|
|
# Default preset
|
|
$preset = @(
|
|
"DisableTelemetry",
|
|
"DisableWiFiSense",
|
|
"DisableSmartScreen",
|
|
"DisableWebSearch",
|
|
"DisableStartSuggestions",
|
|
"DisableLocationTracking",
|
|
"DisableFeedback",
|
|
"DisableAdvertisingID",
|
|
"DisableCortana",
|
|
"DisableErrorReporting",
|
|
"RestrictUpdateP2P",
|
|
"DisableAutoLogger",
|
|
"DisableDiagTrack",
|
|
"DisableWAPPush",
|
|
|
|
# "LowerUAC",
|
|
# "EnableSharingMappedDrives",
|
|
"DisableAdminShares",
|
|
"DisableFirewall",
|
|
# "DisableDefender",
|
|
# "DisableUpdateMSRT",
|
|
# "DisableUpdateDriver",
|
|
"DisableUpdateRestart",
|
|
"DisableHomeGroups",
|
|
"DisableRemoteAssistance",
|
|
"EnableRemoteDesktop",
|
|
|
|
"DisableActionCenter",
|
|
"DisableLockScreen",
|
|
# "DisableLockScreenWorkaround",
|
|
"DisableAutoplay",
|
|
"DisableAutorun",
|
|
"DisableStickyKeys",
|
|
"HideTaskbarSearchBox",
|
|
"HideTaskView",
|
|
"ShowSmallTaskbarIcons",
|
|
"ShowTaskbarTitles",
|
|
"ShowTrayIcons",
|
|
"ShowKnownExtensions",
|
|
"ShowHiddenFiles",
|
|
"ExplorerThisPC",
|
|
"ShowThisPCOnDesktop",
|
|
"HideDesktopFromThisPC",
|
|
"HideDocumentsFromThisPC",
|
|
"HideDownloadsFromThisPC",
|
|
"HideMusicFromThisPC",
|
|
"HidePicturesFromThisPC",
|
|
"HideVideosFromThisPC",
|
|
# "AddENKeyboard",
|
|
# "EnableNumlock",
|
|
|
|
"DisableOneDrive",
|
|
"UninstallOneDrive",
|
|
"UninstallBloatware",
|
|
"DisableXboxDVR",
|
|
# "UninstallMediaPlayer",
|
|
# "UninstallWorkFolders",
|
|
# "InstallLinuxSubsystem",
|
|
"SetPhotoViewerAssociation",
|
|
"AddPhotoViewerOpenWith",
|
|
"EnableF8BootMenu",
|
|
|
|
"WaitForKey",
|
|
"Restart"
|
|
)
|
|
|
|
# Load preset from arguments or a file
|
|
If ($args.length -gt 0) {
|
|
$preset = $args
|
|
If ($args[0] -eq "-preset") {
|
|
$preset = Get-Content $args[1] -ErrorAction Stop
|
|
}
|
|
}
|
|
|
|
|
|
|
|
##########
|
|
# Privacy Settings
|
|
##########
|
|
|
|
# Disable Telemetry
|
|
Function DisableTelemetry {
|
|
Write-Host "Disabling Telemetry..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
|
|
}
|
|
|
|
# Enable Telemetry
|
|
Function EnableTelemetry {
|
|
Write-Host "Enabling Telemetry..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 3
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 3
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 3
|
|
}
|
|
|
|
# Disable Wi-Fi Sense
|
|
Function DisableWiFiSense {
|
|
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
|
|
Function EnableWiFiSense {
|
|
Write-Host "Enabling 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
|
|
Function DisableSmartScreen {
|
|
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
|
|
Function EnableSmartScreen {
|
|
Write-Host "Enabling 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 Web Search in Start Menu
|
|
Function DisableWebSearch {
|
|
Write-Host "Disabling Bing Search in Start Menu..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled" -Type DWord -Value 0
|
|
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search")) {
|
|
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Force | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "DisableWebSearch" -Type DWord -Value 1
|
|
}
|
|
|
|
# Enable Web Search in Start Menu
|
|
Function EnableWebSearch {
|
|
Write-Host "Enabling Bing Search in Start Menu..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled"
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "DisableWebSearch"
|
|
}
|
|
|
|
# Disable Start Menu suggestions
|
|
Function DisableStartSuggestions {
|
|
Write-Host "Disabling Start Menu suggestions..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 0
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 0
|
|
}
|
|
|
|
# Enable Start Menu suggestions
|
|
Function EnableStartSuggestions {
|
|
Write-Host "Enabling Start Menu suggestions..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 1
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 1
|
|
}
|
|
|
|
# Disable Location Tracking
|
|
Function DisableLocationTracking {
|
|
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
|
|
Function EnableLocationTracking {
|
|
Write-Host "Enabling 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
|
|
Function DisableFeedback {
|
|
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
|
|
Function EnableFeedback {
|
|
Write-Host "Enabling Feedback..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod"
|
|
}
|
|
|
|
# Disable Advertising ID
|
|
Function DisableAdvertisingID {
|
|
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
|
|
Function EnableAdvertisingID {
|
|
Write-Host "Enabling Advertising ID..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled"
|
|
}
|
|
|
|
# Disable Cortana
|
|
Function DisableCortana {
|
|
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
|
|
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search")) {
|
|
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Force | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "AllowCortana" -Type DWord -Value 0
|
|
}
|
|
|
|
# Enable Cortana
|
|
Function EnableCortana {
|
|
Write-Host "Enabling 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"
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "AllowCortana"
|
|
}
|
|
|
|
# Disable Error reporting
|
|
Function DisableErrorReporting {
|
|
Write-Host "Disabling Error reporting..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 1
|
|
}
|
|
|
|
# Enable Error reporting
|
|
Function EnableErrorReporting {
|
|
Write-Host "Enabling Error reporting..."
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled"
|
|
}
|
|
|
|
# Restrict Windows Update P2P only to local network
|
|
Function RestrictUpdateP2P {
|
|
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
|
|
Function UnrestrictUpdateP2P {
|
|
Write-Host "Unrestricting Windows Update P2P to internet..."
|
|
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
|
|
Function DisableAutoLogger {
|
|
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
|
|
Function EnableAutoLogger {
|
|
Write-Host "Unrestricting 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
|
|
Function DisableDiagTrack {
|
|
Write-Host "Stopping and disabling Diagnostics Tracking Service..."
|
|
Stop-Service "DiagTrack"
|
|
Set-Service "DiagTrack" -StartupType Disabled
|
|
}
|
|
|
|
# Enable and start Diagnostics Tracking Service
|
|
Function EnableDiagTrack {
|
|
Write-Host "Enabling and starting Diagnostics Tracking Service..."
|
|
Set-Service "DiagTrack" -StartupType Automatic
|
|
Start-Service "DiagTrack"
|
|
}
|
|
|
|
# Stop and disable WAP Push Service
|
|
Function DisableWAPPush {
|
|
Write-Host "Stopping and disabling WAP Push Service..."
|
|
Stop-Service "dmwappushservice"
|
|
Set-Service "dmwappushservice" -StartupType Disabled
|
|
}
|
|
|
|
# Enable and start WAP Push Service
|
|
Function EnableWAPPush {
|
|
Write-Host "Enabling and starting WAP Push Service..."
|
|
Set-Service "dmwappushservice" -StartupType Automatic
|
|
Start-Service "dmwappushservice"
|
|
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\dmwappushservice" -Name "DelayedAutoStart" -Type DWord -Value 1
|
|
}
|
|
|
|
|
|
|
|
##########
|
|
# Service Tweaks
|
|
##########
|
|
|
|
# Lower UAC level
|
|
Function LowerUAC {
|
|
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
|
|
Function RaiseUAC {
|
|
Write-Host "Raising 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
|
|
Function EnableSharingMappedDrives {
|
|
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
|
|
Function DisableSharingMappedDrives {
|
|
Write-Host "Disabling sharing mapped drives between users..."
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections"
|
|
}
|
|
|
|
# Disable implicit administrative shares
|
|
Function DisableAdminShares {
|
|
Write-Host "Disabling implicit administrative shares..."
|
|
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -Type DWord -Value 0
|
|
}
|
|
|
|
# Enable implicit administrative shares
|
|
Function EnableAdminShares {
|
|
Write-Host "Enabling implicit administrative shares..."
|
|
Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks"
|
|
}
|
|
|
|
# Disable Firewall
|
|
Function DisableFirewall {
|
|
Write-Host "Disabling Firewall..."
|
|
Set-NetFirewallProfile -Profile * -Enabled False
|
|
}
|
|
|
|
# Enable Firewall
|
|
Function EnableFirewall {
|
|
Write-Host "Enabling Firewall..."
|
|
Set-NetFirewallProfile -Profile * -Enabled True
|
|
}
|
|
|
|
# Disable Windows Defender
|
|
Function DisableDefender {
|
|
Write-Host "Disabling Windows Defender..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -Type DWord -Value 1
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "WindowsDefender" -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
# Enable Windows Defender
|
|
Function EnableDefender {
|
|
Write-Host "Enabling Windows Defender..."
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "WindowsDefender" -Type ExpandString -Value "`"%ProgramFiles%\Windows Defender\MSASCuiL.exe`""
|
|
}
|
|
|
|
# Disable offering of Malicious Software Removal Tool through Windows Update
|
|
Function DisableUpdateMSRT {
|
|
Write-Host "Disabling Malicious Software Removal Tool offering..."
|
|
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT")) {
|
|
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU" -Type DWord -Value 1
|
|
}
|
|
|
|
# Enable offering of Malicious Software Removal Tool through Windows Update
|
|
Function EnableUpdateMSRT {
|
|
Write-Host "Enabling Malicious Software Removal Tool offering..."
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU"
|
|
}
|
|
|
|
# Disable offering of drivers through Windows Update
|
|
Function DisableUpdateDriver {
|
|
Write-Host "Disabling driver offering through Windows Update..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" -Name "SearchOrderConfig" -Type DWord -Value 0
|
|
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate")) {
|
|
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -Type DWord -Value 1
|
|
}
|
|
|
|
# Enable offering of drivers through Windows Update
|
|
Function EnableUpdateDriver {
|
|
Write-Host "Enabling driver offering through Windows Update..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" -Name "SearchOrderConfig" -Type DWord -Value 1
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate"
|
|
}
|
|
|
|
# Disable Windows Update automatic restart
|
|
Function DisableUpdateRestart {
|
|
Write-Host "Disabling Windows Update automatic restart..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 1
|
|
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU")) {
|
|
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -Type DWord -Value 1
|
|
}
|
|
|
|
# Enable Windows Update automatic restart
|
|
Function EnableUpdateRestart {
|
|
Write-Host "Enabling Windows Update automatic restart..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 0
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers"
|
|
}
|
|
|
|
# Stop and disable Home Groups services
|
|
Function DisableHomeGroups {
|
|
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
|
|
Function EnableHomeGroups {
|
|
Write-Host "Starting and enabling Home Groups services..."
|
|
Set-Service "HomeGroupListener" -StartupType Manual
|
|
Set-Service "HomeGroupProvider" -StartupType Manual
|
|
Start-Service "HomeGroupProvider"
|
|
}
|
|
|
|
# Disable Remote Assistance
|
|
Function DisableRemoteAssistance {
|
|
Write-Host "Disabling Remote Assistance..."
|
|
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 0
|
|
}
|
|
|
|
# Enable Remote Assistance
|
|
Function EnableRemoteAssistance {
|
|
Write-Host "Enabling 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
|
|
Function EnableRemoteDesktop {
|
|
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
|
|
Function DisableRemoteDesktop {
|
|
Write-Host "Disabling 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
|
|
Function DisableActionCenter {
|
|
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
|
|
Function EnableActionCenter {
|
|
Write-Host "Enabling 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
|
|
Function DisableLockScreen {
|
|
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
|
|
Function EnableLockScreen {
|
|
Write-Host "Enabling Lock screen..."
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen"
|
|
}
|
|
|
|
# Disable Lock screen (Anniversary Update workaround) - Applicable to RS1 or newer
|
|
Function DisableLockScreenWorkaround {
|
|
Write-Host "Disabling Lock screen using scheduler workaround..."
|
|
$service = New-Object -com Schedule.Service
|
|
$service.Connect()
|
|
$task = $service.NewTask(0)
|
|
$task.Settings.DisallowStartIfOnBatteries = $false
|
|
$trigger = $task.Triggers.Create(9)
|
|
$trigger = $task.Triggers.Create(11)
|
|
$trigger.StateChange = 8
|
|
$action = $task.Actions.Create(0)
|
|
$action.Path = "reg.exe"
|
|
$action.Arguments = "add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData /t REG_DWORD /v AllowLockScreen /d 0 /f"
|
|
$service.GetFolder("\").RegisterTaskDefinition("Disable LockScreen", $task, 6, "NT AUTHORITY\SYSTEM", $null, 4) | Out-Null
|
|
}
|
|
|
|
# Enable Lock screen (Anniversary Update workaround) - Applicable to RS1 or newer
|
|
Function EnableLockScreenWorkaround {
|
|
Write-Host "Enabling Lock screen (removing scheduler workaround)..."
|
|
Unregister-ScheduledTask -TaskName "Disable LockScreen" -Confirm:$false -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
# Disable Autoplay
|
|
Function DisableAutoplay {
|
|
Write-Host "Disabling Autoplay..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 1
|
|
}
|
|
|
|
# Enable Autoplay
|
|
Function EnableAutoplay {
|
|
Write-Host "Enabling Autoplay..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 0
|
|
}
|
|
|
|
# Disable Autorun for all drives
|
|
Function DisableAutorun {
|
|
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
|
|
Function EnableAutorun {
|
|
Write-Host "Enabling Autorun for all drives..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun"
|
|
}
|
|
|
|
# Disable Sticky keys prompt
|
|
Function DisableStickyKeys {
|
|
Write-Host "Disabling Sticky keys prompt..."
|
|
Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "506"
|
|
}
|
|
|
|
# Enable Sticky keys prompt
|
|
Function EnableStickyKeys {
|
|
Write-Host "Enabling Sticky keys prompt..."
|
|
Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "510"
|
|
}
|
|
|
|
# Hide Taskbar Search button / box
|
|
Function HideTaskbarSearchBox {
|
|
Write-Host "Hiding Taskbar Search box / button..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" -Type DWord -Value 0
|
|
}
|
|
|
|
# Show Taskbar Search button / box
|
|
Function ShowTaskbarSearchBox {
|
|
Write-Host "Showing Taskbar Search box / button..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode"
|
|
}
|
|
|
|
# Hide Task View button
|
|
Function HideTaskView {
|
|
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
|
|
Function ShowTaskView {
|
|
Write-Host "Showing Task View button..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton"
|
|
}
|
|
|
|
# Show small icons in taskbar
|
|
Function ShowSmallTaskbarIcons {
|
|
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
|
|
Function ShowLargeTaskbarIcons {
|
|
Write-Host "Showing large icons in taskbar..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons"
|
|
}
|
|
|
|
# Show titles in taskbar
|
|
Function ShowTaskbarTitles {
|
|
Write-Host "Showing titles in taskbar..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -Type DWord -Value 1
|
|
}
|
|
|
|
# Hide titles in taskbar
|
|
Function HideTaskbarTitles {
|
|
Write-Host "Hiding titles in taskbar..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel"
|
|
}
|
|
|
|
# Show all tray icons
|
|
Function ShowTrayIcons {
|
|
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
|
|
Function HideTrayIcons {
|
|
Write-Host "Hiding tray icons..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray"
|
|
}
|
|
|
|
# Show known file extensions
|
|
Function ShowKnownExtensions {
|
|
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
|
|
Function HideKnownExtensions {
|
|
Write-Host "Hiding known file extensions..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 1
|
|
}
|
|
|
|
# Show hidden files
|
|
Function ShowHiddenFiles {
|
|
Write-Host "Showing hidden files..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 1
|
|
}
|
|
|
|
# Hide hidden files
|
|
Function HideHiddenFiles {
|
|
Write-Host "Hiding hidden files..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 2
|
|
}
|
|
|
|
# Change default Explorer view to This PC
|
|
Function ExplorerThisPC {
|
|
Write-Host "Changing default Explorer view to This PC..."
|
|
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1
|
|
}
|
|
|
|
# Change default Explorer view to Quick Access
|
|
Function ExplorerQuickAccess {
|
|
Write-Host "Changing default Explorer view to Quick Access..."
|
|
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo"
|
|
}
|
|
|
|
# Show This PC shortcut on desktop
|
|
Function ShowThisPCOnDesktop {
|
|
Write-Host "Showing This PC 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 This PC shortcut from desktop
|
|
Function HideThisPCFromDesktop {
|
|
Write-Host "Hiding This PC 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}"
|
|
}
|
|
|
|
# Hide Desktop icon from This PC
|
|
Function HideDesktopFromThisPC {
|
|
Write-Host "Hiding Desktop icon from This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
}
|
|
|
|
# Show Desktop icon in This PC
|
|
Function ShowDesktopInThisPC {
|
|
Write-Host "Showing Desktop icon in This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
}
|
|
|
|
# Hide Documents icon from This PC
|
|
Function HideDocumentsFromThisPC {
|
|
Write-Host "Hiding Documents icon from This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
}
|
|
|
|
# Show Documents icon in This PC
|
|
Function ShowDocumentsInThisPC {
|
|
Write-Host "Showing Documents icon in This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
}
|
|
|
|
# Hide Downloads icon from This PC
|
|
Function HideDownloadsFromThisPC {
|
|
Write-Host "Hiding Downloads icon from This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
}
|
|
|
|
# Show Downloads icon in This PC
|
|
Function ShowDownloadsInThisPC {
|
|
Write-Host "Showing Downloads icon in This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
}
|
|
|
|
# Hide Music icon from This PC
|
|
Function HideMusicFromThisPC {
|
|
Write-Host "Hiding Music icon from This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
}
|
|
|
|
# Show Music icon in This PC
|
|
Function ShowMusicInThisPC {
|
|
Write-Host "Showing Music icon in This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
}
|
|
|
|
# Hide Pictures icon from This PC
|
|
Function HidePicturesFromThisPC {
|
|
Write-Host "Hiding Pictures icon from This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
}
|
|
|
|
# Show Pictures icon in This PC
|
|
Function ShowPicturesInThisPC {
|
|
Write-Host "Showing Pictures icon in This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
}
|
|
|
|
# Hide Videos icon from This PC
|
|
Function HideVideosFromThisPC {
|
|
Write-Host "Hiding Videos icon from This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
|
|
}
|
|
|
|
# Show Videos icon in This PC
|
|
Function ShowVideosInThisPC {
|
|
Write-Host "Showing Videos icon in This PC..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
|
}
|
|
|
|
# Add secondary en-US keyboard
|
|
Function AddENKeyboard {
|
|
Write-Host "Adding secondary en-US keyboard..."
|
|
$langs = Get-WinUserLanguageList
|
|
$langs.Add("en-US")
|
|
Set-WinUserLanguageList $langs -Force
|
|
}
|
|
|
|
# Remove secondary en-US keyboard
|
|
Function RemoveENKeyboard {
|
|
Write-Host "Removing secondary en-US keyboard..."
|
|
$langs = Get-WinUserLanguageList
|
|
Set-WinUserLanguageList ($langs | ? {$_.LanguageTag -ne "en-US"}) -Force
|
|
}
|
|
|
|
# Enable NumLock after startup
|
|
Function EnableNumlock {
|
|
Write-Host "Enabling NumLock after startup..."
|
|
If (!(Test-Path "HKU:")) {
|
|
New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 2147483650
|
|
}
|
|
|
|
# Disable NumLock after startup
|
|
Function DisableNumlock {
|
|
Write-Host "Disabling NumLock after startup..."
|
|
If (!(Test-Path "HKU:")) {
|
|
New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 2147483648
|
|
}
|
|
|
|
|
|
|
|
##########
|
|
# Remove unwanted applications
|
|
##########
|
|
|
|
# Disable OneDrive
|
|
Function DisableOneDrive {
|
|
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
|
|
Function EnableOneDrive {
|
|
Write-Host "Enabling OneDrive..."
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC"
|
|
}
|
|
|
|
# Uninstall OneDrive
|
|
Function UninstallOneDrive {
|
|
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
|
|
Function InstallOneDrive {
|
|
Write-Host "Installing 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
|
|
Function UninstallBloatware {
|
|
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 "4DF9E0F8.Netflix" | Remove-AppxPackage
|
|
Get-AppxPackage "Drawboard.DrawboardPDF" | Remove-AppxPackage
|
|
Get-AppxPackage "Microsoft.MicrosoftStickyNotes" | Remove-AppxPackage
|
|
Get-AppxPackage "Microsoft.OneConnect" | Remove-AppxPackage
|
|
Get-AppxPackage "D52A8D61.FarmVille2CountryEscape" | Remove-AppxPackage
|
|
Get-AppxPackage "GAMELOFTSA.Asphalt8Airborne" | Remove-AppxPackage
|
|
Get-AppxPackage "Microsoft.WindowsFeedbackHub" | Remove-AppxPackage
|
|
}
|
|
|
|
# Install default Microsoft applications
|
|
Function InstallBloatware {
|
|
Write-Host "Installing 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"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "9E2F88E3.Twitter").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "king.com.CandyCrushSodaSaga").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "4DF9E0F8.Netflix").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Drawboard.DrawboardPDF").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.MicrosoftStickyNotes").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.OneConnect").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "D52A8D61.FarmVille2CountryEscape").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "GAMELOFTSA.Asphalt8Airborne").InstallLocation)\AppXManifest.xml"
|
|
Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsFeedbackHub").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
|
|
|
|
# Disable Xbox DVR
|
|
Function DisableXboxDVR {
|
|
Write-Host "Disabling Xbox DVR..."
|
|
Set-ItemProperty -Path "HKCU:\System\GameConfigStore" -Name "GameDVR_Enabled" -Type DWord -Value 0
|
|
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR")) {
|
|
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" | Out-Null
|
|
}
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -Type DWord -Value 0
|
|
}
|
|
|
|
# Enable Xbox DVR
|
|
Function EnableXboxDVR {
|
|
Write-Host "Enabling Xbox DVR..."
|
|
Set-ItemProperty -Path "HKCU:\System\GameConfigStore" -Name "GameDVR_Enabled" -Type DWord -Value 1
|
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
# Uninstall Windows Media Player
|
|
Function UninstallMediaPlayer {
|
|
Write-Host "Uninstalling Windows Media Player..."
|
|
dism /online /Disable-Feature /FeatureName:MediaPlayback /Quiet /NoRestart
|
|
}
|
|
|
|
# Install Windows Media Player
|
|
Function InstallMediaPlayer {
|
|
Write-Host "Installing Windows Media Player..."
|
|
dism /online /Enable-Feature /FeatureName:MediaPlayback /Quiet /NoRestart
|
|
}
|
|
|
|
# Uninstall Work Folders Client
|
|
Function UninstallWorkFolders {
|
|
Write-Host "Uninstalling Work Folders Client..."
|
|
dism /online /Disable-Feature /FeatureName:WorkFolders-Client /Quiet /NoRestart
|
|
}
|
|
|
|
# Install Work Folders Client
|
|
Function InstallWorkFolders {
|
|
Write-Host "Installing Work Folders Client..."
|
|
dism /online /Enable-Feature /FeatureName:WorkFolders-Client /Quiet /NoRestart
|
|
}
|
|
|
|
# Install Linux Subsystem - Applicable to RS1 or newer
|
|
Function InstallLinuxSubsystem {
|
|
Write-Host "Installing Linux Subsystem..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 1
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowAllTrustedApps" -Type DWord -Value 1
|
|
dism /online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /Quiet /NoRestart
|
|
}
|
|
|
|
# Uninstall Linux Subsystem - Applicable to RS1 or newer
|
|
Function UninstallLinuxSubsystem {
|
|
Write-Host "Uninstalling Linux Subsystem..."
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 0
|
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowAllTrustedApps" -Type DWord -Value 0
|
|
dism /online /Disable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /Quiet /NoRestart
|
|
}
|
|
|
|
# Set Photo Viewer association for bmp, gif, jpg, png and tif
|
|
Function SetPhotoViewerAssociation {
|
|
Write-Host "Setting Photo Viewer association 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"
|
|
}
|
|
}
|
|
|
|
# Unset Photo Viewer association for bmp, gif, jpg, png and tif
|
|
Function UnsetPhotoViewerAssociation {
|
|
Write-Host "Unsetting Photo Viewer association for bmp, gif, jpg, png and tif..."
|
|
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
|
|
}
|
|
|
|
# Add Photo Viewer to "Open with..."
|
|
Function AddPhotoViewerOpenWith {
|
|
Write-Host "Adding Photo Viewer to `"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..."
|
|
Function RemovePhotoViewerOpenWith {
|
|
Write-Host "Removing 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
|
|
}
|
|
|
|
# Enable F8 boot menu options
|
|
Function EnableF8BootMenu {
|
|
Write-Host "Enabling F8 boot menu options..."
|
|
bcdedit /set `{current`} bootmenupolicy Legacy | Out-Null
|
|
}
|
|
|
|
# Disable F8 boot menu options
|
|
Function DisableF8BootMenu {
|
|
Write-Host "Disabling F8 boot menu options..."
|
|
bcdedit /set `{current`} bootmenupolicy Standard | Out-Null
|
|
}
|
|
|
|
|
|
|
|
##########
|
|
# Auxiliary
|
|
##########
|
|
|
|
Function WaitForKey {
|
|
Write-Host
|
|
Write-Host "Press any key to continue..." -ForegroundColor Black -BackgroundColor White
|
|
$key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
|
|
}
|
|
|
|
Function Restart {
|
|
Write-Host "Restarting..."
|
|
Restart-Computer
|
|
}
|
|
|
|
|
|
# Call the functions defined by preset
|
|
ForEach ($line in $preset) {
|
|
$line = $line.Trim()
|
|
If ($line -eq "" -Or $line[0] -eq "#") {
|
|
continue
|
|
}
|
|
Invoke-Expression $line
|
|
}
|