From 2321c071ee220354f5f1649fc36d9d4ce284e398 Mon Sep 17 00:00:00 2001 From: Chris Titus Date: Wed, 2 Aug 2023 19:43:52 -0500 Subject: [PATCH] Test 2023 07 27 (#934) * Updated Edge Removal Script to the more up-to-date one. (#918) * Update edgeremoval.bat from the original source. * Added my modifications to the extra cleanup part * Updates credits for Edge Removal script * Removed "getfirefox" * Credit to the original source * Compile Winutil * fix typos (#924) * Compile Winutil * Remove ooshutup10 "Disable search box in task bar" (#929) * Compile Winutil * Fix Panel Glitch and add intl * Compile Winutil * Fix Bluetooth services * Compile Winutil * fix function --------- Co-authored-by: Antun Nitraj Co-authored-by: ChrisTitusTech Co-authored-by: AdamJedl <100023363+AdamJedl@users.noreply.github.com> --- config/helperscript.ps1 | 12 ++-- config/tweaks.json | 10 ++-- edgeremoval.bat | 42 +++++++++----- functions/private/Get-WinUtilCheckBoxes.ps1 | 2 +- functions/private/Get-WinUtilVariables.ps1 | 2 +- functions/private/Invoke-WinUtilScript.ps1 | 2 +- .../private/Test-WinUtilPackageManager.ps1 | 2 +- ...iables => Update-EnvironmentVariables.ps1} | 0 functions/public/Invoke-WPFButton.ps1 | 1 + functions/public/Invoke-WPFControlPanel.ps1 | 3 +- functions/public/Invoke-WPFFixesNetwork.ps1 | 2 +- functions/public/Invoke-WPFFixesUpdate.ps1 | 2 +- functions/public/Invoke-WPFInstallUpgrade.ps1 | 2 +- functions/public/Invoke-WPFTab.ps1 | 2 +- lint/PSScriptAnalyser.ps1 | 4 +- ooshutup10_winutil_settings.cfg | 1 - scripts/start.ps1 | 2 +- winutil.ps1 | 57 ++++++++++--------- xaml/inputXML.xaml | 21 +++---- 19 files changed, 95 insertions(+), 74 deletions(-) rename functions/private/{Update-EnvironmentVariables => Update-EnvironmentVariables.ps1} (100%) diff --git a/config/helperscript.ps1 b/config/helperscript.ps1 index 403faa8c..a0b633cb 100644 --- a/config/helperscript.ps1 +++ b/config/helperscript.ps1 @@ -9,7 +9,7 @@ ----------------- This file holds all the install commands to install the applications. This file has the ability to expect multiple frameworks per checkbox. - You can also add multiple install commands by seperating them with ; + You can also add multiple install commands by separating them with ; The structure of the json is as follows @@ -63,7 +63,7 @@ $jsonfile | ConvertTo-Json | Out-File ./config/applications.json <# feature.json ----------------- - This file holds all the windows commands to install specefic features (IE Hyper-v) + This file holds all the windows commands to install specific features (IE Hyper-v) The structure of the json is as follows @@ -290,7 +290,7 @@ Example: #Make sure to uncomment the sections you which to add. #$Registry = @( -# #to add more repeat this seperated by a comma +# #to add more repeat this separated by a comma # @{ # Path = "" # Name = "" @@ -301,7 +301,7 @@ Example: #) #$Service = @( -# #to add more repeat this seperated by a comma +# #to add more repeat this separated by a comma # @{ # Name = "" # StartupType = "" @@ -310,7 +310,7 @@ Example: #) #$ScheduledTask = @( -# #to add more repeat this seperated by a comma +# #to add more repeat this separated by a comma # @{ # Name = "" # State = "" @@ -358,7 +358,7 @@ Add-Member -InputObject $jsonfile -MemberType NoteProperty -Name $NameofButton - <# dns.json ----------------- - This file holds all the DNS entrees. + This file holds all the DNS entries. The structure of the json is as follows diff --git a/config/tweaks.json b/config/tweaks.json index bfad4d80..3a4b9997 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -200,13 +200,13 @@ }, { "Name": "BthAvctpSvc", - "StartupType": "Manual", - "OriginalType": "Manual" + "StartupType": "Automatic", + "OriginalType": "Automatic" }, { "Name": "BthHFSrv", - "StartupType": "Manual", - "OriginalType": "Manual" + "StartupType": "Automatic", + "OriginalType": "Automatic" }, { "Name": "CDPSvc", @@ -2178,7 +2178,7 @@ "WPFEssTweaksRemoveEdge": { "InvokeScript": [ " - #:: Standalone script by padsalatushal Source: https://raw.githubusercontent.com/padsalatushal/Edge-Removal/main/edge.bat + #:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -o $ENV:temp\\edgeremoval.bat Start-Process $ENV:temp\\edgeremoval.bat diff --git a/edgeremoval.bat b/edgeremoval.bat index 13493beb..572e8213 100644 --- a/edgeremoval.bat +++ b/edgeremoval.bat @@ -1,10 +1,10 @@ @(set "0=%~f0"^)#) & powershell -nop -c iex([io.file]::ReadAllText($env:0)) & exit /b -#:: made by padsalatushal source: https://raw.githubusercontent.com/padsalatushal/Edge-Removal/main/edge.bat +#:: made by AveYo source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat sp 'HKCU:\Volatile Environment' 'Edge_Removal' @' $also_remove_webview = 1 -$host.ui.RawUI.WindowTitle = 'Edge Removal ' +$host.ui.RawUI.WindowTitle = 'Edge Removal - AveYo, 2023.07.08' ## targets $remove_win32 = @("Microsoft Edge","Microsoft Edge Update"); $remove_appx = @("MicrosoftEdge") if ($also_remove_webview -eq 1) {$remove_win32 += "Microsoft EdgeWebView"; $remove_appx += "Win32WebViewHost"} @@ -12,16 +12,24 @@ if ($also_remove_webview -eq 1) {$remove_win32 += "Microsoft EdgeWebView"; $remo $D1=[uri].module.gettype('System.Diagnostics.Process')."GetM`ethods"(42) |where {$_.Name -eq 'SetPrivilege'} #`:no-ev-warn 'SeSecurityPrivilege','SeTakeOwnershipPrivilege','SeBackupPrivilege','SeRestorePrivilege'|foreach {$D1.Invoke($null, @("$_",2))} ## set useless policies -foreach ($p in 'HKLM\SOFTWARE\Policies','HKLM\SOFTWARE') { +foreach ($p in 'HKLM\SOFTWARE\Policies','HKLM\SOFTWARE','HKLM\SOFTWARE\WOW6432Node') { cmd /c "reg add ""$p\Microsoft\EdgeUpdate"" /f /v InstallDefault /d 0 /t reg_dword >nul 2>nul" cmd /c "reg add ""$p\Microsoft\EdgeUpdate"" /f /v Install{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062} /d 0 /t reg_dword >nul 2>nul" cmd /c "reg add ""$p\Microsoft\EdgeUpdate"" /f /v Install{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} /d 1 /t reg_dword >nul 2>nul" cmd /c "reg add ""$p\Microsoft\EdgeUpdate"" /f /v DoNotUpdateToEdgeWithChromium /d 1 /t reg_dword >nul 2>nul" } +$edgeupdate='Microsoft\EdgeUpdate\Clients\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}' +foreach ($p in 'HKLM\SOFTWARE','HKLM\SOFTWARE\Wow6432Node') { + cmd /c "reg add ""$p\$edgeupdate\Commands\on-logon-autolaunch"" /f /v CommandLine /d systray.exe >nul 2>nul" + cmd /c "reg add ""$p\$edgeupdate\Commands\on-logon-startup-boost"" /f /v CommandLine /d systray.exe >nul 2>nul" + cmd /c "reg add ""$p\$edgeupdate\Commands\on-os-upgrade"" /f /v CommandLine /d systray.exe >nul 2>nul" +} ## clear win32 uninstall block foreach ($hk in 'HKCU','HKLM') {foreach ($wow in '','\Wow6432Node') {foreach ($i in $remove_win32) { cmd /c "reg delete ""$hk\SOFTWARE${wow}\Microsoft\Windows\CurrentVersion\Uninstall\$i"" /f /v NoRemove >nul 2>nul" + cmd /c "reg add ""$hk\SOFTWARE${wow}\Microsoft\EdgeUpdateDev"" /f /v AllowUninstall /d 1 /t reg_dword >nul 2>nul" }}} + ## find all Edge setup.exe and gather BHO paths $setup = @(); $bho = @(); $bho += "$env:ProgramData\ie_to_edge_stub.exe"; $bho += "$env:Public\ie_to_edge_stub.exe" "LocalApplicationData","ProgramFilesX86","ProgramFiles" |foreach { @@ -56,12 +64,24 @@ foreach ($choice in $remove_appx) { if ('' -eq $choice.Trim()) {continue} foreach ($sid in $users) {cmd /c "reg delete ""$store_reg\EndOfLife\$sid\$PackageFullName"" /f >nul 2>nul"} } } + +## remove OpenWebSearch before running edge setup +$IFEO = 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options' +$MSEP = ($env:ProgramFiles,${env:ProgramFiles(x86)})[[Environment]::Is64BitOperatingSystem] + '\Microsoft\Edge\Application' +cmd /c "reg delete HKCR\microsoft-edge /f /v ""NoOpenWith"" >nul 2>nul" +cmd /c "reg add HKCR\microsoft-edge\shell\open\command /f /ve /d ""\""$MSEP\msedge.exe\"" --single-argument %%1"" >nul" +cmd /c "reg delete HKCR\MSEdgeHTM /f /v ""NoOpenWith"" >nul 2>nul" +cmd /c "reg add HKCR\MSEdgeHTM\shell\open\command /f /ve /d ""\""$MSEP\msedge.exe\"" --single-argument %%1"" >nul" +cmd /c "reg delete ""$IFEO\ie_to_edge_stub.exe"" /f >nul 2>nul" +cmd /c "reg delete ""$IFEO\msedge.exe"" /f >nul 2>nul" + ## shut edge down, again foreach ($p in 'MicrosoftEdgeUpdate','chredge','msedge','edge','msedgewebview2','Widgets') { kill -name $p -force -ea 0 } ## brute-run found Edge setup.exe with uninstall args -$purge = '--uninstall --system-level --force-uninstall' +$purge = '--uninstall --force-uninstall --system-level' # --delete-old-versions --channel=stable if ($also_remove_webview -eq 1) { foreach ($s in $setup) { try{ start -wait $s -args "--msedgewebview $purge" } catch{} } } foreach ($s in $setup) { try{ start -wait $s -args "--msedge $purge" } catch{} } + ## prevent latest cumulative update (LCU) failing due to non-matching EndOfLife Edge entries foreach ($i in $remove_appx) { dir "$store\EndOfLife" -rec -ea 0 |where {$_ -like "*${i}*"} |foreach {cmd /c "reg delete ""$($_.Name)"" /f >nul 2>nul"} @@ -79,6 +99,8 @@ del "$appdata\Microsoft\Internet Explorer\Quick Launch\Microsoft Edge.lnk" -forc del "$desktop\Microsoft Edge.lnk" -force -ea 0 del "$public_desktop\Microsoft Edge.lnk" -force -ea 0 del "$start_menu_programs\Microsoft Edge.lnk" -force -ea 0 +#pushd "${env:ProgramFiles(x86)}\Microsoft" +#rmdir -LiteralPath 'Edge','EdgeCore','EdgeUpdate' -recurse -force -ea 0 ## add OpenWebSearch to redirect microsoft-edge: anti-competitive links to the default browser $IFEO = 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options' @@ -99,7 +121,7 @@ cmd /c "reg add ""$IFEO\msedge.exe\0"" /f /v FilterFullPath /d ""$MSEP\msedge.ex cmd /c "reg add ""$IFEO\msedge.exe\0"" /f /v Debugger /d ""$CMD $DIR\OpenWebSearch.cmd"" >nul" $OpenWebSearch = @$ -@title OpenWebSearch Redux & echo off & set ?= open start menu web search, widgets links or help in your chosen browser +@title OpenWebSearch Redux & echo off & set ?= open start menu web search, widgets links or help in your chosen browser - by AveYo for /f %%E in ('"prompt $E$S& for %%e in (1) do rem"') do echo;%%E[2t 2>nul & rem AveYo: minimize prompt call :reg_var "HKCU\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice" ProgID ProgID if /i "%ProgID%" equ "MSEdgeHTM" echo;Default browser is set to Edge! Change it or remove OpenWebSearch script. & pause & exit /b @@ -135,7 +157,7 @@ for /f "skip=2 tokens=* delims=" %%V in ('%{reg}% %4 %5 %6 %7 %8 %9 2^>nul') do if not defined {var} (set {reg}=& set "%~3="& exit /b) else if %2=="" set "{var}=%{var}:*) =%"& rem AveYo: v3 if not defined {var} (set {reg}=& set "%~3="& exit /b) else set {reg}=& set "%~3=%{var}:*) =%"& set {var}=& exit /b -:dec_url brute url percent decoding +:dec_url brute url percent decoding by AveYo set ".=%URL:!=}%"&setlocal enabledelayedexpansion& rem brute url percent decoding set ".=!.:%%={!" &set ".=!.:{3A=:!" &set ".=!.:{2F=/!" &set ".=!.:{3F=?!" &set ".=!.:{23=#!" &set ".=!.:{5B=[!" &set ".=!.:{5D=]!" set ".=!.:{40=@!"&set ".=!.:{21=}!" &set ".=!.:{24=$!" &set ".=!.:{26=&!" &set ".=!.:{27='!" &set ".=!.:{28=(!" &set ".=!.:{29=)!" @@ -150,17 +172,11 @@ $@ $cleanup = gp 'Registry::HKEY_Users\S-1-5-21*\Volatile*' Edge_Removal -ea 0 if ($cleanup) {rp $cleanup.PSPath Edge_Removal -force -ea 0} +write-host -nonew -fore green -back black "`n EDGE REMOVED!" -write-host -nonew -fore green -back black "`n EDGE REMOVED!"; -exit -## TEsdss ## ask to run script as admin '@.replace("$@","'@").replace("@$","@'") -force -ea 0; $A = '-nop -noe -c & {iex((gp ''Registry::HKEY_Users\S-1-5-21*\Volatile*'' Edge_Removal -ea 0)[0].Edge_Removal)}' start powershell -args $A -verb runas $_Press_Enter #:: - -Highlight Text ( -Alt+S -) diff --git a/functions/private/Get-WinUtilCheckBoxes.ps1 b/functions/private/Get-WinUtilCheckBoxes.ps1 index f243c970..a572df04 100644 --- a/functions/private/Get-WinUtilCheckBoxes.ps1 +++ b/functions/private/Get-WinUtilCheckBoxes.ps1 @@ -3,7 +3,7 @@ Function Get-WinUtilCheckBoxes { <# .DESCRIPTION - Function is meant to find all checkboxes that are checked on the specefic tab and input them into a script. + Function is meant to find all checkboxes that are checked on the specific tab and input them into a script. Outputed data will be the names of the checkboxes that were checked diff --git a/functions/private/Get-WinUtilVariables.ps1 b/functions/private/Get-WinUtilVariables.ps1 index 6c64099f..32e536e4 100644 --- a/functions/private/Get-WinUtilVariables.ps1 +++ b/functions/private/Get-WinUtilVariables.ps1 @@ -3,7 +3,7 @@ function Get-WinUtilVariables { <# .DESCRIPTION - palceholder + placeholder #> param ( diff --git a/functions/private/Invoke-WinUtilScript.ps1 b/functions/private/Invoke-WinUtilScript.ps1 index e2a3451b..329f76f9 100644 --- a/functions/private/Invoke-WinUtilScript.ps1 +++ b/functions/private/Invoke-WinUtilScript.ps1 @@ -2,7 +2,7 @@ function Invoke-WinUtilScript { <# .DESCRIPTION - This function will run a seperate powershell script. Meant for things that can't be handled with the other functions + This function will run a separate powershell script. Meant for things that can't be handled with the other functions .EXAMPLE diff --git a/functions/private/Test-WinUtilPackageManager.ps1 b/functions/private/Test-WinUtilPackageManager.ps1 index f1054c3a..a4624c53 100644 --- a/functions/private/Test-WinUtilPackageManager.ps1 +++ b/functions/private/Test-WinUtilPackageManager.ps1 @@ -2,7 +2,7 @@ function Test-WinUtilPackageManager { <# .DESCRIPTION - Checks for Winget or Choco depending on the paramater + Checks for Winget or Choco depending on the parameter #> diff --git a/functions/private/Update-EnvironmentVariables b/functions/private/Update-EnvironmentVariables.ps1 similarity index 100% rename from functions/private/Update-EnvironmentVariables rename to functions/private/Update-EnvironmentVariables.ps1 diff --git a/functions/public/Invoke-WPFButton.ps1 b/functions/public/Invoke-WPFButton.ps1 index 536d9c3a..cdb1da5e 100644 --- a/functions/public/Invoke-WPFButton.ps1 +++ b/functions/public/Invoke-WPFButton.ps1 @@ -40,6 +40,7 @@ function Invoke-WPFButton { "WPFPanelcontrol" {Invoke-WPFControlPanel -Panel $button} "WPFPanelnetwork" {Invoke-WPFControlPanel -Panel $button} "WPFPanelpower" {Invoke-WPFControlPanel -Panel $button} + "WPFPanelregion" {Invoke-WPFControlPanel -Panel $button} "WPFPanelsound" {Invoke-WPFControlPanel -Panel $button} "WPFPanelsystem" {Invoke-WPFControlPanel -Panel $button} "WPFPaneluser" {Invoke-WPFControlPanel -Panel $button} diff --git a/functions/public/Invoke-WPFControlPanel.ps1 b/functions/public/Invoke-WPFControlPanel.ps1 index 07ecbe6a..713ec3cd 100644 --- a/functions/public/Invoke-WPFControlPanel.ps1 +++ b/functions/public/Invoke-WPFControlPanel.ps1 @@ -2,7 +2,7 @@ function Invoke-WPFControlPanel { <# .DESCRIPTION - Simple Switch for lagacy windows + Simple Switch for legacy windows #> param($Panel) @@ -11,6 +11,7 @@ function Invoke-WPFControlPanel { "WPFPanelcontrol" {cmd /c control} "WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelpower" {cmd /c powercfg.cpl} + "WPFPanelregion" {cmd /c intl.cpl} "WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPaneluser" {cmd /c "control userpasswords2"} diff --git a/functions/public/Invoke-WPFFixesNetwork.ps1 b/functions/public/Invoke-WPFFixesNetwork.ps1 index 782b86db..614c0567 100644 --- a/functions/public/Invoke-WPFFixesNetwork.ps1 +++ b/functions/public/Invoke-WPFFixesNetwork.ps1 @@ -6,7 +6,7 @@ function Invoke-WPFFixesNetwork { #> - Write-Host "Reseting Network with netsh" + Write-Host "Resetting Network with netsh" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" diff --git a/functions/public/Invoke-WPFFixesUpdate.ps1 b/functions/public/Invoke-WPFFixesUpdate.ps1 index b3d14ba2..c23449ac 100644 --- a/functions/public/Invoke-WPFFixesUpdate.ps1 +++ b/functions/public/Invoke-WPFFixesUpdate.ps1 @@ -7,7 +7,7 @@ function Invoke-WPFFixesUpdate { #> - ### Reset Windows Update Script - reregister dlls, services, and remove registry entires. + ### Reset Windows Update Script - reregister dlls, services, and remove registry entries. Write-Host "1. Stopping Windows Update Services..." Stop-Service -Name BITS Stop-Service -Name wuauserv diff --git a/functions/public/Invoke-WPFInstallUpgrade.ps1 b/functions/public/Invoke-WPFInstallUpgrade.ps1 index 0e49cf0d..8e5e31f1 100644 --- a/functions/public/Invoke-WPFInstallUpgrade.ps1 +++ b/functions/public/Invoke-WPFInstallUpgrade.ps1 @@ -13,7 +13,7 @@ function Invoke-WPFInstallUpgrade { } if(Get-WinUtilInstallerProcess -Process $global:WinGetInstall){ - $msg = "Install process is currently running. Please check for a powershell window labled 'Winget Install'" + $msg = "Install process is currently running. Please check for a powershell window labeled 'Winget Install'" [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) return } diff --git a/functions/public/Invoke-WPFTab.ps1 b/functions/public/Invoke-WPFTab.ps1 index 0c95d258..21976956 100644 --- a/functions/public/Invoke-WPFTab.ps1 +++ b/functions/public/Invoke-WPFTab.ps1 @@ -3,7 +3,7 @@ function Invoke-WPFTab { <# .DESCRIPTION - Sole purpose of this fuction reduce duplicated code for switching between tabs. + Sole purpose of this function is to reduce duplicated code for switching between tabs. #> diff --git a/lint/PSScriptAnalyser.ps1 b/lint/PSScriptAnalyser.ps1 index 6c075ff7..129f35de 100644 --- a/lint/PSScriptAnalyser.ps1 +++ b/lint/PSScriptAnalyser.ps1 @@ -5,7 +5,7 @@ # Severity = @('Error','Warning') # Analyze **only** the following rules. Use IncludeRules when you want - # to invoke only a small subset of the defualt rules. + # to invoke only a small subset of the default rules. <# IncludeRules = @('PSAvoidDefaultValueSwitchParameter', 'PSMisleadingBacktick', @@ -14,7 +14,7 @@ 'PSReservedParams', 'PSShouldProcess', 'PSUseApprovedVerbs', - 'PSUseDeclaredVarsMoreThanAssigments') + 'PSUseDeclaredVarsMoreThanAssignments') #> # Do not analyze the following rules. Use ExcludeRules when you have # commented out the IncludeRules settings above and want to include all diff --git a/ooshutup10_winutil_settings.cfg b/ooshutup10_winutil_settings.cfg index f38a4a33..7882d7f9 100644 --- a/ooshutup10_winutil_settings.cfg +++ b/ooshutup10_winutil_settings.cfg @@ -214,7 +214,6 @@ M012 - M013 - M014 - M015 + -M016 - M017 + M018 + M019 - diff --git a/scripts/start.ps1 b/scripts/start.ps1 index 791427c7..3e7d803e 100644 --- a/scripts/start.ps1 +++ b/scripts/start.ps1 @@ -20,7 +20,7 @@ $sync.ProcessRunning = $false if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { - Write-Output "Winutil needs to be ran as Administrator. Attempting to relaunch." + Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch." Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "iwr -useb https://christitus.com/win | iex" break } diff --git a/winutil.ps1 b/winutil.ps1 index 11aac5f1..c32545bf 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -10,7 +10,7 @@ Author : Chris Titus @christitustech Runspace Author: @DeveloperDurp GitHub : https://github.com/ChrisTitusTech - Version : 23.07.27 + Version : 23.08.03 #> Start-Transcript $ENV:TEMP\Winutil.log -Append @@ -21,13 +21,13 @@ Add-Type -AssemblyName System.Windows.Forms # variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "23.07.27" +$sync.version = "23.08.03" $sync.configs = @{} $sync.ProcessRunning = $false if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { - Write-Output "Winutil needs to be ran as Administrator. Attempting to relaunch." + Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch." Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "iwr -useb https://christitus.com/win | iex" break } @@ -36,7 +36,7 @@ Function Get-WinUtilCheckBoxes { <# .DESCRIPTION - Function is meant to find all checkboxes that are checked on the specefic tab and input them into a script. + Function is meant to find all checkboxes that are checked on the specific tab and input them into a script. Outputed data will be the names of the checkboxes that were checked @@ -188,7 +188,7 @@ function Get-WinUtilVariables { <# .DESCRIPTION - palceholder + placeholder #> param ( @@ -606,7 +606,7 @@ function Invoke-WinUtilScript { <# .DESCRIPTION - This function will run a seperate powershell script. Meant for things that can't be handled with the other functions + This function will run a separate powershell script. Meant for things that can't be handled with the other functions .EXAMPLE @@ -946,7 +946,7 @@ function Test-WinUtilPackageManager { <# .DESCRIPTION - Checks for Winget or Choco depending on the paramater + Checks for Winget or Choco depending on the parameter #> @@ -1051,6 +1051,7 @@ function Invoke-WPFButton { "WPFPanelcontrol" {Invoke-WPFControlPanel -Panel $button} "WPFPanelnetwork" {Invoke-WPFControlPanel -Panel $button} "WPFPanelpower" {Invoke-WPFControlPanel -Panel $button} + "WPFPanelregion" {Invoke-WPFControlPanel -Panel $button} "WPFPanelsound" {Invoke-WPFControlPanel -Panel $button} "WPFPanelsystem" {Invoke-WPFControlPanel -Panel $button} "WPFPaneluser" {Invoke-WPFControlPanel -Panel $button} @@ -1068,7 +1069,7 @@ function Invoke-WPFControlPanel { <# .DESCRIPTION - Simple Switch for lagacy windows + Simple Switch for legacy windows #> param($Panel) @@ -1077,6 +1078,7 @@ function Invoke-WPFControlPanel { "WPFPanelcontrol" {cmd /c control} "WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelpower" {cmd /c powercfg.cpl} + "WPFPanelregion" {cmd /c intl.cpl} "WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPaneluser" {cmd /c "control userpasswords2"} @@ -1127,7 +1129,7 @@ function Invoke-WPFFixesNetwork { #> - Write-Host "Reseting Network with netsh" + Write-Host "Resetting Network with netsh" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" @@ -1153,7 +1155,7 @@ function Invoke-WPFFixesUpdate { #> - ### Reset Windows Update Script - reregister dlls, services, and remove registry entires. + ### Reset Windows Update Script - reregister dlls, services, and remove registry entries. Write-Host "1. Stopping Windows Update Services..." Stop-Service -Name BITS Stop-Service -Name wuauserv @@ -1423,7 +1425,7 @@ function Invoke-WPFInstallUpgrade { } if(Get-WinUtilInstallerProcess -Process $global:WinGetInstall){ - $msg = "Install process is currently running. Please check for a powershell window labled 'Winget Install'" + $msg = "Install process is currently running. Please check for a powershell window labeled 'Winget Install'" [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) return } @@ -1583,7 +1585,7 @@ function Invoke-WPFTab { <# .DESCRIPTION - Sole purpose of this fuction reduce duplicated code for switching between tabs. + Sole purpose of this function is to reduce duplicated code for switching between tabs. #> @@ -2572,16 +2574,16 @@ $inputXML = ' - - + + - - + +