diff --git a/winutil.ps1 b/winutil.ps1 index e67c1ee9..7f4abb8c 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -8,35 +8,37 @@ # $inputXML = Get-Content "MainWindow.xaml" #uncomment for development $inputXML = (new-object Net.WebClient).DownloadString("https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/MainWindow.xaml") #uncomment for Production -$inputXML = $inputXML -replace 'mc:Ignorable="d"','' -replace "x:N",'N' -replace '^ +catch { + #if it broke some other way 😀 Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed." - } - +} + #=========================================================================== # Store Form Objects In PowerShell #=========================================================================== - -$xaml.SelectNodes("//*[@Name]") | %{Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name)} - -Function Get-FormVariables{ -if ($global:ReadmeDisplay -ne $true){Write-host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow;$global:ReadmeDisplay=$true} -write-host "Found the following interactable elements from our form" -ForegroundColor Cyan -get-variable WPF* + +$xaml.SelectNodes("//*[@Name]") | % { Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name) } + +Function Get-FormVariables { + if ($global:ReadmeDisplay -ne $true) { Write-host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow; $global:ReadmeDisplay = $true } + write-host "Found the following interactable elements from our form" -ForegroundColor Cyan + get-variable WPF* } - + Get-FormVariables #=========================================================================== @@ -44,701 +46,699 @@ Get-FormVariables #=========================================================================== $WPFTab1BT.Add_Click({ - $WPFTabNav.Items[0].IsSelected = $true - $WPFTabNav.Items[1].IsSelected = $false - $WPFTabNav.Items[2].IsSelected = $false - $WPFTabNav.Items[3].IsSelected = $false -}) + $WPFTabNav.Items[0].IsSelected = $true + $WPFTabNav.Items[1].IsSelected = $false + $WPFTabNav.Items[2].IsSelected = $false + $WPFTabNav.Items[3].IsSelected = $false + }) $WPFTab2BT.Add_Click({ - $WPFTabNav.Items[0].IsSelected = $false - $WPFTabNav.Items[1].IsSelected = $true - $WPFTabNav.Items[2].IsSelected = $false - $WPFTabNav.Items[3].IsSelected = $false + $WPFTabNav.Items[0].IsSelected = $false + $WPFTabNav.Items[1].IsSelected = $true + $WPFTabNav.Items[2].IsSelected = $false + $WPFTabNav.Items[3].IsSelected = $false }) $WPFTab3BT.Add_Click({ - $WPFTabNav.Items[0].IsSelected = $false - $WPFTabNav.Items[1].IsSelected = $false - $WPFTabNav.Items[2].IsSelected = $true - $WPFTabNav.Items[3].IsSelected = $false + $WPFTabNav.Items[0].IsSelected = $false + $WPFTabNav.Items[1].IsSelected = $false + $WPFTabNav.Items[2].IsSelected = $true + $WPFTabNav.Items[3].IsSelected = $false }) $WPFTab4BT.Add_Click({ - $WPFTabNav.Items[0].IsSelected = $false - $WPFTabNav.Items[1].IsSelected = $false - $WPFTabNav.Items[2].IsSelected = $false - $WPFTabNav.Items[3].IsSelected = $true + $WPFTabNav.Items[0].IsSelected = $false + $WPFTabNav.Items[1].IsSelected = $false + $WPFTabNav.Items[2].IsSelected = $false + $WPFTabNav.Items[3].IsSelected = $true }) #=========================================================================== # Install Tab1 #=========================================================================== $WPFinstall.Add_Click({ - $wingetinstall = New-Object System.Collections.Generic.List[System.Object] - If ( $WPFInstalladobe.IsChecked -eq $true ) { - $wingetinstall.Add("Adobe.Acrobat.Reader.64-bit") - $WPFInstalladobe.IsChecked = $false - } - If ( $WPFInstalladvancedip.IsChecked -eq $true ) { - $wingetinstall.Add("Famatech.AdvancedIPScanner") - $WPFInstalladvancedip.IsChecked = $false - } - If ( $WPFInstallatom.IsChecked -eq $true ) { - $wingetinstall.Add("GitHub.Atom") - $WPFInstallatom.IsChecked = $false - } - If ( $WPFInstallaudacity.IsChecked -eq $true ) { - $wingetinstall.Add("Audacity.Audacity") - $WPFInstallaudacity.IsChecked = $false - } - If ( $WPFInstallautohotkey.IsChecked -eq $true ) { - $wingetinstall.Add("Lexikos.AutoHotkey") - $WPFInstallautohotkey.IsChecked = $false - } - If ( $WPFInstallbrave.IsChecked -eq $true ) { - $wingetinstall.Add("BraveSoftware.BraveBrowser") - $WPFInstallbrave.IsChecked = $false - } - If ( $WPFInstallchrome.IsChecked -eq $true ) { - $wingetinstall.Add("Google.Chrome") - $WPFInstallchrome.IsChecked = $false - } - If ( $WPFInstalldiscord.IsChecked -eq $true ) { - $wingetinstall.Add("Discord.Discord") - $WPFInstalldiscord.IsChecked = $false - } - If ( $WPFInstallesearch.IsChecked -eq $true ) { - $wingetinstall.Add("voidtools.Everything --source winget") - $WPFInstallesearch.IsChecked = $false - } - If ( $WPFInstalletcher.IsChecked -eq $true ) { - $wingetinstall.Add("Balena.Etcher") - $WPFInstalletcher.IsChecked = $false - } - If ( $WPFInstallfirefox.IsChecked -eq $true ) { - $wingetinstall.Add("Mozilla.Firefox") - $WPFInstallfirefox.IsChecked = $false - } - If ( $WPFInstallgimp.IsChecked -eq $true ) { - $wingetinstall.Add("GIMP.GIMP") - $WPFInstallgimp.IsChecked = $false - } - If ( $WPFInstallgithubdesktop.IsChecked -eq $true ) { - $wingetinstall.Add("Git.Git") - $wingetinstall.Add("GitHub.GitHubDesktop") - $WPFInstallgithubdesktop.IsChecked = $false - } - If ( $WPFInstallimageglass.IsChecked -eq $true ) { - $wingetinstall.Add("DuongDieuPhap.ImageGlass") - $WPFInstallimageglass.IsChecked = $false - } - If ( $WPFInstalljava8.IsChecked -eq $true ) { - $wingetinstall.Add("AdoptOpenJDK.OpenJDK.8") - $WPFInstalljava8.IsChecked = $false - } - If ( $WPFInstalljava16.IsChecked -eq $true ) { - $wingetinstall.Add("AdoptOpenJDK.OpenJDK.16") - $WPFInstalljava16.IsChecked = $false - } - If ( $WPFInstalljava18.IsChecked -eq $true ) { - $wingetinstall.Add("Oracle.JDK.18") - $WPFInstalljava18.IsChecked = $false - } - If ( $WPFInstalljetbrains.IsChecked -eq $true ) { - $wingetinstall.Add("JetBrains.Toolbox") - $WPFInstalljetbrains.IsChecked = $false - } - - If ( $WPFInstallmpc.IsChecked -eq $true ) { - $wingetinstall.Add("clsid2.mpc-hc") - $WPFInstallmpc.IsChecked = $false - } - If ( $WPFInstallnodejs.IsChecked -eq $true ) { - $wingetinstall.Add("OpenJS.NodeJS") - $WPFInstallnodejs.IsChecked = $false - } - If ( $WPFInstallnodejslts.IsChecked -eq $true ) { - $wingetinstall.Add("OpenJS.NodeJS.LTS") - $WPFInstallnodejslts.IsChecked = $false - } - If ( $WPFInstallnotepadplus.IsChecked -eq $true ) { - $wingetinstall.Add("Notepad++.Notepad++") - $WPFInstallnotepadplus.IsChecked = $false - } - If ( $WPFInstallpowertoys.IsChecked -eq $true ) { - $wingetinstall.Add("Microsoft.PowerToys") - $WPFInstallpowertoys.IsChecked = $false - } - If ( $WPFInstallputty.IsChecked -eq $true ) { - $wingetinstall.Add("PuTTY.PuTTY") - $WPFInstallputty.IsChecked = $false - } - If ( $WPFInstallpython3.IsChecked -eq $true ) { - $wingetinstall.Add("Python.Python.3") - $WPFInstallpython3.IsChecked = $false - } - If ( $WPFInstallsevenzip.IsChecked -eq $true ) { - $wingetinstall.Add("7zip.7zip") - $WPFInstallsevenzip.IsChecked = $false - } - If ( $WPFInstallsharex.IsChecked -eq $true ) { - $wingetinstall.Add("ShareX.ShareX") - $WPFInstallsharex.IsChecked = $false - } - If ( $WPFInstallsublime.IsChecked -eq $true ) { - $wingetinstall.Add("SublimeHQ.SublimeText.4") - $WPFInstallsublime.IsChecked = $false - } - If ( $WPFInstallsumatra.IsChecked -eq $true ) { - $wingetinstall.Add("SumatraPDF.SumatraPDF") - $WPFInstallsumatra.IsChecked = $false - } - If ( $WPFInstallterminal.IsChecked -eq $true ) { - $wingetinstall.Add("Microsoft.WindowsTerminal") - $WPFInstallterminal.IsChecked = $false - } - If ( $WPFInstallttaskbar.IsChecked -eq $true ) { - $wingetinstall.Add("TranslucentTB.TranslucentTB") - $WPFInstallttaskbar.IsChecked = $false - } - If ( $WPFInstallvlc.IsChecked -eq $true ) { - $wingetinstall.Add("VideoLAN.VLC") - $WPFInstallvlc.IsChecked = $false - } - If ( $WPFInstallvscode.IsChecked -eq $true ) { - $wingetinstall.Add("Git.Git") - $wingetinstall.Add("Microsoft.VisualStudioCode --source winget") - $WPFInstallvscode.IsChecked = $false - } - If ( $WPFInstallvscodium.IsChecked -eq $true ) { - $wingetinstall.Add("Git.Git") - $wingetinstall.Add("VSCodium.VSCodium") - $WPFInstallvscodium.IsChecked = $false - } - If ( $WPFInstallwinscp.IsChecked -eq $true ) { - $wingetinstall.Add("WinSCP.WinSCP") - $WPFInstallputty.IsChecked = $false - } - If ( $WPFInstallanydesk.IsChecked -eq $true ) { - $wingetinstall.Add("AnyDeskSoftwareGmbH.AnyDesk") - $WPFInstallanydesk.IsChecked = $false - } - If ( $WPFInstallbitwarden.IsChecked -eq $true ) { - $wingetinstall.Add("Bitwarden.Bitwarden") - $WPFInstallbitwarden.IsChecked = $false - } - If ( $WPFInstallblender.IsChecked -eq $true ) { - $wingetinstall.Add("BlenderFoundation.Blender") - $WPFInstallblender.IsChecked = $false - } - If ( $WPFInstallchromium.IsChecked -eq $true ) { - $wingetinstall.Add("eloston.ungoogled-chromium") - $WPFInstallchromium.IsChecked = $false - } - If ( $WPFInstallcpuz.IsChecked -eq $true ) { - $wingetinstall.Add("CPUID.CPU-Z") - $WPFInstallcpuz.IsChecked = $false - } - If ( $WPFInstalleartrumpet.IsChecked -eq $true ) { - $wingetinstall.Add("File-New-Project.EarTrumpet") - $WPFInstalleartrumpet.IsChecked = $false - } - If ( $WPFInstallepicgames.IsChecked -eq $true ) { - $wingetinstall.Add("EpicGames.EpicGamesLauncher") - $WPFInstallepicgames.IsChecked = $false - } - If ( $WPFInstallflameshot.IsChecked -eq $true ) { - $wingetinstall.Add("Flameshot.Flameshot") - $WPFInstallflameshot.IsChecked = $false - } - If ( $WPFInstallfoobar.IsChecked -eq $true ) { - $wingetinstall.Add("PeterPawlowski.foobar2000") - $WPFInstallfoobar.IsChecked = $false - } - If ( $WPFInstallgog.IsChecked -eq $true ) { - $wingetinstall.Add("GOG.Galaxy") - $WPFInstallgog.IsChecked = $false - } - If ( $WPFInstallgpuz.IsChecked -eq $true ) { - $wingetinstall.Add("TechPowerUp.GPU-Z") - $WPFInstallgpuz.IsChecked = $false - } - If ( $WPFInstallgreenshot.IsChecked -eq $true ) { - $wingetinstall.Add("Greenshot.Greenshot") - $WPFInstallgreenshot.IsChecked = $false - } - If ( $WPFInstallhandbrake.IsChecked -eq $true ) { - $wingetinstall.Add("HandBrake.HandBrake") - $WPFInstallhandbrake.IsChecked = $false - } - If ( $WPFInstallhexchat.IsChecked -eq $true ) { - $wingetinstall.Add("HexChat.HexChat") - $WPFInstallhexchat.IsChecked = $false - } - If ( $WPFInstallhwinfo.IsChecked -eq $true ) { - $wingetinstall.Add("REALiX.HWiNFO") - $WPFInstallhwinfo.IsChecked = $false - } - If ( $WPFInstallinkscape.IsChecked -eq $true ) { - $wingetinstall.Add("Inkscape.Inkscape") - $WPFInstallinkscape.IsChecked = $false - } - If ( $WPFInstallkeepass.IsChecked -eq $true ) { - $wingetinstall.Add("KeePassXCTeam.KeePassXC") - $WPFInstallkeepass.IsChecked = $false - } - If ( $WPFInstalllibrewolf.IsChecked -eq $true ) { - $wingetinstall.Add("LibreWolf.LibreWolf") - $WPFInstalllibrewolf.IsChecked = $false - } - If ( $WPFInstallmalwarebytes.IsChecked -eq $true ) { - $wingetinstall.Add("Malwarebytes.Malwarebytes") - $WPFInstallmalwarebytes.IsChecked = $false - } - If ( $WPFInstallmatrix.IsChecked -eq $true ) { - $wingetinstall.Add("Element.Element") - $WPFInstallmatrix.IsChecked = $false - } - If ( $WPFInstallmremoteng.IsChecked -eq $true ) { - $wingetinstall.Add("mRemoteNG.mRemoteNG") - $WPFInstallmremoteng.IsChecked = $false - } - If ( $WPFInstallnvclean.IsChecked -eq $true ) { - $wingetinstall.Add("TechPowerUp.NVCleanstall") - $WPFInstallnvclean.IsChecked = $false - } - If ( $WPFInstallobs.IsChecked -eq $true ) { - $wingetinstall.Add("OBSProject.OBSStudio") - $WPFInstallobs.IsChecked = $false - } - If ( $WPFInstallobsidian.IsChecked -eq $true ) { - $wingetinstall.Add("Obsidian.Obsidian") - $WPFInstallobsidian.IsChecked = $false - } - If ( $WPFInstallrevo.IsChecked -eq $true ) { - $wingetinstall.Add("RevoUninstaller.RevoUninstaller") - $WPFInstallrevo.IsChecked = $false - } - If ( $WPFInstallrufus.IsChecked -eq $true ) { - $wingetinstall.Add("Rufus.Rufus") - $WPFInstallrufus.IsChecked = $false - } - If ( $WPFInstallsignal.IsChecked -eq $true ) { - $wingetinstall.Add("OpenWhisperSystems.Signal") - $WPFInstallsignal.IsChecked = $false - } - If ( $WPFInstallskype.IsChecked -eq $true ) { - $wingetinstall.Add("Microsoft.Skype") - $WPFInstallskype.IsChecked = $false - } - If ( $WPFInstallslack.IsChecked -eq $true ) { - $wingetinstall.Add("SlackTechnologies.Slack") - $WPFInstallslack.IsChecked = $false - } - If ( $WPFInstallspotify.IsChecked -eq $true ) { - $wingetinstall.Add("Spotify.Spotify") - $WPFInstallspotify.IsChecked = $false - } - If ( $WPFInstallsteam.IsChecked -eq $true ) { - $wingetinstall.Add("Valve.Steam") - $WPFInstallsteam.IsChecked = $false - } - If ( $WPFInstallteamviewer.IsChecked -eq $true ) { - $wingetinstall.Add("TeamViewer.TeamViewer") - $WPFInstallteamviewer.IsChecked = $false - } - If ( $WPFInstallteams.IsChecked -eq $true ) { - $wingetinstall.Add("Microsoft.Teams") - $WPFInstallteams.IsChecked = $false - } - - If ( $WPFInstalltreesize.IsChecked -eq $true ) { - $wingetinstall.Add("JAMSoftware.TreeSize.Free") - $WPFInstalltreesize.IsChecked = $false - } - If ( $WPFInstallvisualstudio.IsChecked -eq $true ) { - $wingetinstall.Add("Microsoft.VisualStudio.2022.Community") - $WPFInstallvisualstudio.IsChecked = $false - } - If ( $WPFInstallvivaldi.IsChecked -eq $true ) { - $wingetinstall.Add("VivaldiTechnologies.Vivaldi") - $WPFInstallvivaldi.IsChecked = $false - } - If ( $WPFInstallvoicemeeter.IsChecked -eq $true ) { - $wingetinstall.Add("VB-Audio.Voicemeeter") - $WPFInstallvoicemeeter.IsChecked = $false - } - If ( $WPFInstallwindirstat.IsChecked -eq $true ) { - $wingetinstall.Add("WinDirStat.WinDirStat") - $WPFInstallwindirstat.IsChecked = $false - } - If ( $WPFInstallwireshark.IsChecked -eq $true ) { - $wingetinstall.Add("WiresharkFoundation.Wireshark") - $WPFInstallwireshark.IsChecked = $false - } - If ( $WPFInstallzoom.IsChecked -eq $true ) { - $wingetinstall.Add("Zoom.Zoom") - $WPFInstallzoom.IsChecked = $false - } + $wingetinstall = New-Object System.Collections.Generic.List[System.Object] + If ( $WPFInstalladobe.IsChecked -eq $true ) { + $wingetinstall.Add("Adobe.Acrobat.Reader.64-bit") + $WPFInstalladobe.IsChecked = $false + } + If ( $WPFInstalladvancedip.IsChecked -eq $true ) { + $wingetinstall.Add("Famatech.AdvancedIPScanner") + $WPFInstalladvancedip.IsChecked = $false + } + If ( $WPFInstallatom.IsChecked -eq $true ) { + $wingetinstall.Add("GitHub.Atom") + $WPFInstallatom.IsChecked = $false + } + If ( $WPFInstallaudacity.IsChecked -eq $true ) { + $wingetinstall.Add("Audacity.Audacity") + $WPFInstallaudacity.IsChecked = $false + } + If ( $WPFInstallautohotkey.IsChecked -eq $true ) { + $wingetinstall.Add("Lexikos.AutoHotkey") + $WPFInstallautohotkey.IsChecked = $false + } + If ( $WPFInstallbrave.IsChecked -eq $true ) { + $wingetinstall.Add("BraveSoftware.BraveBrowser") + $WPFInstallbrave.IsChecked = $false + } + If ( $WPFInstallchrome.IsChecked -eq $true ) { + $wingetinstall.Add("Google.Chrome") + $WPFInstallchrome.IsChecked = $false + } + If ( $WPFInstalldiscord.IsChecked -eq $true ) { + $wingetinstall.Add("Discord.Discord") + $WPFInstalldiscord.IsChecked = $false + } + If ( $WPFInstallesearch.IsChecked -eq $true ) { + $wingetinstall.Add("voidtools.Everything --source winget") + $WPFInstallesearch.IsChecked = $false + } + If ( $WPFInstalletcher.IsChecked -eq $true ) { + $wingetinstall.Add("Balena.Etcher") + $WPFInstalletcher.IsChecked = $false + } + If ( $WPFInstallfirefox.IsChecked -eq $true ) { + $wingetinstall.Add("Mozilla.Firefox") + $WPFInstallfirefox.IsChecked = $false + } + If ( $WPFInstallgimp.IsChecked -eq $true ) { + $wingetinstall.Add("GIMP.GIMP") + $WPFInstallgimp.IsChecked = $false + } + If ( $WPFInstallgithubdesktop.IsChecked -eq $true ) { + $wingetinstall.Add("Git.Git") + $wingetinstall.Add("GitHub.GitHubDesktop") + $WPFInstallgithubdesktop.IsChecked = $false + } + If ( $WPFInstallimageglass.IsChecked -eq $true ) { + $wingetinstall.Add("DuongDieuPhap.ImageGlass") + $WPFInstallimageglass.IsChecked = $false + } + If ( $WPFInstalljava8.IsChecked -eq $true ) { + $wingetinstall.Add("AdoptOpenJDK.OpenJDK.8") + $WPFInstalljava8.IsChecked = $false + } + If ( $WPFInstalljava16.IsChecked -eq $true ) { + $wingetinstall.Add("AdoptOpenJDK.OpenJDK.16") + $WPFInstalljava16.IsChecked = $false + } + If ( $WPFInstalljava18.IsChecked -eq $true ) { + $wingetinstall.Add("Oracle.JDK.18") + $WPFInstalljava18.IsChecked = $false + } + If ( $WPFInstalljetbrains.IsChecked -eq $true ) { + $wingetinstall.Add("JetBrains.Toolbox") + $WPFInstalljetbrains.IsChecked = $false + } + If ( $WPFInstallmpc.IsChecked -eq $true ) { + $wingetinstall.Add("clsid2.mpc-hc") + $WPFInstallmpc.IsChecked = $false + } + If ( $WPFInstallnodejs.IsChecked -eq $true ) { + $wingetinstall.Add("OpenJS.NodeJS") + $WPFInstallnodejs.IsChecked = $false + } + If ( $WPFInstallnodejslts.IsChecked -eq $true ) { + $wingetinstall.Add("OpenJS.NodeJS.LTS") + $WPFInstallnodejslts.IsChecked = $false + } + If ( $WPFInstallnotepadplus.IsChecked -eq $true ) { + $wingetinstall.Add("Notepad++.Notepad++") + $WPFInstallnotepadplus.IsChecked = $false + } + If ( $WPFInstallpowertoys.IsChecked -eq $true ) { + $wingetinstall.Add("Microsoft.PowerToys") + $WPFInstallpowertoys.IsChecked = $false + } + If ( $WPFInstallputty.IsChecked -eq $true ) { + $wingetinstall.Add("PuTTY.PuTTY") + $WPFInstallputty.IsChecked = $false + } + If ( $WPFInstallpython3.IsChecked -eq $true ) { + $wingetinstall.Add("Python.Python.3") + $WPFInstallpython3.IsChecked = $false + } + If ( $WPFInstallsevenzip.IsChecked -eq $true ) { + $wingetinstall.Add("7zip.7zip") + $WPFInstallsevenzip.IsChecked = $false + } + If ( $WPFInstallsharex.IsChecked -eq $true ) { + $wingetinstall.Add("ShareX.ShareX") + $WPFInstallsharex.IsChecked = $false + } + If ( $WPFInstallsublime.IsChecked -eq $true ) { + $wingetinstall.Add("SublimeHQ.SublimeText.4") + $WPFInstallsublime.IsChecked = $false + } + If ( $WPFInstallsumatra.IsChecked -eq $true ) { + $wingetinstall.Add("SumatraPDF.SumatraPDF") + $WPFInstallsumatra.IsChecked = $false + } + If ( $WPFInstallterminal.IsChecked -eq $true ) { + $wingetinstall.Add("Microsoft.WindowsTerminal") + $WPFInstallterminal.IsChecked = $false + } + If ( $WPFInstallttaskbar.IsChecked -eq $true ) { + $wingetinstall.Add("TranslucentTB.TranslucentTB") + $WPFInstallttaskbar.IsChecked = $false + } + If ( $WPFInstallvlc.IsChecked -eq $true ) { + $wingetinstall.Add("VideoLAN.VLC") + $WPFInstallvlc.IsChecked = $false + } + If ( $WPFInstallvscode.IsChecked -eq $true ) { + $wingetinstall.Add("Git.Git") + $wingetinstall.Add("Microsoft.VisualStudioCode --source winget") + $WPFInstallvscode.IsChecked = $false + } + If ( $WPFInstallvscodium.IsChecked -eq $true ) { + $wingetinstall.Add("Git.Git") + $wingetinstall.Add("VSCodium.VSCodium") + $WPFInstallvscodium.IsChecked = $false + } + If ( $WPFInstallwinscp.IsChecked -eq $true ) { + $wingetinstall.Add("WinSCP.WinSCP") + $WPFInstallputty.IsChecked = $false + } + If ( $WPFInstallanydesk.IsChecked -eq $true ) { + $wingetinstall.Add("AnyDeskSoftwareGmbH.AnyDesk") + $WPFInstallanydesk.IsChecked = $false + } + If ( $WPFInstallbitwarden.IsChecked -eq $true ) { + $wingetinstall.Add("Bitwarden.Bitwarden") + $WPFInstallbitwarden.IsChecked = $false + } + If ( $WPFInstallblender.IsChecked -eq $true ) { + $wingetinstall.Add("BlenderFoundation.Blender") + $WPFInstallblender.IsChecked = $false + } + If ( $WPFInstallchromium.IsChecked -eq $true ) { + $wingetinstall.Add("eloston.ungoogled-chromium") + $WPFInstallchromium.IsChecked = $false + } + If ( $WPFInstallcpuz.IsChecked -eq $true ) { + $wingetinstall.Add("CPUID.CPU-Z") + $WPFInstallcpuz.IsChecked = $false + } + If ( $WPFInstalleartrumpet.IsChecked -eq $true ) { + $wingetinstall.Add("File-New-Project.EarTrumpet") + $WPFInstalleartrumpet.IsChecked = $false + } + If ( $WPFInstallepicgames.IsChecked -eq $true ) { + $wingetinstall.Add("EpicGames.EpicGamesLauncher") + $WPFInstallepicgames.IsChecked = $false + } + If ( $WPFInstallflameshot.IsChecked -eq $true ) { + $wingetinstall.Add("Flameshot.Flameshot") + $WPFInstallflameshot.IsChecked = $false + } + If ( $WPFInstallfoobar.IsChecked -eq $true ) { + $wingetinstall.Add("PeterPawlowski.foobar2000") + $WPFInstallfoobar.IsChecked = $false + } + If ( $WPFInstallgog.IsChecked -eq $true ) { + $wingetinstall.Add("GOG.Galaxy") + $WPFInstallgog.IsChecked = $false + } + If ( $WPFInstallgpuz.IsChecked -eq $true ) { + $wingetinstall.Add("TechPowerUp.GPU-Z") + $WPFInstallgpuz.IsChecked = $false + } + If ( $WPFInstallgreenshot.IsChecked -eq $true ) { + $wingetinstall.Add("Greenshot.Greenshot") + $WPFInstallgreenshot.IsChecked = $false + } + If ( $WPFInstallhandbrake.IsChecked -eq $true ) { + $wingetinstall.Add("HandBrake.HandBrake") + $WPFInstallhandbrake.IsChecked = $false + } + If ( $WPFInstallhexchat.IsChecked -eq $true ) { + $wingetinstall.Add("HexChat.HexChat") + $WPFInstallhexchat.IsChecked = $false + } + If ( $WPFInstallhwinfo.IsChecked -eq $true ) { + $wingetinstall.Add("REALiX.HWiNFO") + $WPFInstallhwinfo.IsChecked = $false + } + If ( $WPFInstallinkscape.IsChecked -eq $true ) { + $wingetinstall.Add("Inkscape.Inkscape") + $WPFInstallinkscape.IsChecked = $false + } + If ( $WPFInstallkeepass.IsChecked -eq $true ) { + $wingetinstall.Add("KeePassXCTeam.KeePassXC") + $WPFInstallkeepass.IsChecked = $false + } + If ( $WPFInstalllibrewolf.IsChecked -eq $true ) { + $wingetinstall.Add("LibreWolf.LibreWolf") + $WPFInstalllibrewolf.IsChecked = $false + } + If ( $WPFInstallmalwarebytes.IsChecked -eq $true ) { + $wingetinstall.Add("Malwarebytes.Malwarebytes") + $WPFInstallmalwarebytes.IsChecked = $false + } + If ( $WPFInstallmatrix.IsChecked -eq $true ) { + $wingetinstall.Add("Element.Element") + $WPFInstallmatrix.IsChecked = $false + } + If ( $WPFInstallmremoteng.IsChecked -eq $true ) { + $wingetinstall.Add("mRemoteNG.mRemoteNG") + $WPFInstallmremoteng.IsChecked = $false + } + If ( $WPFInstallnvclean.IsChecked -eq $true ) { + $wingetinstall.Add("TechPowerUp.NVCleanstall") + $WPFInstallnvclean.IsChecked = $false + } + If ( $WPFInstallobs.IsChecked -eq $true ) { + $wingetinstall.Add("OBSProject.OBSStudio") + $WPFInstallobs.IsChecked = $false + } + If ( $WPFInstallobsidian.IsChecked -eq $true ) { + $wingetinstall.Add("Obsidian.Obsidian") + $WPFInstallobsidian.IsChecked = $false + } + If ( $WPFInstallrevo.IsChecked -eq $true ) { + $wingetinstall.Add("RevoUninstaller.RevoUninstaller") + $WPFInstallrevo.IsChecked = $false + } + If ( $WPFInstallrufus.IsChecked -eq $true ) { + $wingetinstall.Add("Rufus.Rufus") + $WPFInstallrufus.IsChecked = $false + } + If ( $WPFInstallsignal.IsChecked -eq $true ) { + $wingetinstall.Add("OpenWhisperSystems.Signal") + $WPFInstallsignal.IsChecked = $false + } + If ( $WPFInstallskype.IsChecked -eq $true ) { + $wingetinstall.Add("Microsoft.Skype") + $WPFInstallskype.IsChecked = $false + } + If ( $WPFInstallslack.IsChecked -eq $true ) { + $wingetinstall.Add("SlackTechnologies.Slack") + $WPFInstallslack.IsChecked = $false + } + If ( $WPFInstallspotify.IsChecked -eq $true ) { + $wingetinstall.Add("Spotify.Spotify") + $WPFInstallspotify.IsChecked = $false + } + If ( $WPFInstallsteam.IsChecked -eq $true ) { + $wingetinstall.Add("Valve.Steam") + $WPFInstallsteam.IsChecked = $false + } + If ( $WPFInstallteamviewer.IsChecked -eq $true ) { + $wingetinstall.Add("TeamViewer.TeamViewer") + $WPFInstallteamviewer.IsChecked = $false + } + If ( $WPFInstallteams.IsChecked -eq $true ) { + $wingetinstall.Add("Microsoft.Teams") + $WPFInstallteams.IsChecked = $false + } + If ( $WPFInstalltreesize.IsChecked -eq $true ) { + $wingetinstall.Add("JAMSoftware.TreeSize.Free") + $WPFInstalltreesize.IsChecked = $false + } + If ( $WPFInstallvisualstudio.IsChecked -eq $true ) { + $wingetinstall.Add("Microsoft.VisualStudio.2022.Community") + $WPFInstallvisualstudio.IsChecked = $false + } + If ( $WPFInstallvivaldi.IsChecked -eq $true ) { + $wingetinstall.Add("VivaldiTechnologies.Vivaldi") + $WPFInstallvivaldi.IsChecked = $false + } + If ( $WPFInstallvoicemeeter.IsChecked -eq $true ) { + $wingetinstall.Add("VB-Audio.Voicemeeter") + $WPFInstallvoicemeeter.IsChecked = $false + } + If ( $WPFInstallwindirstat.IsChecked -eq $true ) { + $wingetinstall.Add("WinDirStat.WinDirStat") + $WPFInstallwindirstat.IsChecked = $false + } + If ( $WPFInstallwireshark.IsChecked -eq $true ) { + $wingetinstall.Add("WiresharkFoundation.Wireshark") + $WPFInstallwireshark.IsChecked = $false + } + If ( $WPFInstallzoom.IsChecked -eq $true ) { + $wingetinstall.Add("Zoom.Zoom") + $WPFInstallzoom.IsChecked = $false + } - # Install all winget programs in new window - $wingetinstall.ToArray() - # Define Output variable - $wingetResult = New-Object System.Collections.Generic.List[System.Object] - foreach ( $node in $wingetinstall ) - { - Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -Wait -WindowStyle Maximized - $wingetResult.Add("$node`n") - } - $wingetResult.ToArray() - $wingetResult | % { $_ } | Out-Host + # Install all winget programs in new window + $wingetinstall.ToArray() + # Define Output variable + $wingetResult = New-Object System.Collections.Generic.List[System.Object] + foreach ( $node in $wingetinstall ) { + Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -Wait -WindowStyle Maximized + $wingetResult.Add("$node`n") + } + $wingetResult.ToArray() + $wingetResult | % { $_ } | Out-Host - # Popup after finished - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "Installed Programs " - $Messageboxbody = ($wingetResult) - $MessageIcon = [System.Windows.MessageBoxImage]::Information + # Popup after finished + $ButtonType = [System.Windows.MessageBoxButton]::OK + $MessageboxTitle = "Installed Programs " + $Messageboxbody = ($wingetResult) + $MessageIcon = [System.Windows.MessageBoxImage]::Information - [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon) + [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) -}) + }) $WPFInstallUpgrade.Add_Click({ - Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget upgrade --all | Out-Host" -Wait -WindowStyle Maximized - - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "Upgraded All Programs " - $Messageboxbody = ("Done") - $MessageIcon = [System.Windows.MessageBoxImage]::Information + Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget upgrade --all | Out-Host" -Wait -WindowStyle Maximized - [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon) -}) + $ButtonType = [System.Windows.MessageBoxButton]::OK + $MessageboxTitle = "Upgraded All Programs " + $Messageboxbody = ("Done") + $MessageIcon = [System.Windows.MessageBoxImage]::Information + + [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) + }) #=========================================================================== # Tab 2 - Tweaks Buttons #=========================================================================== $WPFdesktop.Add_Click({ - $WPFEssTweaksAH.IsChecked = $true - $WPFEssTweaksDeBloat.IsChecked = $false - $WPFEssTweaksDVR.IsChecked = $true - $WPFEssTweaksHiber.IsChecked = $true - $WPFEssTweaksHome.IsChecked = $true - $WPFEssTweaksLoc.IsChecked = $true - $WPFEssTweaksOO.IsChecked = $true - $WPFEssTweaksRP.IsChecked = $true - $WPFEssTweaksServices.IsChecked = $true - $WPFEssTweaksStorage.IsChecked = $true - $WPFEssTweaksTele.IsChecked = $true - $WPFEssTweaksWifi.IsChecked = $true - $WPFMiscTweaksPower.IsChecked = $true - $WPFMiscTweaksNum.IsChecked = $true - $WPFMiscTweaksLapPower.IsChecked = $false - $WPFMiscTweaksLapNum.IsChecked = $false -}) + $WPFEssTweaksAH.IsChecked = $true + $WPFEssTweaksDeBloat.IsChecked = $false + $WPFEssTweaksDVR.IsChecked = $true + $WPFEssTweaksHiber.IsChecked = $true + $WPFEssTweaksHome.IsChecked = $true + $WPFEssTweaksLoc.IsChecked = $true + $WPFEssTweaksOO.IsChecked = $true + $WPFEssTweaksRP.IsChecked = $true + $WPFEssTweaksServices.IsChecked = $true + $WPFEssTweaksStorage.IsChecked = $true + $WPFEssTweaksTele.IsChecked = $true + $WPFEssTweaksWifi.IsChecked = $true + $WPFMiscTweaksPower.IsChecked = $true + $WPFMiscTweaksNum.IsChecked = $true + $WPFMiscTweaksLapPower.IsChecked = $false + $WPFMiscTweaksLapNum.IsChecked = $false + }) $WPFlaptop.Add_Click({ - $WPFEssTweaksAH.IsChecked = $true - $WPFEssTweaksDeBloat.IsChecked = $false - $WPFEssTweaksDVR.IsChecked = $true - $WPFEssTweaksHiber.IsChecked = $false - $WPFEssTweaksHome.IsChecked = $true - $WPFEssTweaksLoc.IsChecked = $true - $WPFEssTweaksOO.IsChecked = $true - $WPFEssTweaksRP.IsChecked = $true - $WPFEssTweaksServices.IsChecked = $true - $WPFEssTweaksStorage.IsChecked = $true - $WPFEssTweaksTele.IsChecked = $true - $WPFEssTweaksWifi.IsChecked = $true - $WPFMiscTweaksLapPower.IsChecked = $true - $WPFMiscTweaksLapNum.IsChecked = $true - $WPFMiscTweaksPower.IsChecked = $false - $WPFMiscTweaksNum.IsChecked = $false -}) + $WPFEssTweaksAH.IsChecked = $true + $WPFEssTweaksDeBloat.IsChecked = $false + $WPFEssTweaksDVR.IsChecked = $true + $WPFEssTweaksHiber.IsChecked = $false + $WPFEssTweaksHome.IsChecked = $true + $WPFEssTweaksLoc.IsChecked = $true + $WPFEssTweaksOO.IsChecked = $true + $WPFEssTweaksRP.IsChecked = $true + $WPFEssTweaksServices.IsChecked = $true + $WPFEssTweaksStorage.IsChecked = $true + $WPFEssTweaksTele.IsChecked = $true + $WPFEssTweaksWifi.IsChecked = $true + $WPFMiscTweaksLapPower.IsChecked = $true + $WPFMiscTweaksLapNum.IsChecked = $true + $WPFMiscTweaksPower.IsChecked = $false + $WPFMiscTweaksNum.IsChecked = $false + }) $WPFminimal.Add_Click({ - $WPFEssTweaksAH.IsChecked = $false - $WPFEssTweaksDeBloat.IsChecked = $false - $WPFEssTweaksDVR.IsChecked = $false - $WPFEssTweaksHiber.IsChecked = $false - $WPFEssTweaksHome.IsChecked = $true - $WPFEssTweaksLoc.IsChecked = $false - $WPFEssTweaksOO.IsChecked = $true - $WPFEssTweaksRP.IsChecked = $true - $WPFEssTweaksServices.IsChecked = $true - $WPFEssTweaksStorage.IsChecked = $false - $WPFEssTweaksTele.IsChecked = $true - $WPFEssTweaksWifi.IsChecked = $false - $WPFMiscTweaksPower.IsChecked = $false - $WPFMiscTweaksNum.IsChecked = $false - $WPFMiscTweaksLapPower.IsChecked = $false - $WPFMiscTweaksLapNum.IsChecked = $false -}) + $WPFEssTweaksAH.IsChecked = $false + $WPFEssTweaksDeBloat.IsChecked = $false + $WPFEssTweaksDVR.IsChecked = $false + $WPFEssTweaksHiber.IsChecked = $false + $WPFEssTweaksHome.IsChecked = $true + $WPFEssTweaksLoc.IsChecked = $false + $WPFEssTweaksOO.IsChecked = $true + $WPFEssTweaksRP.IsChecked = $true + $WPFEssTweaksServices.IsChecked = $true + $WPFEssTweaksStorage.IsChecked = $false + $WPFEssTweaksTele.IsChecked = $true + $WPFEssTweaksWifi.IsChecked = $false + $WPFMiscTweaksPower.IsChecked = $false + $WPFMiscTweaksNum.IsChecked = $false + $WPFMiscTweaksLapPower.IsChecked = $false + $WPFMiscTweaksLapNum.IsChecked = $false + }) $WPFtweaksbutton.Add_Click({ - If ( $WPFEssTweaksAH.IsChecked -eq $true ) { - Write-Host "Disabling Activity History..." - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableActivityFeed" -Type DWord -Value 0 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "PublishUserActivities" -Type DWord -Value 0 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "UploadUserActivities" -Type DWord -Value 0 - $WPFEssTweaksAH.IsChecked = $false - } - - If ( $WPFEssTweaksDVR.IsChecked -eq $true ) { - Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_DXGIHonorFSEWindowsCompatible" -Type Hex -Value 00000000 - Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_HonorUserFSEBehaviorMode" -Type Hex -Value 00000000 - Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_EFSEFeatureFlags" -Type Hex -Value 00000000 - Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_Enabled" -Type DWord -Value 00000000 - $WPFEssTweaksDVR.IsChecked = $false - } - If ( $WPFEssTweaksHiber.IsChecked -eq $true ) { - Write-Host "Disabling Hibernation..." - Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernteEnabled" -Type Dword -Value 0 - If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings")) { - New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" | Out-Null + If ( $WPFEssTweaksAH.IsChecked -eq $true ) { + Write-Host "Disabling Activity History..." + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableActivityFeed" -Type DWord -Value 0 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "PublishUserActivities" -Type DWord -Value 0 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "UploadUserActivities" -Type DWord -Value 0 + $WPFEssTweaksAH.IsChecked = $false } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowHibernateOption" -Type Dword -Value 0 - $WPFEssTweaksHiber.IsChecked = $false - } - If ( $WPFEssTweaksHome.IsChecked -eq $true ) { - Write-Host "Allowing Home Groups services..." - Stop-Service "HomeGroupListener" -WarningAction SilentlyContinue - Set-Service "HomeGroupListener" -StartupType Manual - Stop-Service "HomeGroupProvider" -WarningAction SilentlyContinue - Set-Service "HomeGroupProvider" -StartupType Manual - $WPFEssTweaksHome.IsChecked = $false - } - If ( $WPFEssTweaksLoc.IsChecked -eq $true ) { - Write-Host "Disabling Location Tracking..." - If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location")) { - New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force | Out-Null + If ( $WPFEssTweaksDVR.IsChecked -eq $true ) { + Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_DXGIHonorFSEWindowsCompatible" -Type Hex -Value 00000000 + Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_HonorUserFSEBehaviorMode" -Type Hex -Value 00000000 + Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_EFSEFeatureFlags" -Type Hex -Value 00000000 + Set-ItemProperty -Path "HKLM:\System\GameConfigStore" -Name "GameDVR_Enabled" -Type DWord -Value 00000000 + $WPFEssTweaksDVR.IsChecked = $false } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Deny" - 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 - Write-Host "Disabling automatic Maps updates..." - Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 0 - $WPFEssTweaksLoc.IsChecked = $false - } - If ( $WPFEssTweaksOO.IsChecked -eq $true ) { - Write-Host "Running O&O Shutup with Recommended Settings" - Import-Module BitsTransfer - Start-BitsTransfer -Source "https://raw.githubusercontent.com/ChrisTitusTech/win10script/master/ooshutup10.cfg" -Destination ooshutup10.cfg - Start-BitsTransfer -Source "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -Destination OOSU10.exe - ./OOSU10.exe ooshutup10.cfg /quiet - $WPFEssTweaksOO.IsChecked = $false - } - If ( $WPFEssTweaksRP.IsChecked -eq $true ) { - Write-Host "Creating Restore Point incase something bad happens" - Enable-ComputerRestore -Drive "C:\" - Checkpoint-Computer -Description "RestorePoint1" -RestorePointType "MODIFY_SETTINGS" - $WPFEssTweaksRP.IsChecked = $false - } - If ( $WPFEssTweaksServices.IsChecked -eq $true ) { - # Service tweaks to Manual + If ( $WPFEssTweaksHiber.IsChecked -eq $true ) { + Write-Host "Disabling Hibernation..." + Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernteEnabled" -Type Dword -Value 0 + If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings")) { + New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" | Out-Null + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowHibernateOption" -Type Dword -Value 0 + $WPFEssTweaksHiber.IsChecked = $false - $services = @( - "diagnosticshub.standardcollector.service" # Microsoft (R) Diagnostics Hub Standard Collector Service - "DiagTrack" # Diagnostics Tracking Service - "DPS" - "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 - "XboxGipSvc" #Disables Xbox Accessory Management Service - "ndu" # Windows Network Data Usage Monitor - "WerSvc" #disables windows error reporting - #"Spooler" #Disables your printer - "Fax" #Disables fax - "fhsvc" #Disables fax histroy - "gupdate" #Disables google update - "gupdatem" #Disable another google update - "stisvc" #Disables Windows Image Acquisition (WIA) - "AJRouter" #Disables (needed for AllJoyn Router Service) - "MSDTC" # Disables Distributed Transaction Coordinator - "WpcMonSvc" #Disables Parental Controls - "PhoneSvc" #Disables Phone Service(Manages the telephony state on the device) - "PrintNotify" #Disables Windows printer notifications and extentions - "PcaSvc" #Disables Program Compatibility Assistant Service - "WPDBusEnum" #Disables Portable Device Enumerator Service - #"LicenseManager" #Disable LicenseManager(Windows store may not work properly) - "seclogon" #Disables Secondary Logon(disables other credentials only password will work) - "SysMain" #Disables sysmain - "lmhosts" #Disables TCP/IP NetBIOS Helper - "wisvc" #Disables Windows Insider program(Windows Insider will not work) - "FontCache" #Disables Windows font cache - "RetailDemo" #Disables RetailDemo whic is often used when showing your device - "ALG" # Disables Application Layer Gateway Service(Provides support for 3rd party protocol plug-ins for Internet Connection Sharing) - #"BFE" #Disables Base Filtering Engine (BFE) (is a service that manages firewall and Internet Protocol security) - #"BrokerInfrastructure" #Disables Windows infrastructure service that controls which background tasks can run on the system. - "SCardSvr" #Disables Windows smart card - "EntAppSvc" #Disables enterprise application management. - "BthAvctpSvc" #Disables AVCTP service (if you use Bluetooth Audio Device or Wireless Headphones. then don't disable this) - #"FrameServer" #Disables Windows Camera Frame Server(this allows multiple clients to access video frames from camera devices.) - "Browser" #Disables computer browser - "BthAvctpSvc" #AVCTP service (This is Audio Video Control Transport Protocol service.) - #"BDESVC" #Disables bitlocker - "iphlpsvc" #Disables ipv6 but most websites don't use ipv6 they use ipv4 - "edgeupdate" # Disables one of edge update service - "MicrosoftEdgeElevationService" # Disables one of edge service - "edgeupdatem" # disbales another one of update service (disables edgeupdatem) - "SEMgrSvc" #Disables Payments and NFC/SE Manager (Manages payments and Near Field Communication (NFC) based secure elements) - #"PNRPsvc" # Disables peer Name Resolution Protocol ( some peer-to-peer and collaborative applications, such as Remote Assistance, may not function, Discord will still work) - #"p2psvc" # Disbales Peer Name Resolution Protocol(nables multi-party communication using Peer-to-Peer Grouping. If disabled, some applications, such as HomeGroup, may not function. Discord will still work) - #"p2pimsvc" # Disables Peer Networking Identity Manager (Peer-to-Peer Grouping services may not function, and some applications, such as HomeGroup and Remote Assistance, may not function correctly.Discord will still work) - "PerfHost" #Disables remote users and 64-bit processes to query performance . - "BcastDVRUserService_48486de" #Disables GameDVR and Broadcast is used for Game Recordings and Live Broadcasts - "CaptureService_48486de" #Disables ptional screen capture functionality for applications that call the Windows.Graphics.Capture API. - "cbdhsvc_48486de" #Disables cbdhsvc_48486de (clipboard service it disables) - #"BluetoothUserService_48486de" #disbales BluetoothUserService_48486de (The Bluetooth user service supports proper functionality of Bluetooth features relevant to each user session.) - "WpnService" #Disables WpnService (Push Notifications may not work ) - #"StorSvc" #Disables StorSvc (usb external hard drive will not be reconised by windows) - "RtkBtManServ" #Disables Realtek Bluetooth Device Manager Service - "QWAVE" #Disables Quality Windows Audio Video Experience (audio and video might sound worse) - #Hp services - "HPAppHelperCap" - "HPDiagsCap" - "HPNetworkCap" - "HPSysInfoCap" - "HpTouchpointAnalyticsService" - #hyper-v services - "HvHost" - "vmickvpexchange" - "vmicguestinterface" - "vmicshutdown" - "vmicheartbeat" - "vmicvmsession" - "vmicrdv" - "vmictimesync" - # Services which cannot be disabled - #"WdNisSvc" - ) + } + If ( $WPFEssTweaksHome.IsChecked -eq $true ) { + Write-Host "Allowing Home Groups services..." + Stop-Service "HomeGroupListener" -WarningAction SilentlyContinue + Set-Service "HomeGroupListener" -StartupType Manual + Stop-Service "HomeGroupProvider" -WarningAction SilentlyContinue + Set-Service "HomeGroupProvider" -StartupType Manual + $WPFEssTweaksHome.IsChecked = $false + } + If ( $WPFEssTweaksLoc.IsChecked -eq $true ) { + Write-Host "Disabling Location Tracking..." + If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location")) { + New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force | Out-Null + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Deny" + 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 + Write-Host "Disabling automatic Maps updates..." + Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 0 + $WPFEssTweaksLoc.IsChecked = $false + } + If ( $WPFEssTweaksOO.IsChecked -eq $true ) { + Write-Host "Running O&O Shutup with Recommended Settings" + Import-Module BitsTransfer + Start-BitsTransfer -Source "https://raw.githubusercontent.com/ChrisTitusTech/win10script/master/ooshutup10.cfg" -Destination ooshutup10.cfg + Start-BitsTransfer -Source "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -Destination OOSU10.exe + ./OOSU10.exe ooshutup10.cfg /quiet + $WPFEssTweaksOO.IsChecked = $false + } + If ( $WPFEssTweaksRP.IsChecked -eq $true ) { + Write-Host "Creating Restore Point incase something bad happens" + Enable-ComputerRestore -Drive "C:\" + Checkpoint-Computer -Description "RestorePoint1" -RestorePointType "MODIFY_SETTINGS" + $WPFEssTweaksRP.IsChecked = $false + } + If ( $WPFEssTweaksServices.IsChecked -eq $true ) { + # Service tweaks to Manual + + $services = @( + "diagnosticshub.standardcollector.service" # Microsoft (R) Diagnostics Hub Standard Collector Service + "DiagTrack" # Diagnostics Tracking Service + "DPS" + "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 + "XboxGipSvc" #Disables Xbox Accessory Management Service + "ndu" # Windows Network Data Usage Monitor + "WerSvc" #disables windows error reporting + #"Spooler" #Disables your printer + "Fax" #Disables fax + "fhsvc" #Disables fax histroy + "gupdate" #Disables google update + "gupdatem" #Disable another google update + "stisvc" #Disables Windows Image Acquisition (WIA) + "AJRouter" #Disables (needed for AllJoyn Router Service) + "MSDTC" # Disables Distributed Transaction Coordinator + "WpcMonSvc" #Disables Parental Controls + "PhoneSvc" #Disables Phone Service(Manages the telephony state on the device) + "PrintNotify" #Disables Windows printer notifications and extentions + "PcaSvc" #Disables Program Compatibility Assistant Service + "WPDBusEnum" #Disables Portable Device Enumerator Service + #"LicenseManager" #Disable LicenseManager(Windows store may not work properly) + "seclogon" #Disables Secondary Logon(disables other credentials only password will work) + "SysMain" #Disables sysmain + "lmhosts" #Disables TCP/IP NetBIOS Helper + "wisvc" #Disables Windows Insider program(Windows Insider will not work) + "FontCache" #Disables Windows font cache + "RetailDemo" #Disables RetailDemo whic is often used when showing your device + "ALG" # Disables Application Layer Gateway Service(Provides support for 3rd party protocol plug-ins for Internet Connection Sharing) + #"BFE" #Disables Base Filtering Engine (BFE) (is a service that manages firewall and Internet Protocol security) + #"BrokerInfrastructure" #Disables Windows infrastructure service that controls which background tasks can run on the system. + "SCardSvr" #Disables Windows smart card + "EntAppSvc" #Disables enterprise application management. + "BthAvctpSvc" #Disables AVCTP service (if you use Bluetooth Audio Device or Wireless Headphones. then don't disable this) + #"FrameServer" #Disables Windows Camera Frame Server(this allows multiple clients to access video frames from camera devices.) + "Browser" #Disables computer browser + "BthAvctpSvc" #AVCTP service (This is Audio Video Control Transport Protocol service.) + #"BDESVC" #Disables bitlocker + "iphlpsvc" #Disables ipv6 but most websites don't use ipv6 they use ipv4 + "edgeupdate" # Disables one of edge update service + "MicrosoftEdgeElevationService" # Disables one of edge service + "edgeupdatem" # disbales another one of update service (disables edgeupdatem) + "SEMgrSvc" #Disables Payments and NFC/SE Manager (Manages payments and Near Field Communication (NFC) based secure elements) + #"PNRPsvc" # Disables peer Name Resolution Protocol ( some peer-to-peer and collaborative applications, such as Remote Assistance, may not function, Discord will still work) + #"p2psvc" # Disbales Peer Name Resolution Protocol(nables multi-party communication using Peer-to-Peer Grouping. If disabled, some applications, such as HomeGroup, may not function. Discord will still work) + #"p2pimsvc" # Disables Peer Networking Identity Manager (Peer-to-Peer Grouping services may not function, and some applications, such as HomeGroup and Remote Assistance, may not function correctly.Discord will still work) + "PerfHost" #Disables remote users and 64-bit processes to query performance . + "BcastDVRUserService_48486de" #Disables GameDVR and Broadcast is used for Game Recordings and Live Broadcasts + "CaptureService_48486de" #Disables ptional screen capture functionality for applications that call the Windows.Graphics.Capture API. + "cbdhsvc_48486de" #Disables cbdhsvc_48486de (clipboard service it disables) + #"BluetoothUserService_48486de" #disbales BluetoothUserService_48486de (The Bluetooth user service supports proper functionality of Bluetooth features relevant to each user session.) + "WpnService" #Disables WpnService (Push Notifications may not work ) + #"StorSvc" #Disables StorSvc (usb external hard drive will not be reconised by windows) + "RtkBtManServ" #Disables Realtek Bluetooth Device Manager Service + "QWAVE" #Disables Quality Windows Audio Video Experience (audio and video might sound worse) + #Hp services + "HPAppHelperCap" + "HPDiagsCap" + "HPNetworkCap" + "HPSysInfoCap" + "HpTouchpointAnalyticsService" + #hyper-v services + "HvHost" + "vmickvpexchange" + "vmicguestinterface" + "vmicshutdown" + "vmicheartbeat" + "vmicvmsession" + "vmicrdv" + "vmictimesync" + # Services which cannot be disabled + #"WdNisSvc" + ) - foreach ($service in $services) { - # -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist + foreach ($service in $services) { + # -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist - Write-Host "Setting $service StartupType to Manual" - Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Manual + Write-Host "Setting $service StartupType to Manual" + Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Manual + } + $WPFEssTweaksServices.IsChecked = $false } - $WPFEssTweaksServices.IsChecked = $false - } - If ( $WPFEssTweaksStorage.IsChecked -eq $true ) { - Write-Host "Disabling Storage Sense..." - Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Recurse -ErrorAction SilentlyContinue - $WPFEssTweaksStorage.IsChecked = $false - } - If ( $WPFEssTweaksTele.IsChecked -eq $true ) { - 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 - Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" | Out-Null - Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\ProgramDataUpdater" | Out-Null - Disable-ScheduledTask -TaskName "Microsoft\Windows\Autochk\Proxy" | Out-Null - Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\Consolidator" | Out-Null - Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" | Out-Null - Disable-ScheduledTask -TaskName "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" | Out-Null - Write-Host "Disabling Application suggestions..." - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 0 - If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { - New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null + If ( $WPFEssTweaksStorage.IsChecked -eq $true ) { + Write-Host "Disabling Storage Sense..." + Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Recurse -ErrorAction SilentlyContinue + $WPFEssTweaksStorage.IsChecked = $false } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Type DWord -Value 1 - 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 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -Type DWord -Value 1 - Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClient" -ErrorAction SilentlyContinue | Out-Null - Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" -ErrorAction SilentlyContinue | Out-Null - Write-Host "Disabling Tailored Experiences..." - If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { - New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null - } - Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -Type DWord -Value 1 - Write-Host "Disabling Advertising ID..." - If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo")) { - New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" | Out-Null - } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -Type DWord -Value 1 - Write-Host "Disabling Error reporting..." - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 1 - Disable-ScheduledTask -TaskName "Microsoft\Windows\Windows Error Reporting\QueueReporting" | Out-Null - Write-Host "Restricting Windows Update P2P only to local network..." - If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config")) { - New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" | Out-Null - } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode" -Type DWord -Value 1 - Write-Host "Stopping and disabling Diagnostics Tracking Service..." - Stop-Service "DiagTrack" -WarningAction SilentlyContinue - Set-Service "DiagTrack" -StartupType Disabled - Write-Host "Stopping and disabling WAP Push Service..." - Stop-Service "dmwappushservice" -WarningAction SilentlyContinue - Set-Service "dmwappushservice" -StartupType Disabled - Write-Host "Enabling F8 boot menu options..." - bcdedit /set `{current`} bootmenupolicy Legacy | Out-Null - Write-Host "Disabling Remote Assistance..." - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 0 - Write-Host "Stopping and disabling Superfetch service..." - Stop-Service "SysMain" -WarningAction SilentlyContinue - Set-Service "SysMain" -StartupType Disabled + If ( $WPFEssTweaksTele.IsChecked -eq $true ) { + 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 + Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" | Out-Null + Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\ProgramDataUpdater" | Out-Null + Disable-ScheduledTask -TaskName "Microsoft\Windows\Autochk\Proxy" | Out-Null + Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\Consolidator" | Out-Null + Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" | Out-Null + Disable-ScheduledTask -TaskName "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" | Out-Null + Write-Host "Disabling Application suggestions..." + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 0 + If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { + New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Type DWord -Value 1 + 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 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -Type DWord -Value 1 + Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClient" -ErrorAction SilentlyContinue | Out-Null + Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" -ErrorAction SilentlyContinue | Out-Null + Write-Host "Disabling Tailored Experiences..." + If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { + New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null + } + Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -Type DWord -Value 1 + Write-Host "Disabling Advertising ID..." + If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo")) { + New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" | Out-Null + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -Type DWord -Value 1 + Write-Host "Disabling Error reporting..." + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 1 + Disable-ScheduledTask -TaskName "Microsoft\Windows\Windows Error Reporting\QueueReporting" | Out-Null + Write-Host "Restricting Windows Update P2P only to local network..." + If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config")) { + New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" | Out-Null + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode" -Type DWord -Value 1 + Write-Host "Stopping and disabling Diagnostics Tracking Service..." + Stop-Service "DiagTrack" -WarningAction SilentlyContinue + Set-Service "DiagTrack" -StartupType Disabled + Write-Host "Stopping and disabling WAP Push Service..." + Stop-Service "dmwappushservice" -WarningAction SilentlyContinue + Set-Service "dmwappushservice" -StartupType Disabled + Write-Host "Enabling F8 boot menu options..." + bcdedit /set `{current`} bootmenupolicy Legacy | Out-Null + Write-Host "Disabling Remote Assistance..." + Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 0 + Write-Host "Stopping and disabling Superfetch service..." + Stop-Service "SysMain" -WarningAction SilentlyContinue + Set-Service "SysMain" -StartupType Disabled - # Task Manager Details - If ((get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name CurrentBuild).CurrentBuild -lt 22557) { - Write-Host "Showing task manager details..." - $taskmgr = Start-Process -WindowStyle Hidden -FilePath taskmgr.exe -PassThru - Do { - Start-Sleep -Milliseconds 100 - $preferences = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -ErrorAction SilentlyContinue - } Until ($preferences) - Stop-Process $taskmgr - $preferences.Preferences[28] = 0 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -Type Binary -Value $preferences.Preferences - } else {Write-Host "Task Manager patch not run in builds 22557+ due to bug"} + # Task Manager Details + If ((get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name CurrentBuild).CurrentBuild -lt 22557) { + Write-Host "Showing task manager details..." + $taskmgr = Start-Process -WindowStyle Hidden -FilePath taskmgr.exe -PassThru + Do { + Start-Sleep -Milliseconds 100 + $preferences = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -ErrorAction SilentlyContinue + } Until ($preferences) + Stop-Process $taskmgr + $preferences.Preferences[28] = 0 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -Type Binary -Value $preferences.Preferences + } + else { Write-Host "Task Manager patch not run in builds 22557+ due to bug" } - Write-Host "Showing file operations details..." - If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager")) { - New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" | Out-Null - } - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -Type DWord -Value 1 - Write-Host "Hiding Task View button..." - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 0 - Write-Host "Hiding People icon..." - If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People")) { - New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" | Out-Null - } - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -Type DWord -Value 0 + Write-Host "Showing file operations details..." + If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager")) { + New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" | Out-Null + } + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -Type DWord -Value 1 + Write-Host "Hiding Task View button..." + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 0 + Write-Host "Hiding People icon..." + If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People")) { + New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" | Out-Null + } + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -Type DWord -Value 0 - 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 + 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 - Write-Host "Hiding 3D Objects icon from This PC..." - Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Recurse -ErrorAction SilentlyContinue + Write-Host "Hiding 3D Objects icon from This PC..." + Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Recurse -ErrorAction SilentlyContinue - ## Performance Tweaks and More Telemetry + ## Performance Tweaks and More Telemetry Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" -Name "SearchOrderConfig" -Type DWord -Value 00000000 Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile" -Name "SystemResponsiveness" -Type DWord -Value 0000000a Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile" -Name "NetworkThrottlingIndex" -Type DWord -Value 0000000a @@ -772,719 +772,719 @@ $WPFtweaksbutton.Add_Click({ New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null } - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "HideSCAMeetNow" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "HideSCAMeetNow" -Type DWord -Value 1 - 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" + 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 + + Write-Host "Stopping and disabling Diagnostics Tracking Service..." + Stop-Service "DiagTrack" + Set-Service "DiagTrack" -StartupType Disabled + $WPFEssTweaksTele.IsChecked = $false } - icacls $autoLoggerDir /deny SYSTEM:`(OI`)`(CI`)F | Out-Null - - Write-Host "Stopping and disabling Diagnostics Tracking Service..." - Stop-Service "DiagTrack" - Set-Service "DiagTrack" -StartupType Disabled - $WPFEssTweaksTele.IsChecked = $false - } - If ( $WPFEssTweaksWifi.IsChecked -eq $true ) { - 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 + If ( $WPFEssTweaksWifi.IsChecked -eq $true ) { + 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 + $WPFEssTweaksWifi.IsChecked = $false } - 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 - $WPFEssTweaksWifi.IsChecked = $false - } - If ( $WPFMiscTweaksLapPower.IsChecked -eq $true ) { - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling" -Name "PowerThrottlingOff" -Type DWord -Value 00000000 - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0000001 - $WPFMiscTweaksLapPower.IsChecked = $false - } - If ( $WPFMiscTweaksLapNum.IsChecked -eq $true ) { - Write-Host "Disabling NumLock after startup..." - If (!(Test-Path "HKU:")) { - New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null + If ( $WPFMiscTweaksLapPower.IsChecked -eq $true ) { + Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling" -Name "PowerThrottlingOff" -Type DWord -Value 00000000 + Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0000001 + $WPFMiscTweaksLapPower.IsChecked = $false } - Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 0 - $WPFMiscTweaksLapNum.IsChecked = $false + If ( $WPFMiscTweaksLapNum.IsChecked -eq $true ) { + 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 0 + $WPFMiscTweaksLapNum.IsChecked = $false } - If ( $WPFMiscTweaksPower.IsChecked -eq $true ) { - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling" -Name "PowerThrottlingOff" -Type DWord -Value 00000001 - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0000000 - $WPFMiscTweaksPower.IsChecked = $false - } - If ( $WPFMiscTweaksNum.IsChecked -eq $true ) { - Write-Host "Enabling NumLock after startup..." - If (!(Test-Path "HKU:")) { - New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null + If ( $WPFMiscTweaksPower.IsChecked -eq $true ) { + Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling" -Name "PowerThrottlingOff" -Type DWord -Value 00000001 + Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0000000 + $WPFMiscTweaksPower.IsChecked = $false + } + If ( $WPFMiscTweaksNum.IsChecked -eq $true ) { + 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 2 + $WPFMiscTweaksNum.IsChecked = $false + } + If ( $WPFMiscTweaksExt.IsChecked -eq $true ) { + Write-Host "Showing known file extensions..." + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 0 + $WPFMiscTweaksExt.IsChecked = $false + } + If ( $WPFMiscTweaksUTC.IsChecked -eq $true ) { + Write-Host "Setting BIOS time to UTC..." + Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -Type DWord -Value 1 + $WPFMiscTweaksUTC.IsChecked } - Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 2 - $WPFMiscTweaksNum.IsChecked = $false - } - If ( $WPFMiscTweaksExt.IsChecked -eq $true ) { - Write-Host "Showing known file extensions..." - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 0 - $WPFMiscTweaksExt.IsChecked = $false - } - If ( $WPFMiscTweaksUTC.IsChecked -eq $true ) { - Write-Host "Setting BIOS time to UTC..." - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -Type DWord -Value 1 - $WPFMiscTweaksUTC.IsChecked - } - If ( $WPFMiscTweaksDisplay.IsChecked -eq $true ) { - Write-Host "Adjusting visual effects for performance..." - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 0 - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 200 - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](144,18,3,128,16,0,0,0)) - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 0 - Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 0 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 0 - Write-Host "Adjusted visual effects for performance" - $WPFMiscTweaksDisplay.IsChecked = false - } + If ( $WPFMiscTweaksDisplay.IsChecked -eq $true ) { + Write-Host "Adjusting visual effects for performance..." + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 0 + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 200 + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](144, 18, 3, 128, 16, 0, 0, 0)) + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 0 + Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 0 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 0 + Write-Host "Adjusted visual effects for performance" + $WPFMiscTweaksDisplay.IsChecked = false + } - If ( $WPFEssTweaksDeBloat.IsChecked -eq $true ) { - $Bloatware = @( - #Unnecessary Windows 10 AppX Apps - "Microsoft.3DBuilder" - "Microsoft.Microsoft3DViewer" - "Microsoft.AppConnector" - "Microsoft.BingFinance" - "Microsoft.BingNews" - "Microsoft.BingSports" - "Microsoft.BingTranslator" - "Microsoft.BingWeather" - "Microsoft.BingFoodAndDrink" - "Microsoft.BingHealthAndFitness" - "Microsoft.BingTravel" - "Microsoft.MinecraftUWP" - "Microsoft.GamingServices" - # "Microsoft.WindowsReadingList" - "Microsoft.GetHelp" - "Microsoft.Getstarted" - "Microsoft.Messaging" - "Microsoft.Microsoft3DViewer" - "Microsoft.MicrosoftSolitaireCollection" - "Microsoft.NetworkSpeedTest" - "Microsoft.News" - "Microsoft.Office.Lens" - "Microsoft.Office.Sway" - "Microsoft.Office.OneNote" - "Microsoft.OneConnect" - "Microsoft.People" - "Microsoft.Print3D" - "Microsoft.SkypeApp" - "Microsoft.Wallet" - "Microsoft.Whiteboard" - "Microsoft.WindowsAlarms" - "microsoft.windowscommunicationsapps" - "Microsoft.WindowsFeedbackHub" - "Microsoft.WindowsMaps" - "Microsoft.WindowsPhone" - "Microsoft.WindowsSoundRecorder" - "Microsoft.XboxApp" - "Microsoft.ConnectivityStore" - "Microsoft.CommsPhone" - "Microsoft.ScreenSketch" - "Microsoft.Xbox.TCUI" - "Microsoft.XboxGameOverlay" - "Microsoft.XboxGameCallableUI" - "Microsoft.XboxSpeechToTextOverlay" - "Microsoft.MixedReality.Portal" - "Microsoft.XboxIdentityProvider" - "Microsoft.ZuneMusic" - "Microsoft.ZuneVideo" - #"Microsoft.YourPhone" - "Microsoft.Getstarted" - "Microsoft.MicrosoftOfficeHub" + If ( $WPFEssTweaksDeBloat.IsChecked -eq $true ) { + $Bloatware = @( + #Unnecessary Windows 10 AppX Apps + "Microsoft.3DBuilder" + "Microsoft.Microsoft3DViewer" + "Microsoft.AppConnector" + "Microsoft.BingFinance" + "Microsoft.BingNews" + "Microsoft.BingSports" + "Microsoft.BingTranslator" + "Microsoft.BingWeather" + "Microsoft.BingFoodAndDrink" + "Microsoft.BingHealthAndFitness" + "Microsoft.BingTravel" + "Microsoft.MinecraftUWP" + "Microsoft.GamingServices" + # "Microsoft.WindowsReadingList" + "Microsoft.GetHelp" + "Microsoft.Getstarted" + "Microsoft.Messaging" + "Microsoft.Microsoft3DViewer" + "Microsoft.MicrosoftSolitaireCollection" + "Microsoft.NetworkSpeedTest" + "Microsoft.News" + "Microsoft.Office.Lens" + "Microsoft.Office.Sway" + "Microsoft.Office.OneNote" + "Microsoft.OneConnect" + "Microsoft.People" + "Microsoft.Print3D" + "Microsoft.SkypeApp" + "Microsoft.Wallet" + "Microsoft.Whiteboard" + "Microsoft.WindowsAlarms" + "microsoft.windowscommunicationsapps" + "Microsoft.WindowsFeedbackHub" + "Microsoft.WindowsMaps" + "Microsoft.WindowsPhone" + "Microsoft.WindowsSoundRecorder" + "Microsoft.XboxApp" + "Microsoft.ConnectivityStore" + "Microsoft.CommsPhone" + "Microsoft.ScreenSketch" + "Microsoft.Xbox.TCUI" + "Microsoft.XboxGameOverlay" + "Microsoft.XboxGameCallableUI" + "Microsoft.XboxSpeechToTextOverlay" + "Microsoft.MixedReality.Portal" + "Microsoft.XboxIdentityProvider" + "Microsoft.ZuneMusic" + "Microsoft.ZuneVideo" + #"Microsoft.YourPhone" + "Microsoft.Getstarted" + "Microsoft.MicrosoftOfficeHub" - #Sponsored Windows 10 AppX Apps - #Add sponsored/featured apps to remove in the "*AppName*" format - "*EclipseManager*" - "*ActiproSoftwareLLC*" - "*AdobeSystemsIncorporated.AdobePhotoshopExpress*" - "*Duolingo-LearnLanguagesforFree*" - "*PandoraMediaInc*" - "*CandyCrush*" - "*BubbleWitch3Saga*" - "*Wunderlist*" - "*Flipboard*" - "*Twitter*" - "*Facebook*" - "*Royal Revolt*" - "*Sway*" - "*Speed Test*" - "*Dolby*" - "*Viber*" - "*ACGMediaPlayer*" - "*Netflix*" - "*OneCalendar*" - "*LinkedInforWindows*" - "*HiddenCityMysteryofShadows*" - "*Hulu*" - "*HiddenCity*" - "*AdobePhotoshopExpress*" - "*HotspotShieldFreeVPN*" + #Sponsored Windows 10 AppX Apps + #Add sponsored/featured apps to remove in the "*AppName*" format + "*EclipseManager*" + "*ActiproSoftwareLLC*" + "*AdobeSystemsIncorporated.AdobePhotoshopExpress*" + "*Duolingo-LearnLanguagesforFree*" + "*PandoraMediaInc*" + "*CandyCrush*" + "*BubbleWitch3Saga*" + "*Wunderlist*" + "*Flipboard*" + "*Twitter*" + "*Facebook*" + "*Royal Revolt*" + "*Sway*" + "*Speed Test*" + "*Dolby*" + "*Viber*" + "*ACGMediaPlayer*" + "*Netflix*" + "*OneCalendar*" + "*LinkedInforWindows*" + "*HiddenCityMysteryofShadows*" + "*Hulu*" + "*HiddenCity*" + "*AdobePhotoshopExpress*" + "*HotspotShieldFreeVPN*" - #Optional: Typically not removed but you can if you need to for some reason - "*Microsoft.Advertising.Xaml*" - #"*Microsoft.MSPaint*" - #"*Microsoft.MicrosoftStickyNotes*" - #"*Microsoft.Windows.Photos*" - #"*Microsoft.WindowsCalculator*" - #"*Microsoft.WindowsStore*" - ) + #Optional: Typically not removed but you can if you need to for some reason + "*Microsoft.Advertising.Xaml*" + #"*Microsoft.MSPaint*" + #"*Microsoft.MicrosoftStickyNotes*" + #"*Microsoft.Windows.Photos*" + #"*Microsoft.WindowsCalculator*" + #"*Microsoft.WindowsStore*" + ) - Write-Host "Removing Bloatware" + Write-Host "Removing Bloatware" - foreach ($Bloat in $Bloatware) { - Get-AppxPackage -Name $Bloat| Remove-AppxPackage - Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $Bloat | Remove-AppxProvisionedPackage -Online - Write-Host "Trying to remove $Bloat." - } + foreach ($Bloat in $Bloatware) { + Get-AppxPackage -Name $Bloat | Remove-AppxPackage + Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $Bloat | Remove-AppxProvisionedPackage -Online + Write-Host "Trying to remove $Bloat." + } - Write-Host "Finished Removing Bloatware Apps" - $WPFEssTweaksDeBloat.IsChecked = $false - } - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "Tweaks are Finished " - $Messageboxbody = ("Done") - $MessageIcon = [System.Windows.MessageBoxImage]::Information + Write-Host "Finished Removing Bloatware Apps" + $WPFEssTweaksDeBloat.IsChecked = $false + } + $ButtonType = [System.Windows.MessageBoxButton]::OK + $MessageboxTitle = "Tweaks are Finished " + $Messageboxbody = ("Done") + $MessageIcon = [System.Windows.MessageBoxImage]::Information - [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon) -}) + [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) + }) #=========================================================================== # Undo All #=========================================================================== $WPFundoall.Add_Click({ - Write-Host "Creating Restore Point incase something bad happens" - Enable-ComputerRestore -Drive "C:\" - Checkpoint-Computer -Description "RestorePoint1" -RestorePointType "MODIFY_SETTINGS" + Write-Host "Creating Restore Point incase something bad happens" + Enable-ComputerRestore -Drive "C:\" + Checkpoint-Computer -Description "RestorePoint1" -RestorePointType "MODIFY_SETTINGS" - Write-Host "Enabling Telemetry..." - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 1 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 1 - 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 - Write-Host "Enabling Application suggestions..." - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 1 - If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { - Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Recurse -ErrorAction SilentlyContinue - } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Type DWord -Value 0 - Write-Host "Enabling Activity History..." - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableActivityFeed" -Type DWord -Value 1 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "PublishUserActivities" -Type DWord -Value 1 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "UploadUserActivities" -Type DWord -Value 1 - Write-Host "Enable Location Tracking..." - If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location")) { - Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Recurse -ErrorAction SilentlyContinue - } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Allow" - 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 - Write-Host "Enabling automatic Maps updates..." - Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 1 - Write-Host "Enabling Feedback..." - If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules")) { - Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Recurse -ErrorAction SilentlyContinue - } - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -Type DWord -Value 0 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -Type DWord -Value 0 - Write-Host "Enabling Tailored Experiences..." - If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { - Remove-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Recurse -ErrorAction SilentlyContinue - } - Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -Type DWord -Value 0 - Write-Host "Disabling Advertising ID..." - If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo")) { - Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Recurse -ErrorAction SilentlyContinue - } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -Type DWord -Value 0 - Write-Host "Allow Error reporting..." - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 0 - Write-Host "Allowing Diagnostics Tracking Service..." - Stop-Service "DiagTrack" -WarningAction SilentlyContinue - Set-Service "DiagTrack" -StartupType Manual - Write-Host "Allowing WAP Push Service..." - Stop-Service "dmwappushservice" -WarningAction SilentlyContinue - Set-Service "dmwappushservice" -StartupType Manual - Write-Host "Allowing Home Groups services..." - Stop-Service "HomeGroupListener" -WarningAction SilentlyContinue - Set-Service "HomeGroupListener" -StartupType Manual - Stop-Service "HomeGroupProvider" -WarningAction SilentlyContinue - Set-Service "HomeGroupProvider" -StartupType Manual - Write-Host "Enabling Storage Sense..." - New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" | Out-Null - Write-Host "Allowing Superfetch service..." - Stop-Service "SysMain" -WarningAction SilentlyContinue - Set-Service "SysMain" -StartupType Manual - Write-Host "Setting BIOS time to Local Time instead of UTC..." - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -Type DWord -Value 0 - Write-Host "Enabling Hibernation..." - Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernteEnabled" -Type Dword -Value 1 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowHibernateOption" -Type Dword -Value 1 - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -ErrorAction SilentlyContinue + Write-Host "Enabling Telemetry..." + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 1 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 1 + 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 + Write-Host "Enabling Application suggestions..." + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 1 + If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { + Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Recurse -ErrorAction SilentlyContinue + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Type DWord -Value 0 + Write-Host "Enabling Activity History..." + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableActivityFeed" -Type DWord -Value 1 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "PublishUserActivities" -Type DWord -Value 1 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "UploadUserActivities" -Type DWord -Value 1 + Write-Host "Enable Location Tracking..." + If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location")) { + Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Recurse -ErrorAction SilentlyContinue + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Allow" + 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 + Write-Host "Enabling automatic Maps updates..." + Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 1 + Write-Host "Enabling Feedback..." + If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules")) { + Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Recurse -ErrorAction SilentlyContinue + } + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -Type DWord -Value 0 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -Type DWord -Value 0 + Write-Host "Enabling Tailored Experiences..." + If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { + Remove-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Recurse -ErrorAction SilentlyContinue + } + Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -Type DWord -Value 0 + Write-Host "Disabling Advertising ID..." + If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo")) { + Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Recurse -ErrorAction SilentlyContinue + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -Type DWord -Value 0 + Write-Host "Allow Error reporting..." + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 0 + Write-Host "Allowing Diagnostics Tracking Service..." + Stop-Service "DiagTrack" -WarningAction SilentlyContinue + Set-Service "DiagTrack" -StartupType Manual + Write-Host "Allowing WAP Push Service..." + Stop-Service "dmwappushservice" -WarningAction SilentlyContinue + Set-Service "dmwappushservice" -StartupType Manual + Write-Host "Allowing Home Groups services..." + Stop-Service "HomeGroupListener" -WarningAction SilentlyContinue + Set-Service "HomeGroupListener" -StartupType Manual + Stop-Service "HomeGroupProvider" -WarningAction SilentlyContinue + Set-Service "HomeGroupProvider" -StartupType Manual + Write-Host "Enabling Storage Sense..." + New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" | Out-Null + Write-Host "Allowing Superfetch service..." + Stop-Service "SysMain" -WarningAction SilentlyContinue + Set-Service "SysMain" -StartupType Manual + Write-Host "Setting BIOS time to Local Time instead of UTC..." + Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -Type DWord -Value 0 + Write-Host "Enabling Hibernation..." + Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernteEnabled" -Type Dword -Value 1 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowHibernateOption" -Type Dword -Value 1 + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -ErrorAction SilentlyContinue - Write-Host "Hiding file operations details..." - If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager")) { - Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Recurse -ErrorAction SilentlyContinue - } - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -Type DWord -Value 0 - Write-Host "Showing Task View button..." - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -Type DWord -Value 1 + Write-Host "Hiding file operations details..." + If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager")) { + Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Recurse -ErrorAction SilentlyContinue + } + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -Type DWord -Value 0 + Write-Host "Showing Task View button..." + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -Type DWord -Value 1 - Write-Host "Changing default Explorer view to Quick Access..." - Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1 + Write-Host "Changing default Explorer view to Quick Access..." + Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1 - Write-Host "Unrestricting AutoLogger directory" - $autoLoggerDir = "$env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger" - icacls $autoLoggerDir /grant:r SYSTEM:`(OI`)`(CI`)F | Out-Null + Write-Host "Unrestricting AutoLogger directory" + $autoLoggerDir = "$env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger" + icacls $autoLoggerDir /grant:r SYSTEM:`(OI`)`(CI`)F | Out-Null - Write-Host "Enabling and starting Diagnostics Tracking Service" - Set-Service "DiagTrack" -StartupType Automatic - Start-Service "DiagTrack" + Write-Host "Enabling and starting Diagnostics Tracking Service" + Set-Service "DiagTrack" -StartupType Automatic + Start-Service "DiagTrack" - Write-Host "Hiding known file extensions" - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 1 + Write-Host "Hiding known file extensions" + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 1 - Write-Host "Reset Local Group Policies to Stock Defaults" - # cmd /c secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose - cmd /c RD /S /Q "%WinDir%\System32\GroupPolicyUsers" - cmd /c RD /S /Q "%WinDir%\System32\GroupPolicy" - cmd /c gpupdate /force - # Considered using Invoke-GPUpdate but requires module most people won't have installed + Write-Host "Reset Local Group Policies to Stock Defaults" + # cmd /c secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose + cmd /c RD /S /Q "%WinDir%\System32\GroupPolicyUsers" + cmd /c RD /S /Q "%WinDir%\System32\GroupPolicy" + cmd /c gpupdate /force + # Considered using Invoke-GPUpdate but requires module most people won't have installed - Write-Output "Adjusting visual effects for appearance..." - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 1 - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 400 - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](158,30,7,128,18,0,0,0)) - Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 1 - Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 1 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3 - Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 1 + Write-Output "Adjusting visual effects for appearance..." + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 1 + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 400 + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](158, 30, 7, 128, 18, 0, 0, 0)) + Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 1 + Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 1 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 1 - Write-Host "Restoring Clipboard History..." - Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Clipboard" -Name "EnableClipboardHistory" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "AllowClipboardHistory" -ErrorAction SilentlyContinue - Write-Host "Done - Reverted to Stock Settings" + Write-Host "Restoring Clipboard History..." + Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Clipboard" -Name "EnableClipboardHistory" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "AllowClipboardHistory" -ErrorAction SilentlyContinue + Write-Host "Done - Reverted to Stock Settings" - Write-Host "Essential Undo Completed" + Write-Host "Essential Undo Completed" - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "Undo All" - $Messageboxbody = ("Done") - $MessageIcon = [System.Windows.MessageBoxImage]::Information + $ButtonType = [System.Windows.MessageBoxButton]::OK + $MessageboxTitle = "Undo All" + $Messageboxbody = ("Done") + $MessageIcon = [System.Windows.MessageBoxImage]::Information - [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon) -}) + [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) + }) #=========================================================================== # Tab 3 - Config Buttons #=========================================================================== $WPFFeatureInstall.Add_Click({ - If ( $WPFFeaturesdotnet.IsChecked -eq $true ) { - Enable-WindowsOptionalFeature -Online -FeatureName "NetFx4-AdvSrvs" -All - Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All - } - If ( $WPFFeatureshyperv.IsChecked -eq $true ) { - Enable-WindowsOptionalFeature -Online -FeatureName "HypervisorPlatform" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Tools-All" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-PowerShell" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Hypervisor" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Services" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-Clients" -All - cmd /c bcdedit /set hypervisorschedulertype classic - Write-Host "HyperV is now installed and configured. Please Reboot before using." - } - If ( $WPFFeatureslegacymedia.IsChecked -eq $true ) { - Enable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -All - Enable-WindowsOptionalFeature -Online -FeatureName "MediaPlayback" -All - Enable-WindowsOptionalFeature -Online -FeatureName "DirectPlay" -All - Enable-WindowsOptionalFeature -Online -FeatureName "LegacyComponents" -All - } - If ( $WPFFeaturewsl.IsChecked -eq $true ) { - Enable-WindowsOptionalFeature -Online -FeatureName "VirtualMachinePlatform" -All - Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -All - Write-Host "WSL is now installed and configured. Please Reboot before using." - } - If ( $WPFFeaturenfs.IsChecked -eq $true ) { - Enable-WindowsOptionalFeature -Online -FeatureName "ServicesForNFS-ClientOnly" -All - Enable-WindowsOptionalFeature -Online -FeatureName "ClientForNFS-Infrastructure" -All - Enable-WindowsOptionalFeature -Online -FeatureName "NFS-Administration" -All - nfsadmin client stop - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousUID" -Type DWord -Value 0 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousGID" -Type DWord -Value 0 - nfsadmin client start - nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i - Write-Host "NFS is now setup for user based NFS mounts" - } - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "All features are now installed " - $Messageboxbody = ("Done") - $MessageIcon = [System.Windows.MessageBoxImage]::Information + If ( $WPFFeaturesdotnet.IsChecked -eq $true ) { + Enable-WindowsOptionalFeature -Online -FeatureName "NetFx4-AdvSrvs" -All + Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All + } + If ( $WPFFeatureshyperv.IsChecked -eq $true ) { + Enable-WindowsOptionalFeature -Online -FeatureName "HypervisorPlatform" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Tools-All" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-PowerShell" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Hypervisor" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Services" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-Clients" -All + cmd /c bcdedit /set hypervisorschedulertype classic + Write-Host "HyperV is now installed and configured. Please Reboot before using." + } + If ( $WPFFeatureslegacymedia.IsChecked -eq $true ) { + Enable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -All + Enable-WindowsOptionalFeature -Online -FeatureName "MediaPlayback" -All + Enable-WindowsOptionalFeature -Online -FeatureName "DirectPlay" -All + Enable-WindowsOptionalFeature -Online -FeatureName "LegacyComponents" -All + } + If ( $WPFFeaturewsl.IsChecked -eq $true ) { + Enable-WindowsOptionalFeature -Online -FeatureName "VirtualMachinePlatform" -All + Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -All + Write-Host "WSL is now installed and configured. Please Reboot before using." + } + If ( $WPFFeaturenfs.IsChecked -eq $true ) { + Enable-WindowsOptionalFeature -Online -FeatureName "ServicesForNFS-ClientOnly" -All + Enable-WindowsOptionalFeature -Online -FeatureName "ClientForNFS-Infrastructure" -All + Enable-WindowsOptionalFeature -Online -FeatureName "NFS-Administration" -All + nfsadmin client stop + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousUID" -Type DWord -Value 0 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousGID" -Type DWord -Value 0 + nfsadmin client start + nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i + Write-Host "NFS is now setup for user based NFS mounts" + } + $ButtonType = [System.Windows.MessageBoxButton]::OK + $MessageboxTitle = "All features are now installed " + $Messageboxbody = ("Done") + $MessageIcon = [System.Windows.MessageBoxImage]::Information - [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon) -}) + [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) + }) $WPFPanelcontrol.Add_Click({ - cmd /c control -}) + cmd /c control + }) $WPFPanelnetwork.Add_Click({ -cmd /c ncpa.cpl -}) + cmd /c ncpa.cpl + }) $WPFPanelpower.Add_Click({ -cmd /c powercfg.cpl -}) + cmd /c powercfg.cpl + }) $WPFPanelsound.Add_Click({ -cmd /c mmsys.cpl -}) + cmd /c mmsys.cpl + }) $WPFPanelsystem.Add_Click({ -cmd /c sysdm.cpl -}) + cmd /c sysdm.cpl + }) $WPFPaneluser.Add_Click({ -cmd /c "control userpasswords2" -}) + cmd /c "control userpasswords2" + }) #=========================================================================== # Tab 4 - Updates Buttons #=========================================================================== $WPFUpdatesdefault.Add_Click({ -# Source: https://github.com/rgl/windows-vagrant/blob/master/disable-windows-updates.ps1 reversed! - Set-StrictMode -Version Latest -$ProgressPreference = 'SilentlyContinue' -$ErrorActionPreference = 'Stop' -trap { - Write-Host - Write-Host "ERROR: $_" - Write-Host (($_.ScriptStackTrace -split '\r?\n') -replace '^(.*)$','ERROR: $1') - Write-Host (($_.Exception.ToString() -split '\r?\n') -replace '^(.*)$','ERROR EXCEPTION: $1') - Write-Host - Write-Host 'Sleeping for 60m to give you time to look around the virtual machine before self-destruction...' - Start-Sleep -Seconds (60*60) - Exit 1 -} - -# disable automatic updates. -# XXX this does not seem to work anymore. -# see How to configure automatic updates by using Group Policy or registry settings -# at https://support.microsoft.com/en-us/help/328010 -function New-Directory($path) { - $p, $components = $path -split '[\\/]' - $components | ForEach-Object { - $p = "$p\$_" - if (!(Test-Path $p)) { - New-Item -ItemType Directory $p | Out-Null + # Source: https://github.com/rgl/windows-vagrant/blob/master/disable-windows-updates.ps1 reversed! + Set-StrictMode -Version Latest + $ProgressPreference = 'SilentlyContinue' + $ErrorActionPreference = 'Stop' + trap { + Write-Host + Write-Host "ERROR: $_" + Write-Host (($_.ScriptStackTrace -split '\r?\n') -replace '^(.*)$', 'ERROR: $1') + Write-Host (($_.Exception.ToString() -split '\r?\n') -replace '^(.*)$', 'ERROR EXCEPTION: $1') + Write-Host + Write-Host 'Sleeping for 60m to give you time to look around the virtual machine before self-destruction...' + Start-Sleep -Seconds (60 * 60) + Exit 1 } - } - $null -} -$auPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -New-Directory $auPath -# set NoAutoUpdate. -# 0: Automatic Updates is enabled (default). -# 1: Automatic Updates is disabled. -New-ItemProperty ` - -Path $auPath ` - -Name NoAutoUpdate ` - -Value 0 ` - -PropertyType DWORD ` - -Force ` - | Out-Null -# set AUOptions. -# 1: Keep my computer up to date has been disabled in Automatic Updates. -# 2: Notify of download and installation. -# 3: Automatically download and notify of installation. -# 4: Automatically download and scheduled installation. -New-ItemProperty ` - -Path $auPath ` - -Name AUOptions ` - -Value 3 ` - -PropertyType DWORD ` - -Force ` - | Out-Null -# disable Windows Update Delivery Optimization. -# NB this applies to Windows 10. -# 0: Disabled -# 1: PCs on my local network -# 3: PCs on my local network, and PCs on the Internet -$deliveryOptimizationPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config' -if (Test-Path $deliveryOptimizationPath) { - New-ItemProperty ` - -Path $deliveryOptimizationPath ` - -Name DODownloadMode ` - -Value 0 ` - -PropertyType DWORD ` - -Force ` + # disable automatic updates. + # XXX this does not seem to work anymore. + # see How to configure automatic updates by using Group Policy or registry settings + # at https://support.microsoft.com/en-us/help/328010 + function New-Directory($path) { + $p, $components = $path -split '[\\/]' + $components | ForEach-Object { + $p = "$p\$_" + if (!(Test-Path $p)) { + New-Item -ItemType Directory $p | Out-Null + } + } + $null + } + $auPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' + New-Directory $auPath + # set NoAutoUpdate. + # 0: Automatic Updates is enabled (default). + # 1: Automatic Updates is disabled. + New-ItemProperty ` + -Path $auPath ` + -Name NoAutoUpdate ` + -Value 0 ` + -PropertyType DWORD ` + -Force ` + | Out-Null + # set AUOptions. + # 1: Keep my computer up to date has been disabled in Automatic Updates. + # 2: Notify of download and installation. + # 3: Automatically download and notify of installation. + # 4: Automatically download and scheduled installation. + New-ItemProperty ` + -Path $auPath ` + -Name AUOptions ` + -Value 3 ` + -PropertyType DWORD ` + -Force ` | Out-Null -} -# Service tweaks for Windows Update -$services = @( - "BITS" - "wuauserv" -) + # disable Windows Update Delivery Optimization. + # NB this applies to Windows 10. + # 0: Disabled + # 1: PCs on my local network + # 3: PCs on my local network, and PCs on the Internet + $deliveryOptimizationPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config' + if (Test-Path $deliveryOptimizationPath) { + New-ItemProperty ` + -Path $deliveryOptimizationPath ` + -Name DODownloadMode ` + -Value 0 ` + -PropertyType DWORD ` + -Force ` + | Out-Null + } + # Service tweaks for Windows Update -foreach ($service in $services) { - # -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist + $services = @( + "BITS" + "wuauserv" + ) - Write-Host "Setting $service StartupType to Automatic" - Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Automatic -} - Write-Host "Enabling driver offering through Windows Update..." - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue - Write-Host "Enabling Windows Update automatic restart..." - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue - Write-Host "Enabled driver offering through Windows Update" - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays " -ErrorAction SilentlyContinue - - ### Reset Windows Update Script - reregister dlls, services, and remove registry entires. - Write-Host "1. Stopping Windows Update Services..." - Stop-Service -Name BITS - Stop-Service -Name wuauserv - Stop-Service -Name appidsvc - Stop-Service -Name cryptsvc - - Write-Host "2. Remove QMGR Data file..." - Remove-Item "$env:allusersprofile\Application Data\Microsoft\Network\Downloader\qmgr*.dat" -ErrorAction SilentlyContinue - - Write-Host "3. Renaming the Software Distribution and CatRoot Folder..." - Rename-Item $env:systemroot\SoftwareDistribution SoftwareDistribution.bak -ErrorAction SilentlyContinue - Rename-Item $env:systemroot\System32\Catroot2 catroot2.bak -ErrorAction SilentlyContinue - - Write-Host "4. Removing old Windows Update log..." - Remove-Item $env:systemroot\WindowsUpdate.log -ErrorAction SilentlyContinue - - Write-Host "5. Resetting the Windows Update Services to defualt settings..." - "sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" - "sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" - - Set-Location $env:systemroot\system32 - - Write-Host "6. Registering some DLLs..." - regsvr32.exe /s atl.dll - regsvr32.exe /s urlmon.dll - regsvr32.exe /s mshtml.dll - regsvr32.exe /s shdocvw.dll - regsvr32.exe /s browseui.dll - regsvr32.exe /s jscript.dll - regsvr32.exe /s vbscript.dll - regsvr32.exe /s scrrun.dll - regsvr32.exe /s msxml.dll - regsvr32.exe /s msxml3.dll - regsvr32.exe /s msxml6.dll - regsvr32.exe /s actxprxy.dll - regsvr32.exe /s softpub.dll - regsvr32.exe /s wintrust.dll - regsvr32.exe /s dssenh.dll - regsvr32.exe /s rsaenh.dll - regsvr32.exe /s gpkcsp.dll - regsvr32.exe /s sccbase.dll - regsvr32.exe /s slbcsp.dll - regsvr32.exe /s cryptdlg.dll - regsvr32.exe /s oleaut32.dll - regsvr32.exe /s ole32.dll - regsvr32.exe /s shell32.dll - regsvr32.exe /s initpki.dll - regsvr32.exe /s wuapi.dll - regsvr32.exe /s wuaueng.dll - regsvr32.exe /s wuaueng1.dll - regsvr32.exe /s wucltui.dll - regsvr32.exe /s wups.dll - regsvr32.exe /s wups2.dll - regsvr32.exe /s wuweb.dll - regsvr32.exe /s qmgr.dll - regsvr32.exe /s qmgrprxy.dll - regsvr32.exe /s wucltux.dll - regsvr32.exe /s muweb.dll - regsvr32.exe /s wuwebv.dll - - Write-Host "7) Removing WSUS client settings..." - REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f - REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f - REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f - - Write-Host "8) Resetting the WinSock..." - netsh winsock reset - netsh winhttp reset proxy - - Write-Host "9) Delete all BITS jobs..." - Get-BitsTransfer | Remove-BitsTransfer - - Write-Host "10) Attempting to install the Windows Update Agent..." - if($arch -eq 64){ - wusa Windows8-RT-KB2937636-x64 /quiet - } - else{ - wusa Windows8-RT-KB2937636-x86 /quiet - } - - Write-Host "11) Starting Windows Update Services..." - Start-Service -Name BITS - Start-Service -Name wuauserv - Start-Service -Name appidsvc - Start-Service -Name cryptsvc - - Write-Host "12) Forcing discovery..." - wuauclt /resetauthorization /detectnow - - Write-Host "Process complete. Please reboot your computer." + foreach ($service in $services) { + # -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "Reset Windows Update " - $Messageboxbody = ("Stock settings loaded.`n Please reboot your computer") - $MessageIcon = [System.Windows.MessageBoxImage]::Information + Write-Host "Setting $service StartupType to Automatic" + Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Automatic + } + Write-Host "Enabling driver offering through Windows Update..." + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue + Write-Host "Enabling Windows Update automatic restart..." + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue + Write-Host "Enabled driver offering through Windows Update" + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays " -ErrorAction SilentlyContinue + + ### Reset Windows Update Script - reregister dlls, services, and remove registry entires. + Write-Host "1. Stopping Windows Update Services..." + Stop-Service -Name BITS + Stop-Service -Name wuauserv + Stop-Service -Name appidsvc + Stop-Service -Name cryptsvc + + Write-Host "2. Remove QMGR Data file..." + Remove-Item "$env:allusersprofile\Application Data\Microsoft\Network\Downloader\qmgr*.dat" -ErrorAction SilentlyContinue + + Write-Host "3. Renaming the Software Distribution and CatRoot Folder..." + Rename-Item $env:systemroot\SoftwareDistribution SoftwareDistribution.bak -ErrorAction SilentlyContinue + Rename-Item $env:systemroot\System32\Catroot2 catroot2.bak -ErrorAction SilentlyContinue + + Write-Host "4. Removing old Windows Update log..." + Remove-Item $env:systemroot\WindowsUpdate.log -ErrorAction SilentlyContinue + + Write-Host "5. Resetting the Windows Update Services to defualt settings..." + "sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" + "sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" + + Set-Location $env:systemroot\system32 + + Write-Host "6. Registering some DLLs..." + regsvr32.exe /s atl.dll + regsvr32.exe /s urlmon.dll + regsvr32.exe /s mshtml.dll + regsvr32.exe /s shdocvw.dll + regsvr32.exe /s browseui.dll + regsvr32.exe /s jscript.dll + regsvr32.exe /s vbscript.dll + regsvr32.exe /s scrrun.dll + regsvr32.exe /s msxml.dll + regsvr32.exe /s msxml3.dll + regsvr32.exe /s msxml6.dll + regsvr32.exe /s actxprxy.dll + regsvr32.exe /s softpub.dll + regsvr32.exe /s wintrust.dll + regsvr32.exe /s dssenh.dll + regsvr32.exe /s rsaenh.dll + regsvr32.exe /s gpkcsp.dll + regsvr32.exe /s sccbase.dll + regsvr32.exe /s slbcsp.dll + regsvr32.exe /s cryptdlg.dll + regsvr32.exe /s oleaut32.dll + regsvr32.exe /s ole32.dll + regsvr32.exe /s shell32.dll + regsvr32.exe /s initpki.dll + regsvr32.exe /s wuapi.dll + regsvr32.exe /s wuaueng.dll + regsvr32.exe /s wuaueng1.dll + regsvr32.exe /s wucltui.dll + regsvr32.exe /s wups.dll + regsvr32.exe /s wups2.dll + regsvr32.exe /s wuweb.dll + regsvr32.exe /s qmgr.dll + regsvr32.exe /s qmgrprxy.dll + regsvr32.exe /s wucltux.dll + regsvr32.exe /s muweb.dll + regsvr32.exe /s wuwebv.dll + + Write-Host "7) Removing WSUS client settings..." + REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f + REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f + REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f + + Write-Host "8) Resetting the WinSock..." + netsh winsock reset + netsh winhttp reset proxy + + Write-Host "9) Delete all BITS jobs..." + Get-BitsTransfer | Remove-BitsTransfer + + Write-Host "10) Attempting to install the Windows Update Agent..." + if ($arch -eq 64) { + wusa Windows8-RT-KB2937636-x64 /quiet + } + else { + wusa Windows8-RT-KB2937636-x86 /quiet + } + + Write-Host "11) Starting Windows Update Services..." + Start-Service -Name BITS + Start-Service -Name wuauserv + Start-Service -Name appidsvc + Start-Service -Name cryptsvc + + Write-Host "12) Forcing discovery..." + wuauclt /resetauthorization /detectnow + + Write-Host "Process complete. Please reboot your computer." - [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon) -}) + $ButtonType = [System.Windows.MessageBoxButton]::OK + $MessageboxTitle = "Reset Windows Update " + $Messageboxbody = ("Stock settings loaded.`n Please reboot your computer") + $MessageIcon = [System.Windows.MessageBoxImage]::Information + + [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) + }) $WPFUpdatesdisable.Add_Click({ - # Source: https://github.com/rgl/windows-vagrant/blob/master/disable-windows-updates.ps1 - Set-StrictMode -Version Latest -$ProgressPreference = 'SilentlyContinue' -$ErrorActionPreference = 'Stop' -trap { - Write-Host - Write-Host "ERROR: $_" - Write-Host (($_.ScriptStackTrace -split '\r?\n') -replace '^(.*)$','ERROR: $1') - Write-Host (($_.Exception.ToString() -split '\r?\n') -replace '^(.*)$','ERROR EXCEPTION: $1') - Write-Host - Write-Host 'Sleeping for 60m to give you time to look around the virtual machine before self-destruction...' - Start-Sleep -Seconds (60*60) - Exit 1 -} - -# disable automatic updates. -# XXX this does not seem to work anymore. -# see How to configure automatic updates by using Group Policy or registry settings -# at https://support.microsoft.com/en-us/help/328010 -function New-Directory($path) { - $p, $components = $path -split '[\\/]' - $components | ForEach-Object { - $p = "$p\$_" - if (!(Test-Path $p)) { - New-Item -ItemType Directory $p | Out-Null + # Source: https://github.com/rgl/windows-vagrant/blob/master/disable-windows-updates.ps1 + Set-StrictMode -Version Latest + $ProgressPreference = 'SilentlyContinue' + $ErrorActionPreference = 'Stop' + trap { + Write-Host + Write-Host "ERROR: $_" + Write-Host (($_.ScriptStackTrace -split '\r?\n') -replace '^(.*)$', 'ERROR: $1') + Write-Host (($_.Exception.ToString() -split '\r?\n') -replace '^(.*)$', 'ERROR EXCEPTION: $1') + Write-Host + Write-Host 'Sleeping for 60m to give you time to look around the virtual machine before self-destruction...' + Start-Sleep -Seconds (60 * 60) + Exit 1 } - } - $null -} -$auPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -New-Directory $auPath -# set NoAutoUpdate. -# 0: Automatic Updates is enabled (default). -# 1: Automatic Updates is disabled. -New-ItemProperty ` - -Path $auPath ` - -Name NoAutoUpdate ` - -Value 1 ` - -PropertyType DWORD ` - -Force ` - | Out-Null -# set AUOptions. -# 1: Keep my computer up to date has been disabled in Automatic Updates. -# 2: Notify of download and installation. -# 3: Automatically download and notify of installation. -# 4: Automatically download and scheduled installation. -New-ItemProperty ` - -Path $auPath ` - -Name AUOptions ` - -Value 1 ` - -PropertyType DWORD ` - -Force ` - | Out-Null -# disable Windows Update Delivery Optimization. -# NB this applies to Windows 10. -# 0: Disabled -# 1: PCs on my local network -# 3: PCs on my local network, and PCs on the Internet -$deliveryOptimizationPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config' -if (Test-Path $deliveryOptimizationPath) { - New-ItemProperty ` - -Path $deliveryOptimizationPath ` - -Name DODownloadMode ` - -Value 0 ` - -PropertyType DWORD ` - -Force ` + # disable automatic updates. + # XXX this does not seem to work anymore. + # see How to configure automatic updates by using Group Policy or registry settings + # at https://support.microsoft.com/en-us/help/328010 + function New-Directory($path) { + $p, $components = $path -split '[\\/]' + $components | ForEach-Object { + $p = "$p\$_" + if (!(Test-Path $p)) { + New-Item -ItemType Directory $p | Out-Null + } + } + $null + } + $auPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' + New-Directory $auPath + # set NoAutoUpdate. + # 0: Automatic Updates is enabled (default). + # 1: Automatic Updates is disabled. + New-ItemProperty ` + -Path $auPath ` + -Name NoAutoUpdate ` + -Value 1 ` + -PropertyType DWORD ` + -Force ` + | Out-Null + # set AUOptions. + # 1: Keep my computer up to date has been disabled in Automatic Updates. + # 2: Notify of download and installation. + # 3: Automatically download and notify of installation. + # 4: Automatically download and scheduled installation. + New-ItemProperty ` + -Path $auPath ` + -Name AUOptions ` + -Value 1 ` + -PropertyType DWORD ` + -Force ` | Out-Null -} -# Service tweaks for Windows Update -$services = @( - "BITS" - "wuauserv" -) + # disable Windows Update Delivery Optimization. + # NB this applies to Windows 10. + # 0: Disabled + # 1: PCs on my local network + # 3: PCs on my local network, and PCs on the Internet + $deliveryOptimizationPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config' + if (Test-Path $deliveryOptimizationPath) { + New-ItemProperty ` + -Path $deliveryOptimizationPath ` + -Name DODownloadMode ` + -Value 0 ` + -PropertyType DWORD ` + -Force ` + | Out-Null + } + # Service tweaks for Windows Update -foreach ($service in $services) { - # -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist + $services = @( + "BITS" + "wuauserv" + ) - Write-Host "Setting $service StartupType to Disabled" - Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Disabled -} + foreach ($service in $services) { + # -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist -}) + Write-Host "Setting $service StartupType to Disabled" + Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Disabled + } + + }) $WPFUpdatessecurity.Add_Click({ - Write-Host "Disabling driver offering through Windows Update..." - If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata")) { - New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Force | Out-Null - } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -Type DWord -Value 1 - If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching")) { - New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Force | Out-Null - } - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -Type DWord -Value 1 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -Type DWord -Value 1 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -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 - Write-Host "Disabling Windows Update automatic restart..." - 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 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -Type DWord -Value 0 - Write-Host "Disabled driver offering through Windows Update" - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -Type DWord -Value 20 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -Type DWord -Value 365 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays " -Type DWord -Value 4 + Write-Host "Disabling driver offering through Windows Update..." + If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata")) { + New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Force | Out-Null + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -Type DWord -Value 1 + If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching")) { + New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Force | Out-Null + } + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -Type DWord -Value 1 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -Type DWord -Value 1 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -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 + Write-Host "Disabling Windows Update automatic restart..." + 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 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -Type DWord -Value 0 + Write-Host "Disabled driver offering through Windows Update" + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -Type DWord -Value 20 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -Type DWord -Value 365 + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays " -Type DWord -Value 4 - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "Set Security Updates" - $Messageboxbody = ("Recommended Update settings loaded") - $MessageIcon = [System.Windows.MessageBoxImage]::Information + $ButtonType = [System.Windows.MessageBoxButton]::OK + $MessageboxTitle = "Set Security Updates" + $Messageboxbody = ("Recommended Update settings loaded") + $MessageIcon = [System.Windows.MessageBoxImage]::Information - [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$MessageIcon) -}) + [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) + }) #=========================================================================== # Shows the form