mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-12-31 18:24:27 -06:00
Merge branch 'test-2024-01-30' into CW-MicroWin
This commit is contained in:
commit
6d4db7dc7a
1
.gitignore
vendored
1
.gitignore
vendored
@ -36,3 +36,4 @@ Microsoft.PowerShell.ConsoleHost.dll
|
||||
# General
|
||||
.DS_Store
|
||||
microwin.log
|
||||
True
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,10 @@
|
||||
{
|
||||
"WPFFeaturesdotnet": {
|
||||
"Content": "All .Net Framework (2,3,4)",
|
||||
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a010_",
|
||||
"feature": [
|
||||
"NetFx4-AdvSrvs",
|
||||
"NetFx3"
|
||||
@ -9,6 +14,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeatureshyperv": {
|
||||
"Content": "HyperV Virtualization",
|
||||
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a011_",
|
||||
"feature": [
|
||||
"HypervisorPlatform",
|
||||
"Microsoft-Hyper-V-All",
|
||||
@ -24,6 +34,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeatureslegacymedia": {
|
||||
"Content": "Legacy Media (WMP, DirectPlay)",
|
||||
"Description": "Enables legacy programs from previous versions of windows",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a012_",
|
||||
"feature": [
|
||||
"WindowsMediaPlayer",
|
||||
"MediaPlayback",
|
||||
@ -35,6 +50,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeaturewsl": {
|
||||
"Content": "Windows Subsystem for Linux",
|
||||
"Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a020_",
|
||||
"feature": [
|
||||
"VirtualMachinePlatform",
|
||||
"Microsoft-Windows-Subsystem-Linux"
|
||||
@ -44,6 +64,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeaturenfs": {
|
||||
"Content": "NFS - Network File System",
|
||||
"Description": "Network File System (NFS) is a mechanism for storing files on a network.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a014_",
|
||||
"feature": [
|
||||
"ServicesForNFS-ClientOnly",
|
||||
"ClientForNFS-Infrastructure",
|
||||
@ -59,6 +84,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeatureEnableSearchSuggestions": {
|
||||
"Content": "Enable Search Box Web Suggestions in Registry(explorer restart)",
|
||||
"Description": "Enables web suggestions when searching using Windows Search.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a015_",
|
||||
"feature": [
|
||||
],
|
||||
"InvokeScript": [
|
||||
@ -72,6 +102,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeatureDisableSearchSuggestions": {
|
||||
"Content": "Disable Search Box Web Suggestions in Registry(explorer restart)",
|
||||
"Description": "Disables web suggestions when searching using Windows Search.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a016_",
|
||||
"feature": [
|
||||
],
|
||||
"InvokeScript": [
|
||||
@ -85,6 +120,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeatureRegBackup": {
|
||||
"Content": "Enable Daily Registry Backup Task 12.30am",
|
||||
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a017_",
|
||||
"feature": [
|
||||
],
|
||||
"InvokeScript": [
|
||||
@ -98,6 +138,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeatureEnableLegacyRecovery": {
|
||||
"Content": "Enable Legacy F8 Boot Recovery",
|
||||
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a018_",
|
||||
"feature": [
|
||||
],
|
||||
"InvokeScript": [
|
||||
@ -111,6 +156,11 @@
|
||||
]
|
||||
},
|
||||
"WPFFeatureDisableLegacyRecovery": {
|
||||
"Content": "Disable Legacy F8 Boot Recovery",
|
||||
"Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a019_",
|
||||
"feature": [
|
||||
],
|
||||
"InvokeScript": [
|
||||
@ -122,5 +172,96 @@
|
||||
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
|
||||
"
|
||||
]
|
||||
},
|
||||
"WPFFeaturesandbox": {
|
||||
"Content": "Windows Sandbox",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a021_",
|
||||
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
|
||||
},
|
||||
"WPFFeatureInstall": {
|
||||
"Content": "Install Features",
|
||||
"category": "Features",
|
||||
"panel": "1",
|
||||
"Order": "a060_",
|
||||
"Type": "150"
|
||||
},
|
||||
"WPFPanelAutologin": {
|
||||
"Content": "Set Up Autologin",
|
||||
"category": "Fixes",
|
||||
"Order": "a040_",
|
||||
"panel": "1",
|
||||
"Type": "300"
|
||||
},
|
||||
"WPFFixesUpdate": {
|
||||
"Content": "Reset Windows Update",
|
||||
"category": "Fixes",
|
||||
"panel": "1",
|
||||
"Order": "a041_",
|
||||
"Type": "300"
|
||||
},
|
||||
"WPFFixesNetwork": {
|
||||
"Content": "Reset Network",
|
||||
"category": "Fixes",
|
||||
"Order": "a042_",
|
||||
"panel": "1",
|
||||
"Type": "300"
|
||||
},
|
||||
"WPFPanelDISM": {
|
||||
"Content": "System Corruption Scan",
|
||||
"category": "Fixes",
|
||||
"panel": "1",
|
||||
"Order": "a043_",
|
||||
"Type": "300"
|
||||
},
|
||||
"WPFFixesWinget": {
|
||||
"Content": "WinGet Reinstall",
|
||||
"category": "Fixes",
|
||||
"panel": "1",
|
||||
"Order": "a044_",
|
||||
"Type": "300"
|
||||
},
|
||||
"WPFPanelnetwork": {
|
||||
"Content": "Network Connections",
|
||||
"category": "Legacy Windows Panels",
|
||||
"panel": "2",
|
||||
"Type": "200"
|
||||
},
|
||||
"WPFPanelcontrol": {
|
||||
"Content": "Control Panel",
|
||||
"category": "Legacy Windows Panels",
|
||||
"panel": "2",
|
||||
"Type": "200"
|
||||
},
|
||||
"WPFPanelpower": {
|
||||
"Content": "Power Panel",
|
||||
"category": "Legacy Windows Panels",
|
||||
"panel": "2",
|
||||
"Type": "200"
|
||||
},
|
||||
"WPFPanelregion": {
|
||||
"Content": "Region",
|
||||
"category": "Legacy Windows Panels",
|
||||
"panel": "2",
|
||||
"Type": "200"
|
||||
},
|
||||
"WPFPanelsound": {
|
||||
"Content": "Sound Settings",
|
||||
"category": "Legacy Windows Panels",
|
||||
"panel": "2",
|
||||
"Type": "200"
|
||||
},
|
||||
"WPFPanelsystem": {
|
||||
"Content": "System Properties",
|
||||
"category": "Legacy Windows Panels",
|
||||
"panel": "2",
|
||||
"Type": "200"
|
||||
},
|
||||
"WPFPaneluser": {
|
||||
"Content": "User Accounts",
|
||||
"category": "Legacy Windows Panels",
|
||||
"panel": "2",
|
||||
"Type": "200"
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"WPFTweaksAH": {
|
||||
"Content": "Disable Activity History",
|
||||
"Description": "This erases recent docs, clipboard, and run history.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a005_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
|
||||
@ -25,6 +30,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksHiber": {
|
||||
"Content": "Disable Hibernation",
|
||||
"Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a011_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
|
||||
@ -46,6 +56,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksHome": {
|
||||
"Content": "Disable Homegroup",
|
||||
"Description": "Disables HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a009_",
|
||||
"service": [
|
||||
{
|
||||
"Name": "HomeGroupListener",
|
||||
@ -60,6 +75,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksLoc": {
|
||||
"Content": "Disable Location Tracking",
|
||||
"Description": "Disables Location Tracking...DUH!",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a008_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location",
|
||||
@ -92,6 +112,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksServices": {
|
||||
"Content": "Set Services to Manual",
|
||||
"Description": "Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a014_",
|
||||
"service": [
|
||||
{
|
||||
"Name": "AJRouter",
|
||||
@ -1511,6 +1536,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksTele": {
|
||||
"Content": "Disable Telemetry",
|
||||
"Description": "Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a003_",
|
||||
"ScheduledTask": [
|
||||
{
|
||||
"Name": "Microsoft\\Windows\\Application Experience\\Microsoft Compatibility Appraiser",
|
||||
@ -1898,6 +1928,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksWifi": {
|
||||
"Content": "Disable Wifi-Sense",
|
||||
"Description": "Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a004_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\Software\\Microsoft\\PolicyManager\\default\\WiFi\\AllowWiFiHotSpotReporting",
|
||||
@ -1916,6 +1951,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksUTC": {
|
||||
"Content": "Set Time to UTC (Dual Boot)",
|
||||
"Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a022_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
|
||||
@ -1927,6 +1967,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksDisplay": {
|
||||
"Content": "Set Display for Performance",
|
||||
"Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a021_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\Control Panel\\Desktop",
|
||||
@ -2028,6 +2073,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksDeBloat": {
|
||||
"Content": "Remove ALL MS Store Apps - NOT RECOMMENDED",
|
||||
"Description": "USE WITH CAUTION!!!!! This will remove ALL Microsoft store apps other than the essentials to make winget work. Games installed by MS Store ARE INCLUDED!",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a025_",
|
||||
"appx": [
|
||||
"Microsoft.Microsoft3DViewer",
|
||||
"Microsoft.AppConnector",
|
||||
@ -2142,6 +2192,12 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksRestorePoint": {
|
||||
"Content": "Create Restore Point",
|
||||
"Description": "Creates a restore point at runtime in case a revert is needed from WinUtil modifications",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Checked": "True",
|
||||
"Order": "a001_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
# Check if the user has administrative privileges
|
||||
@ -2179,6 +2235,13 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksOO": {
|
||||
"Content": "Run OO Shutup",
|
||||
"Description": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a002_",
|
||||
"Content": "Run OO Shutup",
|
||||
"ToolTip": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
|
||||
"InvokeScript": [
|
||||
"curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/ooshutup10_winutil_settings.cfg\" -o $ENV:temp\\ooshutup10.cfg
|
||||
curl.exe -s \"https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe\" -o $ENV:temp\\OOSU10.exe
|
||||
@ -2187,6 +2250,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksStorage": {
|
||||
"Content": "Disable Storage Sense",
|
||||
"Description": "Storage Sense deletes temp files automatically.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a010_",
|
||||
"InvokeScript": [
|
||||
"Remove-Item -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy\" -Recurse -ErrorAction SilentlyContinue"
|
||||
],
|
||||
@ -2196,6 +2264,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksRemoveEdge": {
|
||||
"Content": "Remove Microsoft Edge - NOT RECOMMENDED",
|
||||
"Description": "Removes MS Edge when it gets reinstalled by updates.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a026_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
#:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat
|
||||
@ -2213,6 +2286,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksRemoveOnedrive": {
|
||||
"Content": "Remove OneDrive",
|
||||
"Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a027_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
|
||||
@ -2290,6 +2368,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksDisableNotifications": {
|
||||
"Content": "Disable Notification Tray/Calendar",
|
||||
"Description": "Disables all Notifications INCLUDING Calendar",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a024_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Policies\\Microsoft\\Windows\\Explorer",
|
||||
@ -2308,6 +2391,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksRightClickMenu": {
|
||||
"Content": "Set Classic Right-Click Menu ",
|
||||
"Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a028_",
|
||||
"InvokeScript": [
|
||||
"New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\" "
|
||||
],
|
||||
@ -2319,6 +2407,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksDiskCleanup": {
|
||||
"Content": "Run Disk Cleanup",
|
||||
"Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a007_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
cleanmgr.exe /d C: /VERYLOWDISK
|
||||
@ -2327,6 +2420,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksDisableUAC": {
|
||||
"Content": "Disable UAC",
|
||||
"Description": "Disables User Account Control. Only recommended for Expert Users.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a023_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",
|
||||
@ -2338,12 +2436,22 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksDeleteTempFiles": {
|
||||
"Content": "Delete Temporary Files",
|
||||
"Description": "Erases TEMP Folders",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a006_",
|
||||
"InvokeScript": [
|
||||
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse
|
||||
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse"
|
||||
]
|
||||
},
|
||||
"WPFTweaksDVR": {
|
||||
"Content": "Disable GameDVR",
|
||||
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a012_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\System\\GameConfigStore",
|
||||
@ -2390,6 +2498,12 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksTeredo": {
|
||||
"Content": "Disable Teredo",
|
||||
"Description": "Teredo network tunneling is a ipv6 feature that can cause additional latency.",
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a029_",
|
||||
"Order": "a013_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
|
||||
@ -2406,18 +2520,12 @@
|
||||
"netsh interface teredo set state default"
|
||||
]
|
||||
},
|
||||
"WPFBingSearch": {
|
||||
"registry": [
|
||||
{
|
||||
"OriginalValue": "1",
|
||||
"Name": "BingSearchEnabled",
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
|
||||
"Type": "DWord",
|
||||
"Value": "0"
|
||||
}
|
||||
]
|
||||
},
|
||||
"WPFTweaksDisableipsix": {
|
||||
"Content": "Disable IPv6",
|
||||
"Description": "Disables IPv6.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a031_",
|
||||
"InvokeScript": [
|
||||
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
|
||||
],
|
||||
@ -2426,11 +2534,115 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksEnableipsix": {
|
||||
"Content": "Enable IPv6",
|
||||
"Description": "Enables IPv6.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a030_",
|
||||
"InvokeScript": [
|
||||
"Enable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
|
||||
],
|
||||
"UndoScript": [
|
||||
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
|
||||
]
|
||||
},
|
||||
"WPFToggleDarkMode": {
|
||||
"Content": "Dark Theme",
|
||||
"Description": "Enable/Disable Dark Mode.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a060_",
|
||||
"Type": "Toggle"
|
||||
},
|
||||
"WPFToggleBingSearch": {
|
||||
"Content": "Bing Search in Start Menu",
|
||||
"Description": "If enable then includes web search results from Bing in your Start Menu search.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a061_",
|
||||
"Type": "Toggle"
|
||||
},
|
||||
"WPFToggleNumLock": {
|
||||
"Content": "NumLock on Startup",
|
||||
"Description": "Toggle the Num Lock key state when your computer starts.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a062_",
|
||||
"Type": "Toggle"
|
||||
},
|
||||
"WPFToggleVerboseLogon": {
|
||||
"Content": "Verbose Logon Messages",
|
||||
"Description": "Show detailed messages during the login process for troubleshooting and diagnostics.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a063_",
|
||||
"Type": "Toggle"
|
||||
},
|
||||
"WPFToggleShowExt": {
|
||||
"Content": "Show File Extensions",
|
||||
"Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a064_",
|
||||
"Type": "Toggle"
|
||||
},
|
||||
"WPFToggleSnapFlyout": {
|
||||
"Content": "Snap Assist Flyout",
|
||||
"Description": "If enabled then Snap preview is disabled when maximize button is hovered.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a065_",
|
||||
"Type": "Toggle"
|
||||
},
|
||||
"WPFToggleMouseAcceleration": {
|
||||
"Content": "Mouse Acceleration",
|
||||
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a066_",
|
||||
"Type": "Toggle"
|
||||
},
|
||||
"WPFchangedns": {
|
||||
"Content": "DNS",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a040_",
|
||||
"Type": "Combobox",
|
||||
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Level3 Open_DNS Quad9"
|
||||
},
|
||||
"WPFTweaksbutton": {
|
||||
"Content": "Run Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a041_",
|
||||
"Type": "160"
|
||||
},
|
||||
"WPFUndoall": {
|
||||
"Content": "Undo Selected Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a042_",
|
||||
"Type": "160"
|
||||
},
|
||||
"WPFAddUltPerf": {
|
||||
"Content": "Add and Activate Ultimate Performance Profile",
|
||||
"category": "Performance Plans",
|
||||
"panel": "2",
|
||||
"Order": "a080_",
|
||||
"Type": "300"
|
||||
},
|
||||
"WPFRemoveUltPerf": {
|
||||
"Content": "Remove Ultimate Performance Profile",
|
||||
"category": "Performance Plans",
|
||||
"panel": "2",
|
||||
"Order": "a081_",
|
||||
"Type": "300"
|
||||
},
|
||||
"WPFWinUtilShortcut": {
|
||||
"Content": "Create WinUtil Shortcut",
|
||||
"category": "Shortcuts",
|
||||
"panel": "2",
|
||||
"Order": "a082_",
|
||||
"Type": "300"
|
||||
}
|
||||
}
|
||||
|
30
functions/public/Invoke-ScratchDialog.ps1
Normal file
30
functions/public/Invoke-ScratchDialog.ps1
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
function Invoke-ScratchDialog {
|
||||
|
||||
<#
|
||||
|
||||
.SYNOPSIS
|
||||
Enable Editable Text box Alternate Scartch path
|
||||
|
||||
.PARAMETER Button
|
||||
#>
|
||||
$sync.WPFMicrowinISOScratchDir.IsChecked
|
||||
|
||||
|
||||
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
|
||||
$Dialog = New-Object System.Windows.Forms.FolderBrowserDialog
|
||||
$Dialog.SelectedPath = $sync.MicrowinScratchDirBox.Text
|
||||
$DialogShowNewFolderButton = $true
|
||||
$Dialog.ShowDialog()
|
||||
$filePath = $Dialog.SelectedPath
|
||||
Write-Host "No ISO is chosen+ $filePath"
|
||||
|
||||
if ([string]::IsNullOrEmpty($filePath))
|
||||
{
|
||||
Write-Host "No Folder had chosen"
|
||||
return
|
||||
}
|
||||
|
||||
$sync.MicrowinScratchDirBox.Text = Join-Path $filePath "\"
|
||||
|
||||
}
|
@ -52,5 +52,6 @@ function Invoke-WPFButton {
|
||||
"WPFGetIso" {Invoke-WPFGetIso}
|
||||
"WPFMicrowin" {Invoke-WPFMicrowin}
|
||||
"WPFCloseButton" {Invoke-WPFCloseButton}
|
||||
"MicrowinScratchDirBT" {Invoke-ScratchDialog}
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@ function Invoke-WPFFeatureInstall {
|
||||
|
||||
$Features = (Get-WinUtilCheckBoxes)["WPFFeatures"]
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $Features,$DebugPreference -ScriptBlock {
|
||||
Invoke-WPFRunspace -ArgumentList $Features -DebugPreference $DebugPreference -ScriptBlock {
|
||||
param($Features, $DebugPreference)
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
|
@ -5,77 +5,267 @@ function Invoke-WPFFixesUpdate {
|
||||
.SYNOPSIS
|
||||
Performs various tasks in an attempt to repair Windows Update
|
||||
|
||||
.DESCRIPTION
|
||||
1. (Aggressive Only) Scans the system for corruption using chkdsk, SFC, and DISM
|
||||
Steps:
|
||||
1. Runs chkdsk /scan /perf
|
||||
/scan - Runs an online scan on the volume
|
||||
/perf - Uses more system resources to complete a scan as fast as possible
|
||||
2. Runs SFC /scannow
|
||||
/scannow - Scans integrity of all protected system files and repairs files with problems when possible
|
||||
3. Runs DISM /Online /Cleanup-Image /RestoreHealth
|
||||
/Online - Targets the running operating system
|
||||
/Cleanup-Image - Performs cleanup and recovery operations on the image
|
||||
/RestoreHealth - Scans the image for component store corruption and attempts to repair the corruption using Windows Update
|
||||
4. Runs SFC /scannow
|
||||
Ran twice in case DISM repaired SFC
|
||||
2. Stops Windows Update Services
|
||||
3. Remove the QMGR Data file, which stores BITS jobs
|
||||
4. (Aggressive Only) Renames the DataStore and CatRoot2 folders
|
||||
DataStore - Contains the Windows Update History and Log Files
|
||||
CatRoot2 - Contains the Signatures for Windows Update Packages
|
||||
5. Renames the Windows Update Download Folder
|
||||
6. Deletes the Windows Update Log
|
||||
7. (Aggressive Only) Resets the Security Descriptors on the Windows Update Services
|
||||
8. Reregisters the BITS and Windows Update DLLs
|
||||
9. Removes the WSUS client settings
|
||||
10. Resets WinSock
|
||||
11. Gets and deletes all BITS jobs
|
||||
12. Sets the startup type of the Windows Update Services then starts them
|
||||
13. Forces Windows Update to check for updates
|
||||
|
||||
.PARAMETER Aggressive
|
||||
If specified, the script will take additional steps to repair Windows Update that are more dangerous, take a significant amount of time, or are generally unnecessary
|
||||
|
||||
#>
|
||||
|
||||
# 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
|
||||
Stop-Service -Name appidsvc
|
||||
Stop-Service -Name cryptsvc
|
||||
Write-Host "2. Remove QMGR Data file..."
|
||||
param($Aggressive = $false)
|
||||
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -PercentComplete 0
|
||||
# Wait for the first progress bar to show, otherwise the second one won't show
|
||||
Start-Sleep -Milliseconds 200
|
||||
|
||||
if ($Aggressive) {
|
||||
# Scan system for corruption
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Scanning for corruption..." -PercentComplete 0
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk..." -PercentComplete 0
|
||||
# 2>&1 redirects stdout, alowing iteration over the output
|
||||
chkdsk.exe /scan /perf 2>&1 | ForEach-Object {
|
||||
# Write stdout to the Verbose stream
|
||||
Write-Verbose $_
|
||||
|
||||
# Get the index of the total percentage
|
||||
$index = $_.IndexOf("Total:")
|
||||
if (
|
||||
# If the percent is found
|
||||
($percent = try {(
|
||||
$_.Substring(
|
||||
$index + 6,
|
||||
$_.IndexOf("%", $index) - $index - 6
|
||||
)
|
||||
).Trim()} catch {0}) `
|
||||
<# And the current percentage is greater than the previous one #>`
|
||||
-and $percent -gt $oldpercent
|
||||
){
|
||||
# Update the progress bar
|
||||
$oldpercent = $percent
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk... ($percent%)" -PercentComplete $percent
|
||||
}
|
||||
}
|
||||
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC..." -PercentComplete 0
|
||||
$oldpercent = 0
|
||||
# SFC has a bug when redirected which causes it to output only when the stdout buffer is full, causing the progress bar to move in chunks
|
||||
sfc /scannow 2>&1 | ForEach-Object {
|
||||
# Write stdout to the Verbose stream
|
||||
Write-Verbose $_
|
||||
|
||||
# Filter for lines that contain a percentage that is greater than the previous one
|
||||
if (
|
||||
(
|
||||
# Use a different method to get the percentage that accounts for SFC's Unicode output
|
||||
[int]$percent = try {(
|
||||
(
|
||||
$_.Substring(
|
||||
$_.IndexOf("n") + 2,
|
||||
$_.IndexOf("%") - $_.IndexOf("n") - 2
|
||||
).ToCharArray() | Where-Object {$_}
|
||||
) -join ''
|
||||
).TrimStart()} catch {0}
|
||||
) -and $percent -gt $oldpercent
|
||||
){
|
||||
# Update the progress bar
|
||||
$oldpercent = $percent
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
|
||||
}
|
||||
}
|
||||
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM..." -PercentComplete 0
|
||||
$oldpercent = 0
|
||||
DISM /Online /Cleanup-Image /RestoreHealth | ForEach-Object {
|
||||
# Write stdout to the Verbose stream
|
||||
Write-Verbose $_
|
||||
|
||||
# Filter for lines that contain a percentage that is greater than the previous one
|
||||
if (
|
||||
($percent = try {
|
||||
[int]($_ -replace "\[" -replace "=" -replace " " -replace "%" -replace "\]")
|
||||
} catch {0}) `
|
||||
-and $percent -gt $oldpercent
|
||||
){
|
||||
# Update the progress bar
|
||||
$oldpercent = $percent
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM... ($percent%)" -PercentComplete $percent
|
||||
}
|
||||
}
|
||||
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC again..." -PercentComplete 0
|
||||
$oldpercent = 0
|
||||
sfc /scannow 2>&1 | ForEach-Object {
|
||||
# Write stdout to the Verbose stream
|
||||
Write-Verbose $_
|
||||
|
||||
# Filter for lines that contain a percentage that is greater than the previous one
|
||||
if (
|
||||
(
|
||||
[int]$percent = try {(
|
||||
(
|
||||
$_.Substring(
|
||||
$_.IndexOf("n") + 2,
|
||||
$_.IndexOf("%") - $_.IndexOf("n") - 2
|
||||
).ToCharArray() | Where-Object {$_}
|
||||
) -join ''
|
||||
).TrimStart()} catch {0}
|
||||
) -and $percent -gt $oldpercent
|
||||
){
|
||||
# Update the progress bar
|
||||
$oldpercent = $percent
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
|
||||
}
|
||||
}
|
||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Completed" -PercentComplete 100
|
||||
}
|
||||
|
||||
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Stopping Windows Update Services..." -PercentComplete 10
|
||||
# Stop the Windows Update Services
|
||||
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping BITS..." -PercentComplete 0
|
||||
Stop-Service -Name BITS -Force
|
||||
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping wuauserv..." -PercentComplete 20
|
||||
Stop-Service -Name wuauserv -Force
|
||||
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping appidsvc..." -PercentComplete 40
|
||||
Stop-Service -Name appidsvc -Force
|
||||
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping cryptsvc..." -PercentComplete 60
|
||||
Stop-Service -Name cryptsvc -Force
|
||||
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Completed" -PercentComplete 100
|
||||
|
||||
|
||||
# Remove the QMGR Data file
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Renaming/Removing Files..." -PercentComplete 20
|
||||
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Removing QMGR Data files..." -PercentComplete 0
|
||||
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..."
|
||||
if ($Aggressive) {
|
||||
# Rename the Windows Update Log and Signature Folders
|
||||
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Renaming the Windows Update Log, Download, and Signature Folder..." -PercentComplete 20
|
||||
Rename-Item $env:systemroot\SoftwareDistribution\DataStore DataStore.bak -ErrorAction SilentlyContinue
|
||||
Rename-Item $env:systemroot\System32\Catroot2 catroot2.bak -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Rename the Windows Update Download Folder
|
||||
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Renaming the Windows Update Download Folder..." -PercentComplete 20
|
||||
Rename-Item $env:systemroot\SoftwareDistribution\Download Download.bak -ErrorAction SilentlyContinue
|
||||
|
||||
# Delete the legacy Windows Update Log
|
||||
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Removing the old Windows Update log..." -PercentComplete 80
|
||||
Remove-Item $env:systemroot\WindowsUpdate.log -ErrorAction SilentlyContinue
|
||||
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Completed" -PercentComplete 100
|
||||
|
||||
Write-Host "5. Resetting the Windows Update Services to default settings..."
|
||||
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
|
||||
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
|
||||
|
||||
if ($Aggressive) {
|
||||
# Reset the Security Descriptors on the Windows Update Services
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting the WU Service Security Descriptors..." -PercentComplete 25
|
||||
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the BITS Security Descriptor..." -PercentComplete 0
|
||||
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
|
||||
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the wuauserv Security Descriptor..." -PercentComplete 50
|
||||
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
|
||||
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Completed" -PercentComplete 100
|
||||
}
|
||||
|
||||
|
||||
# Reregister the BITS and Windows Update DLLs
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Reregistering DLLs..." -PercentComplete 40
|
||||
$oldLocation = Get-Location
|
||||
Set-Location $env:systemroot\system32
|
||||
$i = 0
|
||||
$DLLs = @(
|
||||
"atl.dll", "urlmon.dll", "mshtml.dll", "shdocvw.dll", "browseui.dll",
|
||||
"jscript.dll", "vbscript.dll", "scrrun.dll", "msxml.dll", "msxml3.dll",
|
||||
"msxml6.dll", "actxprxy.dll", "softpub.dll", "wintrust.dll", "dssenh.dll",
|
||||
"rsaenh.dll", "gpkcsp.dll", "sccbase.dll", "slbcsp.dll", "cryptdlg.dll",
|
||||
"oleaut32.dll", "ole32.dll", "shell32.dll", "initpki.dll", "wuapi.dll",
|
||||
"wuaueng.dll", "wuaueng1.dll", "wucltui.dll", "wups.dll", "wups2.dll",
|
||||
"wuweb.dll", "qmgr.dll", "qmgrprxy.dll", "wucltux.dll", "muweb.dll", "wuwebv.dll"
|
||||
)
|
||||
foreach ($dll in $DLLs) {
|
||||
Write-Progress -Id 5 -ParentId 0 -Activity "Reregistering DLLs" -Status "Registering $dll..." -PercentComplete ($i / $DLLs.Count * 100)
|
||||
$i++
|
||||
Start-Process -NoNewWindow -FilePath "regsvr32.exe" -ArgumentList "/s", $dll
|
||||
}
|
||||
Set-Location $oldLocation
|
||||
Write-Progress -Id 5 -ParentId 0 -Activity "Reregistering DLLs" -Status "Completed" -PercentComplete 100
|
||||
|
||||
Write-Host "6. Registering some DLLs..."
|
||||
$DLLs = @(
|
||||
"atl.dll", "urlmon.dll", "mshtml.dll", "shdocvw.dll", "browseui.dll",
|
||||
"jscript.dll", "vbscript.dll", "scrrun.dll", "msxml.dll", "msxml3.dll",
|
||||
"msxml6.dll", "actxprxy.dll", "softpub.dll", "wintrust.dll", "dssenh.dll",
|
||||
"rsaenh.dll", "gpkcsp.dll", "sccbase.dll", "slbcsp.dll", "cryptdlg.dll",
|
||||
"oleaut32.dll", "ole32.dll", "shell32.dll", "initpki.dll", "wuapi.dll",
|
||||
"wuaueng.dll", "wuaueng1.dll", "wucltui.dll", "wups.dll", "wups2.dll",
|
||||
"wuweb.dll", "qmgr.dll", "qmgrprxy.dll", "wucltux.dll", "muweb.dll", "wuwebv.dll"
|
||||
)
|
||||
foreach ($dll in $DLLs) {
|
||||
Start-Process -NoNewWindow -FilePath "regsvr32.exe" -ArgumentList "/s", $dll
|
||||
}
|
||||
|
||||
Write-Host "7) Removing WSUS client settings..."
|
||||
if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") {
|
||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f"
|
||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f"
|
||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f"
|
||||
}
|
||||
# Remove the WSUS client settings
|
||||
if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") {
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing WSUS client settings..." -PercentComplete 60
|
||||
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -PercentComplete 0
|
||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f" -RedirectStandardError $true
|
||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f" -RedirectStandardError $true
|
||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f" -RedirectStandardError $true
|
||||
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -Status "Completed" -PercentComplete 100
|
||||
}
|
||||
|
||||
Write-Host "8) Resetting the WinSock..."
|
||||
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"
|
||||
|
||||
Write-Host "9) Delete all BITS jobs..."
|
||||
# Reset WinSock
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting WinSock..." -PercentComplete 65
|
||||
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Resetting WinSock..." -PercentComplete 0
|
||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" -RedirectStandardOutput $true
|
||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" -RedirectStandardOutput $true
|
||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" -RedirectStandardOutput $true
|
||||
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Completed" -PercentComplete 100
|
||||
|
||||
|
||||
# Get and delete all BITS jobs
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Deleting BITS jobs..." -PercentComplete 75
|
||||
Write-Progress -Id 8 -ParentId 0 -Activity "Deleting BITS jobs" -Status "Deleting BITS jobs..." -PercentComplete 0
|
||||
Get-BitsTransfer | Remove-BitsTransfer
|
||||
Write-Progress -Id 8 -ParentId 0 -Activity "Deleting BITS jobs" -Status "Completed" -PercentComplete 100
|
||||
|
||||
Write-Host "10) Attempting to install the Windows Update Agent..."
|
||||
If ([System.Environment]::Is64BitOperatingSystem) {
|
||||
Start-Process -NoNewWindow -FilePath "wusa" -ArgumentList "Windows8-RT-KB2937636-x64", "/quiet"
|
||||
}
|
||||
else {
|
||||
Start-Process -NoNewWindow -FilePath "wusa" -ArgumentList "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
|
||||
# Change the startup type of the Windows Update Services and start them
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Starting Windows Update Services..." -PercentComplete 90
|
||||
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting BITS..." -PercentComplete 0
|
||||
Get-Service BITS | Set-Service -StartupType Manual -PassThru | Start-Service
|
||||
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting wuauserv..." -PercentComplete 25
|
||||
Get-Service wuauserv | Set-Service -StartupType Manual -PassThru | Start-Service
|
||||
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting AppIDSvc..." -PercentComplete 50
|
||||
# The AppIDSvc service is protected, so the startup type has to be changed in the registry
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\AppIDSvc" -Name "Start" -Value "3" # Manual
|
||||
Start-Service AppIDSvc
|
||||
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting CryptSvc..." -PercentComplete 75
|
||||
Get-Service CryptSvc | Set-Service -StartupType Manual -PassThru | Start-Service
|
||||
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Completed" -PercentComplete 100
|
||||
|
||||
Write-Host "12) Forcing discovery..."
|
||||
|
||||
# Force Windows Update to check for updates
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Forcing discovery..." -PercentComplete 95
|
||||
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Forcing discovery..." -PercentComplete 0
|
||||
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
|
||||
Start-Process -NoNewWindow -FilePath "wuauclt" -ArgumentList "/resetauthorization", "/detectnow"
|
||||
|
||||
|
||||
Write-Host "Process complete. Please reboot your computer."
|
||||
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Completed" -PercentComplete 100
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Completed" -PercentComplete 100
|
||||
|
||||
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||
$MessageboxTitle = "Reset Windows Update "
|
||||
@ -86,4 +276,17 @@ Write-Host "12) Forcing discovery..."
|
||||
Write-Host "==============================================="
|
||||
Write-Host "-- Reset All Windows Update Settings to Stock -"
|
||||
Write-Host "==============================================="
|
||||
|
||||
# Remove the progress bars
|
||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Completed
|
||||
Write-Progress -Id 1 -Activity "Scanning for corruption" -Completed
|
||||
Write-Progress -Id 2 -Activity "Stopping Services" -Completed
|
||||
Write-Progress -Id 3 -Activity "Renaming/Removing Files" -Completed
|
||||
Write-Progress -Id 4 -Activity "Resetting the WU Service Security Descriptors" -Completed
|
||||
Write-Progress -Id 5 -Activity "Reregistering DLLs" -Completed
|
||||
Write-Progress -Id 6 -Activity "Removing WSUS client settings" -Completed
|
||||
Write-Progress -Id 7 -Activity "Resetting WinSock" -Completed
|
||||
Write-Progress -Id 8 -Activity "Deleting BITS jobs" -Completed
|
||||
Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed
|
||||
Write-Progress -Id 10 -Activity "Forcing discovery" -Completed
|
||||
}
|
@ -23,7 +23,7 @@ function Invoke-WPFGetInstalled {
|
||||
return
|
||||
}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $checkbox,$DebugPreference -ScriptBlock {
|
||||
Invoke-WPFRunspace -ArgumentList $checkbox -DebugPreference $DebugPreference -ScriptBlock {
|
||||
param($checkbox, $DebugPreference)
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
|
@ -12,6 +12,10 @@ function Invoke-WPFGetIso {
|
||||
return
|
||||
}
|
||||
|
||||
$sync.BusyMessage.Visibility="Visible"
|
||||
$sync.BusyText.Text="N Busy"
|
||||
|
||||
|
||||
Write-Host " _ __ __ _ "
|
||||
Write-Host " /\/\ (_) ___ _ __ ___ / / /\ \ \(_) _ __ "
|
||||
Write-Host " / \ | | / __|| '__| / _ \ \ \/ \/ /| || '_ \ "
|
||||
@ -19,12 +23,17 @@ function Invoke-WPFGetIso {
|
||||
Write-Host "\/ \/|_| \___||_| \___/ \/ \/ |_||_| |_| "
|
||||
|
||||
$oscdimgPath = Join-Path $env:TEMP 'oscdimg.exe'
|
||||
if( ! (Test-Path $oscdimgPath -PathType Leaf) ) {
|
||||
$oscdimgPath = Join-Path '.\releases\' 'oscdimg.exe'
|
||||
}
|
||||
|
||||
$oscdImgFound = [bool] (Get-Command -ErrorAction Ignore -Type Application oscdimg.exe) -or (Test-Path $oscdimgPath -PathType Leaf)
|
||||
Write-Host "oscdimg.exe on system: $oscdImgFound"
|
||||
|
||||
if (!$oscdImgFound)
|
||||
{
|
||||
$downloadFromGitHub = $sync.WPFMicrowinDownloadFromGitHub.IsChecked
|
||||
$sync.BusyMessage.Visibility="Hidden"
|
||||
|
||||
if (!$downloadFromGitHub)
|
||||
{
|
||||
@ -69,6 +78,7 @@ function Invoke-WPFGetIso {
|
||||
if ([string]::IsNullOrEmpty($filePath))
|
||||
{
|
||||
Write-Host "No ISO is chosen"
|
||||
$sync.BusyMessage.Visibility="Hidden"
|
||||
return
|
||||
}
|
||||
|
||||
@ -97,13 +107,38 @@ function Invoke-WPFGetIso {
|
||||
# there is probably a better way of doing this, I don't have time to figure this out
|
||||
$sync.MicrowinIsoDrive.Text = $driveLetter
|
||||
|
||||
$mountedISOPath = (Split-Path -Path $filePath)
|
||||
if ($sync.MicrowinScratchDirBox.Text.Trim() -eq "Scratch") {
|
||||
$sync.MicrowinScratchDirBox.Text =""
|
||||
}
|
||||
|
||||
$UseISOScratchDir = $sync.WPFMicrowinISOScratchDir.IsChecked
|
||||
|
||||
if ($UseISOScratchDir) {
|
||||
$sync.MicrowinScratchDirBox.Text=$mountedISOPath
|
||||
}
|
||||
|
||||
if( -Not $sync.MicrowinScratchDirBox.Text.EndsWith('\') -And $sync.MicrowinScratchDirBox.Text.Length -gt 1) {
|
||||
|
||||
$sync.MicrowinScratchDirBox.Text = Join-Path $sync.MicrowinScratchDirBox.Text.Trim() '\'
|
||||
|
||||
}
|
||||
|
||||
Write-Host "Setting up mount dir and scratch dirs"
|
||||
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
|
||||
$randomNumber = Get-Random -Minimum 1 -Maximum 9999
|
||||
$randomMicrowin = "Microwin_${timestamp}_${randomNumber}"
|
||||
$randomMicrowinScratch = "MicrowinScratch_${timestamp}_${randomNumber}"
|
||||
$sync.BusyText.Text=" - Mounting"
|
||||
Write-Host "Mounting Iso. Please wait."
|
||||
if ($sync.MicrowinScratchDirBox.Text -eq "") {
|
||||
$mountDir = Join-Path $env:TEMP $randomMicrowin
|
||||
$scratchDir = Join-Path $env:TEMP $randomMicrowinScratch
|
||||
} else {
|
||||
$scratchDir = $sync.MicrowinScratchDirBox.Text+"Scrach"
|
||||
$mountDir = $sync.MicrowinScratchDirBox.Text+"micro"
|
||||
}
|
||||
|
||||
$sync.MicrowinMountDir.Text = $mountDir
|
||||
$sync.MicrowinScratchDir.Text = $scratchDir
|
||||
Write-Host "Done setting up mount dir and scratch dirs"
|
||||
@ -138,7 +173,7 @@ function Invoke-WPFGetIso {
|
||||
$imageName = $_.ImageName
|
||||
$sync.MicrowinWindowsFlavors.Items.Add("$imageIdx : $imageName")
|
||||
}
|
||||
$sync.MicrowinWindowsFlavors.SelectedIndex = 0
|
||||
$sync.MicrowinWindowsFlavors.SelectedIndex = 5
|
||||
Get-Volume $driveLetter | Get-DiskImage | Dismount-DiskImage
|
||||
Write-Host "Selected value '$($sync.MicrowinWindowsFlavors.SelectedValue)'....."
|
||||
|
||||
@ -155,6 +190,7 @@ function Invoke-WPFGetIso {
|
||||
Write-Host "*********************************"
|
||||
Write-Host "Check the UI for further steps!!!"
|
||||
|
||||
$sync.BusyMessage.Visibility="Hidden"
|
||||
$sync.ProcessRunning = $false
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ function Invoke-WPFInstall {
|
||||
return
|
||||
}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $WingetInstall,$DebugPreference -ScriptBlock {
|
||||
Invoke-WPFRunspace -ArgumentList $WingetInstall -DebugPreference $DebugPreference -ScriptBlock {
|
||||
param($WingetInstall, $DebugPreference)
|
||||
|
||||
try{
|
||||
|
@ -29,7 +29,7 @@ function Invoke-WPFUnInstall {
|
||||
|
||||
if($confirm -eq "No"){return}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $WingetInstall,$DebugPreference -ScriptBlock {
|
||||
Invoke-WPFRunspace -ArgumentList $WingetInstall -DebugPreference $DebugPreference -ScriptBlock {
|
||||
param($WingetInstall, $DebugPreference)
|
||||
|
||||
try{
|
||||
|
@ -20,7 +20,7 @@ function Invoke-WPFundoall {
|
||||
return
|
||||
}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $Tweaks,$DebugPreference -ScriptBlock {
|
||||
Invoke-WPFRunspace -ArgumentList $Tweaks -DebugPreference $DebugPreference -ScriptBlock {
|
||||
param($Tweaks, $DebugPreference)
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
|
128
scripts/main.ps1
128
scripts/main.ps1
@ -52,57 +52,97 @@ $sync.runspace.Open()
|
||||
|
||||
$inputXML = $inputXML -replace 'mc:Ignorable="d"', '' -replace "x:N", 'N' -replace '^<Win.*', '<Window'
|
||||
|
||||
$organizedData = @{}
|
||||
# Iterate through JSON data and organize by panel and category
|
||||
foreach ($appName in $sync.configs.applications.PSObject.Properties.Name) {
|
||||
$appInfo = $sync.configs.applications.$appName
|
||||
function Get-TabXaml {
|
||||
param( [Parameter(Mandatory=$true)]
|
||||
$tabname
|
||||
)
|
||||
$organizedData = @{}
|
||||
# Iterate through JSON data and organize by panel and category
|
||||
foreach ($appName in $sync.configs.$tabname.PSObject.Properties.Name) {
|
||||
$appInfo = $sync.configs.$tabname.$appName
|
||||
|
||||
# Create an object for the application
|
||||
$appObject = [PSCustomObject]@{
|
||||
Name = $appName
|
||||
Category = $appInfo.Category
|
||||
Content = $appInfo.Content
|
||||
Choco = $appInfo.choco
|
||||
Winget = $appInfo.winget
|
||||
Panel = $appInfo.panel
|
||||
Link = $appInfo.link
|
||||
Description = $appInfo.description
|
||||
# Create an object for the application
|
||||
$appObject = [PSCustomObject]@{
|
||||
Name = $appName
|
||||
Category = $appInfo.Category
|
||||
Content = $appInfo.Content
|
||||
Choco = $appInfo.choco
|
||||
Winget = $appInfo.winget
|
||||
Panel = $appInfo.panel
|
||||
Link = $appInfo.link
|
||||
Description = $appInfo.description
|
||||
# Type is (Checkbox,Toggle,Button,Combobox ) (Default is Checkbox)
|
||||
Type = $appInfo.type
|
||||
ComboItems = $appInfo.ComboItems
|
||||
# Checked is the property to set startup checked status of checkbox (Default is false)
|
||||
Checked = $appInfo.Checked
|
||||
}
|
||||
|
||||
if (-not $organizedData.ContainsKey($appInfo.panel)) {
|
||||
$organizedData[$appInfo.panel] = @{}
|
||||
}
|
||||
|
||||
if (-not $organizedData[$appInfo.panel].ContainsKey($appInfo.Category)) {
|
||||
$organizedData[$appInfo.panel][$appInfo.Category] = @{}
|
||||
}
|
||||
|
||||
# Store application data in a sub-array under the category
|
||||
# Add Order property to keep the original order of tweaks and features
|
||||
$organizedData[$appInfo.panel][$appInfo.Category]["$($appInfo.order)$appName"] = $appObject
|
||||
}
|
||||
|
||||
if (-not $organizedData.ContainsKey($appInfo.panel)) {
|
||||
$organizedData[$appInfo.panel] = @{}
|
||||
}
|
||||
|
||||
if (-not $organizedData[$appInfo.panel].ContainsKey($appInfo.Category)) {
|
||||
$organizedData[$appInfo.panel][$appInfo.Category] = @{}
|
||||
}
|
||||
|
||||
# Store application data in a sub-array under the category
|
||||
$organizedData[$appInfo.panel][$appInfo.Category][$appName] = $appObject
|
||||
}
|
||||
|
||||
# Iterate through organizedData by panel, category, and application
|
||||
foreach ($panel in $organizedData.Keys) {
|
||||
foreach ($category in $organizedData[$panel].Keys) {
|
||||
$blockXml += "<Label Content=""$($category)"" FontSize=""16""/>`n"
|
||||
$sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
|
||||
foreach ($appName in $sortedApps) {
|
||||
$appInfo = $organizedData[$panel][$category][$appName]
|
||||
if ($null -eq $appInfo.Link)
|
||||
{
|
||||
$blockXml += "<CheckBox Name=""$appName"" Content=""$($appInfo.Content)"" ToolTip=""$($appInfo.Description)""/>`n"
|
||||
}
|
||||
else
|
||||
{
|
||||
$blockXml += "<StackPanel Orientation=""Horizontal""><CheckBox Name=""$appName"" Content=""$($appInfo.Content)"" ToolTip=""$($appInfo.Description)"" Margin=""0,0,2,0""/><TextBlock Name=""$($appName)Link"" Style=""{StaticResource HoverTextBlockStyle}"" Text=""(?)"" ToolTip=""$($appInfo.Link)"" /></StackPanel>`n"
|
||||
$panelcount=0
|
||||
# add ColumnDefinitions to evenly draw colums
|
||||
$blockXml="<Grid.ColumnDefinitions>`n"+("<ColumnDefinition Width=""*""/>`n"*($organizedData.Keys.Count))+"</Grid.ColumnDefinitions>`n"
|
||||
# Iterate through organizedData by panel, category, and application
|
||||
foreach ($panel in ($organizedData.Keys | Sort-Object)) {
|
||||
$blockXml += "<Border Grid.Row=""1"" Grid.Column=""$panelcount"">`n<StackPanel Background=""{MainBackgroundColor}"" SnapsToDevicePixels=""True"">`n"
|
||||
$panelcount++
|
||||
foreach ($category in ($organizedData[$panel].Keys | Sort-Object)) {
|
||||
$blockXml += "<Label Content=""$($category -replace '^.__', '')"" FontSize=""16""/>`n"
|
||||
$sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
|
||||
foreach ($appName in $sortedApps) {
|
||||
$appInfo = $organizedData[$panel][$category][$appName]
|
||||
if ("Toggle" -eq $appInfo.Type) {
|
||||
$blockXml += "<StackPanel Orientation=`"Horizontal`" Margin=`"0,10,0,0`">`n<Label Content=`"$($appInfo.Content)`" Style=`"{StaticResource labelfortweaks}`" ToolTip=`"$($appInfo.Description)`" />`n"
|
||||
$blockXml += "<CheckBox Name=`"$($appInfo.Name)`" Style=`"{StaticResource ColorfulToggleSwitchStyle}`" Margin=`"2.5,0`"/>`n</StackPanel>`n"
|
||||
} elseif ("Combobox" -eq $appInfo.Type) {
|
||||
$blockXml += "<StackPanel Orientation=`"Horizontal`" Margin=`"0,5,0,0`">`n<Label Content=`"$($appInfo.Content)`" HorizontalAlignment=`"Left`" VerticalAlignment=`"Center`"/>`n"
|
||||
$blockXml += "<ComboBox Name=`"$($appInfo.Name)`" Height=`"32`" Width=`"186`" HorizontalAlignment=`"Left`" VerticalAlignment=`"Center`" Margin=`"5,5`">`n"
|
||||
$addfirst="IsSelected=`"True`""
|
||||
foreach ($comboitem in ($appInfo.ComboItems -split " ")) {
|
||||
$blockXml += "<ComboBoxItem $addfirst Content=`"$comboitem`"/>`n"
|
||||
$addfirst=""
|
||||
}
|
||||
$blockXml += "</ComboBox>`n</StackPanel>"
|
||||
# If it is a digit, type is button and button length is digits
|
||||
} elseif ($appInfo.Type -match "^[\d\.]+$") {
|
||||
$blockXml += "<Button Name=`"$($appInfo.Name)`" Content=`"$($appInfo.Content)`" HorizontalAlignment = `"Left`" Width=`"$($appInfo.Type)`" Margin=`"5`" Padding=`"20,5`" />`n"
|
||||
# else it is a checkbox
|
||||
} else {
|
||||
$checkedStatus = If ($null -eq $appInfo.Checked) {""} Else {"IsChecked=`"$($appInfo.Checked)`" "}
|
||||
if ($null -eq $appInfo.Link)
|
||||
{
|
||||
$blockXml += "<CheckBox Name=`"$($appInfo.Name)`" Content=`"$($appInfo.Content)`" $($checkedStatus)Margin=`"5,0`" ToolTip=`"$($appInfo.Description)`"/>`n"
|
||||
}
|
||||
else
|
||||
{
|
||||
$blockXml += "<StackPanel Orientation=""Horizontal"">`n<CheckBox Name=""$($appInfo.Name)"" Content=""$($appInfo.Content)"" $($checkedStatus)ToolTip=""$($appInfo.Description)"" Margin=""0,0,2,0""/><TextBlock Name=""$($appInfo.Name)Link"" Style=""{StaticResource HoverTextBlockStyle}"" Text=""(?)"" ToolTip=""$($appInfo.Link)"" />`n</StackPanel>`n"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$blockXml +="`n</StackPanel>`n</Border>`n"
|
||||
}
|
||||
|
||||
$inputXML = $inputXML -replace "{{InstallPanel$panel}}", $blockXml
|
||||
$blockXml = ""
|
||||
return ($blockXml)
|
||||
}
|
||||
|
||||
$tabcolums=Get-TabXaml "applications"
|
||||
$inputXML = $inputXML -replace "{{InstallPanel_applications}}", ($tabcolums)
|
||||
$tabcolums=Get-TabXaml "tweaks"
|
||||
$inputXML = $inputXML -replace "{{InstallPanel_tweaks}}", ($tabcolums)
|
||||
$tabcolums=Get-TabXaml "feature"
|
||||
$inputXML = $inputXML -replace "{{InstallPanel_features}}", ($tabcolums)
|
||||
|
||||
if ((Get-WinUtilToggleStatus WPFToggleDarkMode) -eq $True) {
|
||||
$ctttheme = 'Matrix'
|
||||
}
|
||||
|
5392
winutil.ps1
5392
winutil.ps1
File diff suppressed because it is too large
Load Diff
@ -700,38 +700,7 @@
|
||||
<ScrollViewer Grid.Row="1" Grid.Column="0" Padding="-1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
|
||||
BorderBrush="Transparent" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Grid.Row="1" Grid.Column="0">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
{{InstallPanel0}}
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="1" Grid.Column="1">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True" >
|
||||
{{InstallPanel1}}
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="1" Grid.Column="2">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
{{InstallPanel2}}
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="1" Grid.Column="3">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
{{InstallPanel3}}
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="1" Grid.Column="4">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
{{InstallPanel4}}
|
||||
</StackPanel>
|
||||
</Border>
|
||||
{{InstallPanel_applications}}
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
|
||||
@ -740,15 +709,12 @@
|
||||
<TabItem Header="Tweaks" Visibility="Collapsed" Name="WPFTab2">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<Grid Background="Transparent">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width=".50*"/>
|
||||
<ColumnDefinition Width=".50*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="55"/>
|
||||
<RowDefinition Height=".70*"/>
|
||||
<RowDefinition Height=".10*"/>
|
||||
</Grid.RowDefinitions>
|
||||
{{InstallPanel_tweaks}}
|
||||
<StackPanel Background="{MainBackgroundColor}" Orientation="Horizontal" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="10">
|
||||
<Label Content="Recommended Selections:" FontSize="14" VerticalAlignment="Center"/>
|
||||
<Button Name="WPFdesktop" Content=" Desktop " Margin="1"/>
|
||||
@ -766,151 +732,13 @@
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Grid.Column="0">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
<Label FontSize="16" Content="Essential Tweaks"/>
|
||||
<CheckBox Name="WPFTweaksRestorePoint" Content="Create Restore Point" Margin="5,0" ToolTip="Creates a restore point at runtime in case a revert is needed from WinUtil modifications" IsChecked="True"/>
|
||||
<CheckBox Name="WPFTweaksOO" Content="Run OO Shutup" Margin="5,0" ToolTip="Runs OO Shutup from https://www.oo-software.com/en/shutup10"/>
|
||||
<CheckBox Name="WPFTweaksTele" Content="Disable Telemetry" Margin="5,0" ToolTip="Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser."/>
|
||||
<CheckBox Name="WPFTweaksWifi" Content="Disable Wifi-Sense" Margin="5,0" ToolTip="Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location."/>
|
||||
<CheckBox Name="WPFTweaksAH" Content="Disable Activity History" Margin="5,0" ToolTip="This erases recent docs, clipboard, and run history."/>
|
||||
<CheckBox Name="WPFTweaksDeleteTempFiles" Content="Delete Temporary Files" Margin="5,0" ToolTip="Erases TEMP Folders"/>
|
||||
<CheckBox Name="WPFTweaksDiskCleanup" Content="Run Disk Cleanup" Margin="5,0" ToolTip="Runs Disk Cleanup on Drive C: and removes old Windows Updates."/>
|
||||
<CheckBox Name="WPFTweaksLoc" Content="Disable Location Tracking" Margin="5,0" ToolTip="Disables Location Tracking...DUH!"/>
|
||||
<CheckBox Name="WPFTweaksHome" Content="Disable Homegroup" Margin="5,0" ToolTip="Disables HomeGroup - Windows 11 doesn't have this, it was awful."/>
|
||||
<CheckBox Name="WPFTweaksStorage" Content="Disable Storage Sense" Margin="5,0" ToolTip="Storage Sense deletes temp files automatically."/>
|
||||
<CheckBox Name="WPFTweaksHiber" Content="Disable Hibernation" Margin="5,0" ToolTip="Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation."/>
|
||||
<CheckBox Name="WPFTweaksDVR" Content="Disable GameDVR" Margin="5,0" ToolTip="GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd."/>
|
||||
<CheckBox Name="WPFTweaksTeredo" Content="Disable Teredo" Margin="5,0" ToolTip="Teredo network tunneling is a ipv6 feature that can cause additional latancy."/>
|
||||
<CheckBox Name="WPFTweaksServices" Content="Set Services to Manual" Margin="5,0" ToolTip="Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand."/>
|
||||
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
<Label FontSize="16" Content="Advanced Tweaks - CAUTION"/>
|
||||
<CheckBox Name="WPFTweaksDisplay" Content="Set Display for Performance" Margin="5,0" ToolTip="Sets the system preferences to performance. You can do this manually with sysdm.cpl as well."/>
|
||||
<CheckBox Name="WPFTweaksUTC" Content="Set Time to UTC (Dual Boot)" Margin="5,0" ToolTip="Essential for computers that are dual booting. Fixes the time sync with Linux Systems."/>
|
||||
<CheckBox Name="WPFTweaksDisableUAC" Content="Disable UAC" Margin="5,0" ToolTip="Disables User Account Control. Only recommended for Expert Users."/>
|
||||
<CheckBox Name="WPFTweaksDisableNotifications" Content="Disable Notification Tray/Calendar" Margin="5,0" ToolTip="Disables all Notifications INCLUDING Calendar"/>
|
||||
<CheckBox Name="WPFTweaksDeBloat" Content="Remove ALL MS Store Apps - NOT RECOMMENDED" Margin="5,0" ToolTip="USE WITH CAUTION!!!!! This will remove ALL Microsoft store apps other than the essentials to make winget work. Games installed by MS Store ARE INCLUDED!"/>
|
||||
<CheckBox Name="WPFTweaksRemoveEdge" Content="Remove Microsoft Edge - NOT RECOMMENDED" Margin="5,0" ToolTip="Removes MS Edge when it gets reinstalled by updates."/>
|
||||
<CheckBox Name="WPFTweaksRemoveOnedrive" Content="Remove OneDrive" Margin="5,0" ToolTip="Copies OneDrive files to Default Home Folders and Uninstalls it."/>
|
||||
<CheckBox Name="WPFTweaksRightClickMenu" Content="Set Classic Right-Click Menu " Margin="5,0" ToolTip="Great Windows 11 tweak to bring back good context menus when right clicking things in explorer."/>
|
||||
<CheckBox Name="WPFTweaksDisableipsix" Content="Disable IPv6" Margin="5,0" ToolTip="Disables IPv6."/>
|
||||
<CheckBox Name="WPFTweaksEnableipsix" Content="Enable IPv6" Margin="5,0" ToolTip="Enables IPv6."/>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,5,0,0">
|
||||
<Label Content="DNS" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<ComboBox Name="WPFchangedns" Height="32" Width="186" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="5,5">
|
||||
<ComboBoxItem IsSelected="True" Content = "Default"/>
|
||||
<ComboBoxItem Content="DHCP"/>
|
||||
<ComboBoxItem Content="Google"/>
|
||||
<ComboBoxItem Content="Cloudflare"/>
|
||||
<ComboBoxItem Content="Cloudflare_Malware"/>
|
||||
<ComboBoxItem Content="Cloudflare_Malware_Adult"/>
|
||||
<ComboBoxItem Content="Level3"/>
|
||||
<ComboBoxItem Content="Open_DNS"/>
|
||||
<ComboBoxItem Content="Quad9"/>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
|
||||
<Button Name="WPFTweaksbutton" Content="Run Tweaks" HorizontalAlignment = "Left" Width="160" Margin="0,15,0,0"/>
|
||||
<Button Name="WPFUndoall" Content="Undo Selected Tweaks" HorizontalAlignment = "Left" Width="160" Margin="0,10,0,0"/>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Grid.Column="1">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
<Label FontSize="16" Content="Customize Preferences"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||
<Label Content="Dark Theme" Style="{StaticResource labelfortweaks}" ToolTip="Enable/Disable Dark Mode." />
|
||||
<CheckBox Name="WPFToggleDarkMode" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||
<Label Content="Bing Search in Start Menu" Style="{StaticResource labelfortweaks}" ToolTip= "If enable then includes web search results from Bing in your Start Menu search." />
|
||||
<CheckBox Name="WPFToggleBingSearch" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||
<Label Content="NumLock on Startup" Style="{StaticResource labelfortweaks}" ToolTip= "Toggle the Num Lock key state when your computer starts."/>
|
||||
<CheckBox Name="WPFToggleNumLock" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||
<Label Content="Verbose Logon Messages" Style="{StaticResource labelfortweaks}" ToolTip="Show detailed messages during the login process for troubleshooting and diagnostics."/>
|
||||
<CheckBox Name="WPFToggleVerboseLogon" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||
<Label Content="Show File Extensions" Style="{StaticResource labelfortweaks}" ToolTip="If enabled then File extensions (e.g., .txt, .jpg) are visible." />
|
||||
<CheckBox Name="WPFToggleShowExt" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||
<Label Content="Snap Assist Flyout" Style="{StaticResource labelfortweaks}" ToolTip="If enabled then File extensions (e.g., .txt, .jpg) are visible." />
|
||||
<CheckBox Name="WPFToggleSnapFlyout" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||
<Label Content="Mouse Acceleration" Style="{StaticResource labelfortweaks}" ToolTip="If Enabled then Cursor movement is affected by the speed of your physical mouse movements."/>
|
||||
<CheckBox Name="WPFToggleMouseAcceleration" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<Label FontSize="16" Content="Performance Plans" />
|
||||
<Button Name="WPFAddUltPerf" Content="Add and Activate Ultimate Performance Profile" HorizontalAlignment = "Left" Margin="5,2" Width="300"/>
|
||||
<Button Name="WPFRemoveUltPerf" Content="Remove Ultimate Performance Profile" HorizontalAlignment = "Left" Margin="5,2" Width="300"/>
|
||||
<Label FontSize="16" Content="Shortcuts" />
|
||||
<Button Name="WPFWinUtilShortcut" Content="Create WinUtil Shortcut" HorizontalAlignment = "Left" Margin="5,0" Padding="20,5" Width="300"/>
|
||||
|
||||
</StackPanel> <!-- End of Customize Preferences Section -->
|
||||
</Border>
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
<TabItem Header="Config" Visibility="Collapsed" Name="WPFTab3">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<Grid Background="Transparent">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Grid.Row="0" Grid.Column="0">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
<Label Content="Features" FontSize="16"/>
|
||||
<CheckBox Name="WPFFeaturesdotnet" Content="All .Net Framework (2,3,4)" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeatureshyperv" Content="HyperV Virtualization" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeatureslegacymedia" Content="Legacy Media (WMP, DirectPlay)" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeaturenfs" Content="NFS - Network File System" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeatureEnableSearchSuggestions" Content="Enable Search Box Web Suggestions in Registry(explorer restart)" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeatureDisableSearchSuggestions" Content="Disable Search Box Web Suggestions in Registry(explorer restart)" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeatureRegBackup" Content="Enable Daily Registry Backup Task 12.30am" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeatureEnableLegacyRecovery" Content="Enable Legacy F8 Boot Recovery" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeatureDisableLegacyRecovery" Content="Disable Legacy F8 Boot Recovery" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeaturewsl" Content="Windows Subsystem for Linux" Margin="5,0"/>
|
||||
<CheckBox Name="WPFFeaturesandbox" Content="Windows Sandbox" Margin="5,0"/>
|
||||
<Button Name="WPFFeatureInstall" FontSize="14" Content="Install Features" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="150"/>
|
||||
<Label Content="Fixes" FontSize="16"/>
|
||||
<Button Name="WPFPanelAutologin" FontSize="14" Content="Set Up Autologin" HorizontalAlignment = "Left" Margin="5,2" Padding="20,5" Width="300"/>
|
||||
<Button Name="WPFFixesUpdate" FontSize="14" Content="Reset Windows Update" HorizontalAlignment = "Left" Margin="5,2" Padding="20,5" Width="300"/>
|
||||
<Button Name="WPFFixesNetwork" FontSize="14" Content="Reset Network" HorizontalAlignment = "Left" Margin="5,2" Padding="20,5" Width="300"/>
|
||||
<Button Name="WPFPanelDISM" FontSize="14" Content="System Corruption Scan" HorizontalAlignment = "Left" Margin="5,2" Padding="20,5" Width="300"/>
|
||||
<Button Name="WPFFixesWinget" FontSize="14" Content="WinGet Reinstall" HorizontalAlignment = "Left" Margin="5,2" Padding="20,5" Width="300"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="0" Grid.Column="1">
|
||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||
<Label Content="Legacy Windows Panels" FontSize="16"/>
|
||||
<Button Name="WPFPanelcontrol" FontSize="14" Content="Control Panel" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="200"/>
|
||||
<Button Name="WPFPanelnetwork" FontSize="14" Content="Network Connections" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="200"/>
|
||||
<Button Name="WPFPanelpower" FontSize="14" Content="Power Panel" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="200"/>
|
||||
<Button Name="WPFPanelregion" FontSize="14" Content="Region" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="200"/>
|
||||
<Button Name="WPFPanelsound" FontSize="14" Content="Sound Settings" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="200"/>
|
||||
<Button Name="WPFPanelsystem" FontSize="14" Content="System Properties" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="200"/>
|
||||
<Button Name="WPFPaneluser" FontSize="14" Content="User Accounts" HorizontalAlignment = "Left" Margin="5" Padding="20,5" Width="200"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
{{InstallPanel_features}}
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
@ -964,6 +792,22 @@
|
||||
Choose a Windows ISO file that you've downloaded <LineBreak/>
|
||||
Check the status in the console
|
||||
</TextBlock>
|
||||
<CheckBox x:Name="WPFMicrowinISOScratchDir" Content="Use ISO directory for ScratchDir " IsChecked="False" Margin="1"
|
||||
ToolTip="Use ISO directory for ScratchDir " />
|
||||
|
||||
<Button Name="MicrowinScratchDirBT" Margin="2" Padding="1">
|
||||
<Button.Content>
|
||||
<TextBox Name="MicrowinScratchDirBox" Background="Transparent" BorderBrush="{MainForegroundColor}"
|
||||
Text="Scratch" Padding="0"
|
||||
ToolTip="Alt Path For Scratch Directory" BorderThickness="1"
|
||||
Margin="0,0,0,3" HorizontalAlignment="Left"
|
||||
IsReadOnly="False"
|
||||
Height="Auto"
|
||||
Width="110"
|
||||
Foreground="{ButtonForegroundColor}"
|
||||
/>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
<TextBox Name="MicrowinFinalIsoLocation" Background="Transparent" BorderBrush="{MainForegroundColor}"
|
||||
Text="ISO location will be printed here"
|
||||
Margin="2"
|
||||
@ -1017,6 +861,12 @@
|
||||
Grid.Row="0" Grid.Column="1">
|
||||
<StackPanel HorizontalAlignment="Left" Background="{MainBackgroundColor}" SnapsToDevicePixels="True" Visibility="Visible">
|
||||
|
||||
<Grid Name = "BusyMessage" Visibility="Collapsed">
|
||||
<TextBlock Name = "BusyText" Text="NBusy" Padding="22,2,1,1" />
|
||||
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontFamily="Segoe MDL2 Assets"
|
||||
FontSize="14" Margin="16,0,0,0"></TextBlock>
|
||||
</Grid>
|
||||
|
||||
<TextBlock x:Name = "asciiTextBlock"
|
||||
xml:space ="preserve"
|
||||
HorizontalAlignment = "Center"
|
||||
|
Loading…
Reference in New Issue
Block a user