mirror of
https://github.com/ChrisTitusTech/winutil
synced 2026-02-04 15:00:09 +00:00
Compare commits
22 Commits
7d1fb52277
...
b265675560
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b265675560 | ||
|
|
e0237642c8 | ||
|
|
aedaa2f789 | ||
|
|
8c2f9075a0 | ||
|
|
c9e6861ad4 | ||
|
|
43ec73684e | ||
|
|
bfbb643543 | ||
|
|
067ec31086 | ||
|
|
63221a7cb9 | ||
|
|
7e40d379d8 | ||
|
|
c766c974cf | ||
|
|
7d2804c706 | ||
|
|
2ee9047dd6 | ||
|
|
21c49d6a75 | ||
|
|
351a77043e | ||
|
|
c8bb38f3a9 | ||
|
|
5fb5e43cc7 | ||
|
|
eeb410e985 | ||
|
|
8eaf6ddd9c | ||
|
|
3c54e0ea3f | ||
|
|
d17e8bcd98 | ||
|
|
ef1fc2ae59 |
@@ -79,7 +79,7 @@ You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` scri
|
||||
|
||||
These are the sponsors that help keep this project alive with monthly contributions.
|
||||
|
||||
<!-- sponsors --><a href="https://github.com/TriHydera"><img src="https://github.com/TriHydera.png" width="60px" alt="User avatar: TriHydera" /></a><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/realmuddy"><img src="https://github.com/realmuddy.png" width="60px" alt="User avatar: Phillip Waters" /></a><a href="https://github.com/quaszi"><img src="https://github.com/quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/novello-dev"><img src="https://github.com/novello-dev.png" width="60px" alt="User avatar: João Pedro Novello" /></a><!-- sponsors -->
|
||||
<!-- sponsors --><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/realmuddy"><img src="https://github.com/realmuddy.png" width="60px" alt="User avatar: Phillip Waters" /></a><a href="https://github.com/quaszi"><img src="https://github.com/quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/novello-dev"><img src="https://github.com/novello-dev.png" width="60px" alt="User avatar: João Pedro Novello" /></a><!-- sponsors -->
|
||||
|
||||
## 🏅 Thanks to all Contributors
|
||||
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
||||
|
||||
@@ -143,6 +143,15 @@
|
||||
"link": "https://github.com/sharkdp/bat",
|
||||
"winget": "sharkdp.bat"
|
||||
},
|
||||
"beeper": {
|
||||
"category": "Communications",
|
||||
"choco": "na",
|
||||
"content": "Beeper",
|
||||
"description": "All your chats in one app",
|
||||
"link": "https://www.beeper.com/",
|
||||
"winget": "Beeper.Beeper"
|
||||
},
|
||||
|
||||
"bitwarden": {
|
||||
"category": "Utilities",
|
||||
"choco": "bitwarden",
|
||||
@@ -511,6 +520,14 @@
|
||||
"link": "https://emulationstation.org/",
|
||||
"winget": "Emulationstation.Emulationstation"
|
||||
},
|
||||
"enteauth": {
|
||||
"category": "Utilities",
|
||||
"choco": "ente-auth",
|
||||
"content": "Ente Auth",
|
||||
"description": "Ente Auth is a free, cross-platform, end-to-end encrypted authenticator app.",
|
||||
"link": "https://ente.io/auth/",
|
||||
"winget": "ente-io.auth-desktop"
|
||||
},
|
||||
"epicgames": {
|
||||
"category": "Games",
|
||||
"choco": "epicgameslauncher",
|
||||
@@ -1703,13 +1720,13 @@
|
||||
"link": "https://bitsum.com/",
|
||||
"winget": "BitSum.ProcessLasso"
|
||||
},
|
||||
"spotify": {
|
||||
"category": "Multimedia Tools",
|
||||
"choco": "spotify",
|
||||
"content": "Spotify",
|
||||
"description": "Spotify is a digital music service that gives you access to millions of songs, podcasts, and videos from artists all over the world.",
|
||||
"link": "https://www.spotify.com/",
|
||||
"winget": "Spotify.Spotify"
|
||||
"protonauth": {
|
||||
"category": "Utilities",
|
||||
"choco": "protonauth",
|
||||
"content": "Proton Authenticator",
|
||||
"description": "2FA app from Proton to securely sync and backup 2FA codes.",
|
||||
"link": "https://proton.me/authenticator",
|
||||
"winget": "Proton.ProtonAuthenticator"
|
||||
},
|
||||
"processmonitor": {
|
||||
"category": "Microsoft Tools",
|
||||
|
||||
@@ -46,23 +46,5 @@
|
||||
"Secondary": "94.140.15.16",
|
||||
"Primary6": "2a10:50c0::bad1:ff",
|
||||
"Secondary6": "2a10:50c0::bad2:ff"
|
||||
},
|
||||
"dns0.eu_Open":{
|
||||
"Primary": "193.110.81.254",
|
||||
"Secondary": "185.253.5.254",
|
||||
"Primary6": "2a0f:fc80::ffff",
|
||||
"Secondary6": "2a0f:fc81::ffff"
|
||||
},
|
||||
"dns0.eu_ZERO":{
|
||||
"Primary": "193.110.81.9",
|
||||
"Secondary": "185.253.5.9",
|
||||
"Primary6": "2a0f:fc80::9",
|
||||
"Secondary6": "2a0f:fc81::9"
|
||||
},
|
||||
"dns0.eu_KIDS":{
|
||||
"Primary": "193.110.81.1",
|
||||
"Secondary": "185.253.5.1",
|
||||
"Primary6": "2a0f:fc80::1",
|
||||
"Secondary6": "2a0f:fc81::1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,42 +81,6 @@
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/features/features/nfs"
|
||||
},
|
||||
"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": [
|
||||
"
|
||||
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
|
||||
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
|
||||
}
|
||||
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
|
||||
Stop-Process -name explorer -force
|
||||
"
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/features/features/enablesearchsuggestions"
|
||||
},
|
||||
"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": [
|
||||
"
|
||||
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
|
||||
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
|
||||
}
|
||||
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
|
||||
Stop-Process -name explorer -force
|
||||
"
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/features/features/disablesearchsuggestions"
|
||||
},
|
||||
"WPFFeatureRegBackup": {
|
||||
"Content": "Enable Daily Registry Backup Task 12.30am",
|
||||
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
||||
@@ -306,7 +270,6 @@
|
||||
"ButtonWidth": "300",
|
||||
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/user"
|
||||
},
|
||||
|
||||
"WPFPanelSystem": {
|
||||
"Content": "System Properties",
|
||||
"category": "Legacy Windows Panels",
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
{
|
||||
"Standard": [
|
||||
"WPFTweaksAH",
|
||||
"WPFTweaksActivity",
|
||||
"WPFTweaksConsumerFeatures",
|
||||
"WPFTweaksDisableExplorerAutoDiscovery",
|
||||
"WPFTweaksDVR",
|
||||
"WPFTweaksHome",
|
||||
"WPFTweaksLoc",
|
||||
"WPFTweaksServices",
|
||||
"WPFTweaksStorage",
|
||||
@@ -19,7 +18,6 @@
|
||||
"Minimal": [
|
||||
"WPFTweaksConsumerFeatures",
|
||||
"WPFTweaksDisableExplorerAutoDiscovery",
|
||||
"WPFTweaksHome",
|
||||
"WPFTweaksServices",
|
||||
"WPFTweaksTele"
|
||||
]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"WPFTweaksAH": {
|
||||
"WPFTweaksActivity": {
|
||||
"Content": "Disable Activity History",
|
||||
"Description": "This erases recent docs, clipboard, and run history.",
|
||||
"category": "Essential Tweaks",
|
||||
@@ -63,9 +63,9 @@
|
||||
"WPFTweaksLaptopHibernation": {
|
||||
"Content": "Set Hibernation as default (good for laptops)",
|
||||
"Description": "Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399",
|
||||
"category": "Essential Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a014_",
|
||||
"Order": "a027_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Power\\PowerSettings\\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0",
|
||||
@@ -108,26 +108,6 @@
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/laptophibernation"
|
||||
},
|
||||
"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": "a005_",
|
||||
"service": [
|
||||
{
|
||||
"Name": "HomeGroupListener",
|
||||
"StartupType": "Manual",
|
||||
"OriginalType": "Automatic"
|
||||
},
|
||||
{
|
||||
"Name": "HomeGroupProvider",
|
||||
"StartupType": "Manual",
|
||||
"OriginalType": "Automatic"
|
||||
}
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/home"
|
||||
},
|
||||
"WPFTweaksLoc": {
|
||||
"Content": "Disable Location Tracking",
|
||||
"Description": "Disables Location Tracking...DUH!",
|
||||
@@ -1552,11 +1532,11 @@
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/services"
|
||||
},
|
||||
"WPFTweaksBraveDebloat": {
|
||||
"Content": "Debloat Brave",
|
||||
"Content": "Brave Debloat",
|
||||
"Description": "Disables various annoyances like Brave Rewards,Leo AI,Crypto Wallet and VPN",
|
||||
"category": "Essential Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a016_",
|
||||
"Order": "a022_",
|
||||
"registry": [
|
||||
{
|
||||
"Path":"HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave",
|
||||
@@ -1589,11 +1569,11 @@
|
||||
]
|
||||
},
|
||||
"WPFTweaksEdgeDebloat": {
|
||||
"Content": "Debloat Edge",
|
||||
"Content": "Edge Debloat",
|
||||
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
|
||||
"category": "Essential Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a016_",
|
||||
"Order": "a022_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
|
||||
@@ -2323,9 +2303,8 @@
|
||||
"Microsoft.MinecraftUWP",
|
||||
"Microsoft.GamingServices",
|
||||
"Microsoft.GetHelp",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.GetStarted",
|
||||
"Microsoft.Messaging",
|
||||
"Microsoft.Microsoft3DViewer",
|
||||
"Microsoft.MicrosoftSolitaireCollection",
|
||||
"Microsoft.NetworkSpeedTest",
|
||||
"Microsoft.News",
|
||||
@@ -2339,7 +2318,7 @@
|
||||
"Microsoft.Wallet",
|
||||
"Microsoft.Whiteboard",
|
||||
"Microsoft.WindowsAlarms",
|
||||
"microsoft.windowscommunicationsapps",
|
||||
"Microsoft.WindowsCommunicationsApps",
|
||||
"Microsoft.WindowsFeedbackHub",
|
||||
"Microsoft.WindowsMaps",
|
||||
"Microsoft.WindowsSoundRecorder",
|
||||
@@ -2348,7 +2327,6 @@
|
||||
"Microsoft.MixedReality.Portal",
|
||||
"Microsoft.ZuneMusic",
|
||||
"Microsoft.ZuneVideo",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.MicrosoftOfficeHub",
|
||||
"*EclipseManager*",
|
||||
"*ActiproSoftwareLLC*",
|
||||
@@ -2369,7 +2347,7 @@
|
||||
"*ACGMediaPlayer*",
|
||||
"*Netflix*",
|
||||
"*OneCalendar*",
|
||||
"*LinkedInforWindows*",
|
||||
"*LinkedInForWindows*",
|
||||
"*HiddenCityMysteryofShadows*",
|
||||
"*Hulu*",
|
||||
"*HiddenCity*",
|
||||
@@ -2472,40 +2450,23 @@
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a006_",
|
||||
"InvokeScript": [
|
||||
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
|
||||
$name = \"TaskbarEndTask\"
|
||||
$value = 1
|
||||
|
||||
# Ensure the registry key exists
|
||||
if (-not (Test-Path $path)) {
|
||||
New-Item -Path $path -Force | Out-Null
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings",
|
||||
"Name": "TaskbarEndTask",
|
||||
"Type": "DWord",
|
||||
"Value": "1",
|
||||
"OriginalValue": "<RemoveEntry>"
|
||||
}
|
||||
|
||||
# Set the property, creating it if it doesn't exist
|
||||
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
|
||||
],
|
||||
"UndoScript": [
|
||||
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
|
||||
$name = \"TaskbarEndTask\"
|
||||
$value = 0
|
||||
|
||||
# Ensure the registry key exists
|
||||
if (-not (Test-Path $path)) {
|
||||
New-Item -Path $path -Force | Out-Null
|
||||
}
|
||||
|
||||
# Set the property, creating it if it doesn't exist
|
||||
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/endtaskontaskbar"
|
||||
},
|
||||
"WPFTweaksPowershell7": {
|
||||
"Content": "Change Windows Terminal default: PowerShell 5 -> PowerShell 7",
|
||||
"Description": "This will edit the config file of the Windows Terminal replacing PowerShell 5 with PowerShell 7 and installing PS7 if necessary",
|
||||
"category": "Essential Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a009_",
|
||||
"Order": "a022_",
|
||||
"InvokeScript": [
|
||||
"Invoke-WPFTweakPS7 -action \"PS7\""
|
||||
],
|
||||
@@ -2534,11 +2495,14 @@
|
||||
"category": "Essential Tweaks",
|
||||
"panel": "1",
|
||||
"Order": "a005_",
|
||||
"InvokeScript": [
|
||||
"Set-ItemProperty -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy\" -Name \"01\" -Value 0 -Type Dword -Force"
|
||||
],
|
||||
"UndoScript": [
|
||||
"Set-ItemProperty -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy\" -Name \"01\" -Value 1 -Type Dword -Force"
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy",
|
||||
"Name": "01",
|
||||
"Type": "DWord",
|
||||
"Value": "0",
|
||||
"OriginalValue": "1"
|
||||
}
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/storage"
|
||||
},
|
||||
@@ -2626,9 +2590,9 @@
|
||||
"WPFTweaksRecallOff": {
|
||||
"Content": "Disable Recall",
|
||||
"Description": "Turn Recall off",
|
||||
"category": "Essential Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a011_",
|
||||
"Order": "a025_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsAI",
|
||||
@@ -2854,7 +2818,7 @@
|
||||
"Description": "Blocks ALL Razer Software installations. The hardware works fine without any software. WARNING: this will also block all Windows third-party driver installations.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a032_",
|
||||
"Order": "a021_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DriverSearching",
|
||||
@@ -3072,102 +3036,26 @@
|
||||
"Order": "a021_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
# Define the URL of the remote HOSTS file and the local paths
|
||||
$remoteHostsUrl = \"https://raw.githubusercontent.com/Ruddernation-Designs/Adobe-URL-Block-List/master/hosts\"
|
||||
$localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\"
|
||||
$tempHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\temp_hosts\"
|
||||
$hostsUrl = \"https://github.com/Ruddernation-Designs/Adobe-URL-Block-List/raw/refs/heads/master/hosts\"
|
||||
$hosts = \"$env:SystemRoot\\System32\\drivers\\etc\\hosts\"
|
||||
|
||||
# Download the remote HOSTS file to a temporary location
|
||||
try {
|
||||
Invoke-WebRequest -Uri $remoteHostsUrl -OutFile $tempHostsPath
|
||||
Write-Output \"Downloaded the remote HOSTS file to a temporary location.\"
|
||||
} catch {
|
||||
Write-Error \"Failed to download the HOSTS file. Error: $_\"
|
||||
}
|
||||
Copy-Item $hosts \"$hosts.bak\"
|
||||
Invoke-WebRequest $hostsUrl -OutFile $hosts
|
||||
ipconfig flushdns
|
||||
|
||||
# Check if the AdobeNetBlock has already been started
|
||||
try {
|
||||
$localHostsContent = Get-Content $localHostsPath -ErrorAction Stop
|
||||
|
||||
# Check if AdobeNetBlock markers exist
|
||||
$blockStartExists = $localHostsContent -like \"*#AdobeNetBlock-start*\"
|
||||
if ($blockStartExists) {
|
||||
Write-Output \"AdobeNetBlock-start already exists. Skipping addition of new block.\"
|
||||
} else {
|
||||
# Load the new block from the downloaded file
|
||||
$newBlockContent = Get-Content $tempHostsPath -ErrorAction Stop
|
||||
$newBlockContent = $newBlockContent | Where-Object { $_ -notmatch \"^\\s*#\" -and $_ -ne \"\" } # Exclude empty lines and comments
|
||||
$newBlockHeader = \"#AdobeNetBlock-start\"
|
||||
$newBlockFooter = \"#AdobeNetBlock-end\"
|
||||
|
||||
# Combine the contents, ensuring new block is properly formatted
|
||||
$combinedContent = $localHostsContent + $newBlockHeader, $newBlockContent, $newBlockFooter | Out-String
|
||||
|
||||
# Write the combined content back to the original HOSTS file
|
||||
$combinedContent | Set-Content $localHostsPath -Encoding ASCII
|
||||
Write-Output \"Successfully added the AdobeNetBlock.\"
|
||||
}
|
||||
} catch {
|
||||
Write-Error \"Error during processing: $_\"
|
||||
}
|
||||
|
||||
# Clean up temporary file
|
||||
Remove-Item $tempHostsPath -ErrorAction Ignore
|
||||
|
||||
# Flush the DNS resolver cache
|
||||
try {
|
||||
Invoke-Expression \"ipconfig /flushdns\"
|
||||
Write-Output \"DNS cache flushed successfully.\"
|
||||
} catch {
|
||||
Write-Error \"Failed to flush DNS cache. Error: $_\"
|
||||
}
|
||||
Write-Host \"Added Adobe url block list from host file\"
|
||||
"
|
||||
],
|
||||
"UndoScript": [
|
||||
"
|
||||
# Define the local path of the HOSTS file
|
||||
$localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\"
|
||||
$hosts = \"$env:SystemRoot\\System32\\drivers\\etc\\hosts\"
|
||||
$backup = \"$hosts.bak\"
|
||||
|
||||
# Load the content of the HOSTS file
|
||||
try {
|
||||
$hostsContent = Get-Content $localHostsPath -ErrorAction Stop
|
||||
} catch {
|
||||
Write-Error \"Failed to load the HOSTS file. Error: $_\"
|
||||
return
|
||||
}
|
||||
Copy-Item $backup $hosts
|
||||
Remove-Item $backup
|
||||
ipconfig flushdns
|
||||
|
||||
# Initialize flags and buffer for new content
|
||||
$recording = $true
|
||||
$newContent = @()
|
||||
|
||||
# Iterate over each line of the HOSTS file
|
||||
foreach ($line in $hostsContent) {
|
||||
if ($line -match \"#AdobeNetBlock-start\") {
|
||||
$recording = $false
|
||||
}
|
||||
if ($recording) {
|
||||
$newContent += $line
|
||||
}
|
||||
if ($line -match \"#AdobeNetBlock-end\") {
|
||||
$recording = $true
|
||||
}
|
||||
}
|
||||
|
||||
# Write the filtered content back to the HOSTS file
|
||||
try {
|
||||
$newContent | Set-Content $localHostsPath -Encoding ASCII
|
||||
Write-Output \"Successfully removed the AdobeNetBlock section from the HOSTS file.\"
|
||||
} catch {
|
||||
Write-Error \"Failed to write back to the HOSTS file. Error: $_\"
|
||||
}
|
||||
|
||||
# Flush the DNS resolver cache
|
||||
try {
|
||||
Invoke-Expression \"ipconfig /flushdns\"
|
||||
Write-Output \"DNS cache flushed successfully.\"
|
||||
} catch {
|
||||
Write-Error \"Failed to flush DNS cache. Error: $_\"
|
||||
}
|
||||
Write-Host \"Removed Adobe url block list from host file\"
|
||||
"
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/blockadobenet"
|
||||
@@ -3216,8 +3104,10 @@
|
||||
"panel": "1",
|
||||
"Order": "a002_",
|
||||
"InvokeScript": [
|
||||
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse
|
||||
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse"
|
||||
"
|
||||
Remove-Item -Path \"$Env:Temp\\*\" -Recurse -Force
|
||||
Remove-Item -Path \"$Env:SystemRoot\\Temp\\*\" -Recurse -Force
|
||||
"
|
||||
],
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/deletetempfiles"
|
||||
},
|
||||
@@ -3271,7 +3161,7 @@
|
||||
"Description": "To set the IPv4 preference can have latency and security benefits on private networks where IPv6 is not configured.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a023_",
|
||||
"Order": "a024_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
|
||||
@@ -3288,7 +3178,7 @@
|
||||
"Description": "Teredo network tunneling is a ipv6 feature that can cause additional latency, but may cause problems with some games",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a023_",
|
||||
"Order": "a024_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
|
||||
@@ -3311,7 +3201,7 @@
|
||||
"Description": "Disables IPv6.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a023_",
|
||||
"Order": "a024_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
|
||||
@@ -3545,7 +3435,7 @@
|
||||
},
|
||||
"WPFToggleSnapFlyout": {
|
||||
"Content": "Snap Assist Flyout",
|
||||
"Description": "If enabled then Snap preview is disabled when maximize button is hovered.",
|
||||
"Description": "If disabled then Snap preview is disabled when maximize button is hovered.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
"Order": "a107_",
|
||||
@@ -3700,7 +3590,7 @@
|
||||
},
|
||||
|
||||
"WPFToggleMultiplaneOverlay": {
|
||||
"Content": "Multiplane Overlay",
|
||||
"Content": "Disable Multiplane Overlay",
|
||||
"Description": "Disable the Multiplane Overlay which can sometimes cause issues with Graphics Cards.",
|
||||
"category": "Customize Preferences",
|
||||
"panel": "2",
|
||||
@@ -3712,7 +3602,7 @@
|
||||
"Name": "OverlayTestMode",
|
||||
"Value": "5",
|
||||
"OriginalValue": "<RemoveEntry>",
|
||||
"DefaultState": "true",
|
||||
"DefaultState": "false",
|
||||
"Type": "DWord"
|
||||
}
|
||||
],
|
||||
@@ -3911,7 +3801,7 @@
|
||||
"panel": "1",
|
||||
"Order": "a040_",
|
||||
"Type": "Combobox",
|
||||
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult dns0.eu_Open dns0.eu_ZERO dns0.eu_KIDS",
|
||||
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult",
|
||||
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/changedns"
|
||||
},
|
||||
"WPFAddUltPerf": {
|
||||
@@ -3987,7 +3877,7 @@
|
||||
"
|
||||
]
|
||||
},
|
||||
"WPFTweaksDisableCrossDeviceResume": {
|
||||
"WPFToggleDisableCrossDeviceResume": {
|
||||
"Content": "Cross-Device Resume",
|
||||
"Description": "This tweak controls the Resume function in Windows 11 24H2 and later, which allows you to resume an activity from a mobile device and vice-versa.",
|
||||
"category": "Customize Preferences",
|
||||
|
||||
@@ -132,7 +132,7 @@ function Invoke-MicrowinGetIso {
|
||||
if (!$downloadFromGitHub) {
|
||||
# only show the message to people who did check the box to download from github, if you check the box
|
||||
# you consent to downloading it, no need to show extra dialogs
|
||||
[System.Windows.MessageBox]::Show("oscdimge.exe is not found on the system, winutil will now attempt do download and install it using choco. This might take a long time.")
|
||||
[System.Windows.MessageBox]::Show("oscdimg.exe is not found on the system, winutil will now attempt do download and install it using choco. This might take a long time.")
|
||||
# the step below needs choco to download oscdimg
|
||||
# Install Choco if not already present
|
||||
Install-WinUtilChoco
|
||||
@@ -149,7 +149,7 @@ function Invoke-MicrowinGetIso {
|
||||
[System.Windows.MessageBox]::Show($msg)
|
||||
return
|
||||
} else {
|
||||
[System.Windows.MessageBox]::Show("oscdimge.exe is not found on the system, winutil will now attempt do download and install it from github. This might take a long time.")
|
||||
[System.Windows.MessageBox]::Show("oscdimg.exe is not found on the system, winutil will now attempt do download and install it from github. This might take a long time.")
|
||||
Invoke-MicrowinBusyInfo -action "wip" -message "Downloading oscdimg.exe..." -interactive $false
|
||||
Microwin-GetOscdimg -oscdimgPath $oscdimgPath
|
||||
$oscdImgFound = Test-Path $oscdimgPath -PathType Leaf
|
||||
|
||||
@@ -30,24 +30,16 @@ Function Install-WinUtilProgramWinget {
|
||||
.PARAMETER wingetId
|
||||
The Id of the Program that Winget should Install/Uninstall
|
||||
|
||||
.PARAMETER scope
|
||||
Determines the installation mode. Can be "user" or "machine" (For more info look at the winget documentation)
|
||||
|
||||
.PARAMETER credential
|
||||
The PSCredential Object of the user that should be used to run winget
|
||||
|
||||
.NOTES
|
||||
Invoke Winget uses the public variable $Action defined outside the function to determine if a Program should be installed or removed
|
||||
#>
|
||||
param (
|
||||
[string]$wingetId,
|
||||
[string]$scope = "",
|
||||
[PScredential]$credential = $null
|
||||
[string]$wingetId
|
||||
)
|
||||
|
||||
$commonArguments = "--id $wingetId --silent"
|
||||
$arguments = if ($Action -eq "Install") {
|
||||
"install $commonArguments --accept-source-agreements --accept-package-agreements $(if ($scope) {" --scope $scope"})"
|
||||
"install $commonArguments --accept-source-agreements --accept-package-agreements"
|
||||
} else {
|
||||
"uninstall $commonArguments"
|
||||
}
|
||||
@@ -60,10 +52,6 @@ Function Install-WinUtilProgramWinget {
|
||||
NoNewWindow = $true
|
||||
}
|
||||
|
||||
if ($credential) {
|
||||
$processParams.credential = $credential
|
||||
}
|
||||
|
||||
return (Start-Process @processParams).ExitCode
|
||||
}
|
||||
|
||||
@@ -87,28 +75,6 @@ Function Install-WinUtilProgramWinget {
|
||||
return $true
|
||||
}
|
||||
|
||||
Write-Host "Attempt installation of $($Program) with User scope"
|
||||
$status = Invoke-Winget -wingetId $Program -scope "user"
|
||||
if ($status -eq 0) {
|
||||
Write-Host "$($Program) installed successfully with User scope."
|
||||
return $true
|
||||
} elseif ($status -eq -1978335189) {
|
||||
Write-Host "$($Program) No applicable update found"
|
||||
return $true
|
||||
}
|
||||
|
||||
$userAcknowledgment = [System.Windows.MessageBox]::Show("You need to input your password to install $($Program) with specific user credentials.", "User credential Prompt", [System.Windows.MessageBoxButton]::Ok)
|
||||
if ($userAcknowledgment -eq 'Ok') {
|
||||
$getcreds = Get-Credential $env:USERNAME
|
||||
$status = Invoke-Winget -wingetId $Program -credential $getcreds
|
||||
if ($status -eq 0) {
|
||||
Write-Host "$($Program) installed successfully with User prompt."
|
||||
return $true
|
||||
}
|
||||
} else {
|
||||
Write-Host "Skipping installation with specific user credentials."
|
||||
}
|
||||
|
||||
Write-Host "Failed to install $($Program)."
|
||||
return $false
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ function Invoke-WinUtilTweaks {
|
||||
$KeepServiceStartup = $true
|
||||
)
|
||||
|
||||
if ($Checkbox -contains "Toggle") {
|
||||
if ($Checkbox -like "*Toggle*") {
|
||||
$CheckBox = $sync.configs.tweaks.$CheckBox
|
||||
}
|
||||
|
||||
|
||||
@@ -33,62 +33,6 @@ function Invoke-WPFInstall {
|
||||
try {
|
||||
$sync.ProcessRunning = $true
|
||||
if($packagesWinget.Count -gt 0 -and $packagesWinget -ne "0") {
|
||||
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
|
||||
Add-Type -assembly System.Windows.Forms
|
||||
$PrincipalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext('Machine')
|
||||
$user = $env:USERNAME
|
||||
|
||||
Get-LocalUser | Where-Object Enabled -eq $true | ForEach-Object {
|
||||
$validPassword = $false
|
||||
while (-not $validPassword) {
|
||||
try {
|
||||
$myPasswordIsBlank = $PrincipalContext.ValidateCredentials($user, $null)
|
||||
$validPassword = $true
|
||||
} catch {
|
||||
$form = New-Object System.Windows.Forms.Form
|
||||
$form.Text = "Set password for $user"
|
||||
$form.Size = New-Object System.Drawing.Size(500, 200)
|
||||
|
||||
$label = New-Object System.Windows.Forms.Label
|
||||
$label.Text = 'Admin mode install failed. Set a USER password for login and user-based installation.'
|
||||
$label.Size = New-Object System.Drawing.Size(480, 60)
|
||||
$label.Location = New-Object System.Drawing.Point(10, 10)
|
||||
$form.Controls.Add($label)
|
||||
|
||||
$passwordBox = New-Object System.Windows.Forms.TextBox
|
||||
$passwordBox.Size = New-Object System.Drawing.Size(380, 20)
|
||||
$passwordBox.UseSystemPasswordChar = $true
|
||||
$passwordBox.Location = New-Object System.Drawing.Point(10, 125)
|
||||
$form.Controls.Add($passwordBox)
|
||||
|
||||
$button = New-Object System.Windows.Forms.Button
|
||||
$button.Text = 'Submit'
|
||||
$button.Size = New-Object System.Drawing.Size(75, 23)
|
||||
$button.Location = New-Object System.Drawing.Point(400, 125)
|
||||
$button.Add_Click({
|
||||
$password = $passwordBox.Text | ConvertTo-SecureString -AsPlainText -Force
|
||||
if ($password) {
|
||||
try {
|
||||
Set-LocalUser -Name $user -Password $password
|
||||
$validPassword = $PrincipalContext.ValidateCredentials($user, $passwordBox.Text)
|
||||
if ($validPassword) {
|
||||
$form.Close()
|
||||
} else {
|
||||
[System.Windows.Forms.MessageBox]::Show('Invalid password! Please try again.')
|
||||
}
|
||||
} catch {
|
||||
[System.Windows.Forms.MessageBox]::Show('Error setting password!')
|
||||
}
|
||||
} else {
|
||||
[System.Windows.Forms.MessageBox]::Show('No password entered!')
|
||||
}
|
||||
})
|
||||
$form.Controls.Add($button)
|
||||
$form.ShowDialog() | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Show-WPFInstallAppBusy -text "Installing apps..."
|
||||
Install-WinUtilWinget
|
||||
Install-WinUtilProgramWinget -Action Install -Programs $packagesWinget
|
||||
|
||||
@@ -63,6 +63,10 @@ function Invoke-Preprocessing {
|
||||
if ($ExcludedFiles.Count -gt 0) {
|
||||
ForEach ($excludedFile in $ExcludedFiles) {
|
||||
$filePath = "$(($WorkingDir -replace ('\\$', '')) + '\' + ($excludedFile -replace ('\.\\', '')))"
|
||||
# Only attempt to create the directory if the excludedFile ends with '\'
|
||||
if ($excludedFile -match '\\$' -and -not (Test-Path "$filePath")) {
|
||||
New-Item -Path "$filePath" -ItemType Directory -Force | Out-Null
|
||||
}
|
||||
$files = Get-ChildItem -Recurse -Path "$filePath" -File -Force
|
||||
if ($files.Count -gt 0) {
|
||||
ForEach ($file in $files) {
|
||||
|
||||
Reference in New Issue
Block a user