mirror of
https://github.com/ChrisTitusTech/winutil
synced 2026-02-04 15:00:09 +00:00
Compare commits
58 Commits
7d1fb52277
...
25.12.18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c71fad54dc | ||
|
|
4eb76a9099 | ||
|
|
95d8660b3a | ||
|
|
4bd25e62e1 | ||
|
|
da6b105573 | ||
|
|
64022cc08d | ||
|
|
401f7f384a | ||
|
|
e2efb3a483 | ||
|
|
4dc0fd6a6e | ||
|
|
f671ad4518 | ||
|
|
c2cb00fc68 | ||
|
|
7503444e2b | ||
|
|
80ab6ba005 | ||
|
|
2e0073af75 | ||
|
|
3cb0a4b664 | ||
|
|
e9b40ae710 | ||
|
|
408327daec | ||
|
|
7f7424406f | ||
|
|
ccc44414a2 | ||
|
|
06ea48dd01 | ||
|
|
5a6b1ef086 | ||
|
|
aba3d786bc | ||
|
|
7765c1032b | ||
|
|
015f1b0709 | ||
|
|
19b6f8abfa | ||
|
|
80e872aa60 | ||
|
|
cfaf139a6a | ||
|
|
becfba603d | ||
|
|
2b68976e7b | ||
|
|
5369d9d99b | ||
|
|
8b3e1280df | ||
|
|
ce77be324b | ||
|
|
6168e93d4c | ||
|
|
d98118e322 | ||
|
|
f69f107d9d | ||
|
|
f3c3613d26 | ||
|
|
b265675560 | ||
|
|
e0237642c8 | ||
|
|
aedaa2f789 | ||
|
|
8c2f9075a0 | ||
|
|
c9e6861ad4 | ||
|
|
43ec73684e | ||
|
|
bfbb643543 | ||
|
|
067ec31086 | ||
|
|
63221a7cb9 | ||
|
|
7e40d379d8 | ||
|
|
c766c974cf | ||
|
|
7d2804c706 | ||
|
|
2ee9047dd6 | ||
|
|
21c49d6a75 | ||
|
|
351a77043e | ||
|
|
c8bb38f3a9 | ||
|
|
5fb5e43cc7 | ||
|
|
eeb410e985 | ||
|
|
8eaf6ddd9c | ||
|
|
3c54e0ea3f | ||
|
|
d17e8bcd98 | ||
|
|
ef1fc2ae59 |
@@ -9,7 +9,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Check if PR was merged
|
- name: Check if PR was merged
|
||||||
if: github.event.pull_request.merged == true
|
if: github.event.pull_request.merged == true
|
||||||
|
|||||||
2
.github/workflows/compile-check.yaml
vendored
2
.github/workflows/compile-check.yaml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Sources
|
- name: Checkout Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Compile and Syntaxcheck winutil.ps1
|
- name: Compile and Syntaxcheck winutil.ps1
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
|
|||||||
2
.github/workflows/pre-release.yaml
vendored
2
.github/workflows/pre-release.yaml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
|
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Compile project
|
- name: Compile project
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
|
|||||||
2
.github/workflows/remove-winutil.yaml
vendored
2
.github/workflows/remove-winutil.yaml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Check if winutil.ps1 exists
|
- name: Check if winutil.ps1 exists
|
||||||
id: check_existence
|
id: check_existence
|
||||||
|
|||||||
2
.github/workflows/sponsors.yaml
vendored
2
.github/workflows/sponsors.yaml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
if: (github.event_name == 'schedule' && github.repository == 'ChrisTitusTech/winutil') || (github.event_name != 'schedule')
|
if: (github.event_name == 'schedule' && github.repository == 'ChrisTitusTech/winutil') || (github.event_name != 'schedule')
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout 🛎️
|
- name: Checkout 🛎️
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Generate Sponsors 💖
|
- name: Generate Sponsors 💖
|
||||||
uses: JamesIves/github-sponsors-readme-action@v1
|
uses: JamesIves/github-sponsors-readme-action@v1
|
||||||
|
|||||||
4
.github/workflows/unittests.yaml
vendored
4
.github/workflows/unittests.yaml
vendored
@@ -8,7 +8,7 @@ jobs:
|
|||||||
name: PS Script Analyzer
|
name: PS Script Analyzer
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v6
|
||||||
- name: lint
|
- name: lint
|
||||||
uses: devblackops/github-action-psscriptanalyzer@master
|
uses: devblackops/github-action-psscriptanalyzer@master
|
||||||
with:
|
with:
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Install Pester
|
- name: Install Pester
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ irm "https://christitus.com/win" | iex
|
|||||||
irm "https://christitus.com/windev" | iex
|
irm "https://christitus.com/windev" | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
If you have Issues, refer to [Known Issues](https://winutil.christitus.com/knownissues/)
|
If you have Issues, refer to [Known Issues](https://winutil.christitus.com/knownissues/) or [Create Issue](https://github.com/ChrisTitusTech/winutil/issues)
|
||||||
|
|
||||||
## 🎓 Documentation
|
## 🎓 Documentation
|
||||||
|
|
||||||
@@ -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.
|
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/IsaacThoman"><img src="https://github.com/IsaacThoman.png" width="60px" alt="User avatar: Isaac Thoman" /></a><!-- sponsors -->
|
||||||
|
|
||||||
## 🏅 Thanks to all Contributors
|
## 🏅 Thanks to all Contributors
|
||||||
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
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",
|
"link": "https://github.com/sharkdp/bat",
|
||||||
"winget": "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": {
|
"bitwarden": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "bitwarden",
|
"choco": "bitwarden",
|
||||||
@@ -511,6 +520,14 @@
|
|||||||
"link": "https://emulationstation.org/",
|
"link": "https://emulationstation.org/",
|
||||||
"winget": "Emulationstation.Emulationstation"
|
"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": {
|
"epicgames": {
|
||||||
"category": "Games",
|
"category": "Games",
|
||||||
"choco": "epicgameslauncher",
|
"choco": "epicgameslauncher",
|
||||||
@@ -983,6 +1000,14 @@
|
|||||||
"link": "https://aws.amazon.com/corretto",
|
"link": "https://aws.amazon.com/corretto",
|
||||||
"winget": "Amazon.Corretto.21.JDK"
|
"winget": "Amazon.Corretto.21.JDK"
|
||||||
},
|
},
|
||||||
|
"java25": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "corretto25jdk",
|
||||||
|
"content": "Amazon Corretto 25 (LTS)",
|
||||||
|
"description": "Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK).",
|
||||||
|
"link": "https://aws.amazon.com/corretto",
|
||||||
|
"winget": "Amazon.Corretto.25.JDK"
|
||||||
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "jdownloader",
|
"choco": "jdownloader",
|
||||||
@@ -1703,13 +1728,13 @@
|
|||||||
"link": "https://bitsum.com/",
|
"link": "https://bitsum.com/",
|
||||||
"winget": "BitSum.ProcessLasso"
|
"winget": "BitSum.ProcessLasso"
|
||||||
},
|
},
|
||||||
"spotify": {
|
"protonauth": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Utilities",
|
||||||
"choco": "spotify",
|
"choco": "protonauth",
|
||||||
"content": "Spotify",
|
"content": "Proton Authenticator",
|
||||||
"description": "Spotify is a digital music service that gives you access to millions of songs, podcasts, and videos from artists all over the world.",
|
"description": "2FA app from Proton to securely sync and backup 2FA codes.",
|
||||||
"link": "https://www.spotify.com/",
|
"link": "https://proton.me/authenticator",
|
||||||
"winget": "Spotify.Spotify"
|
"winget": "Proton.ProtonAuthenticator"
|
||||||
},
|
},
|
||||||
"processmonitor": {
|
"processmonitor": {
|
||||||
"category": "Microsoft Tools",
|
"category": "Microsoft Tools",
|
||||||
@@ -2910,5 +2935,13 @@
|
|||||||
"description": "The modern, privacy-focused, performance-driven browser built on Firefox",
|
"description": "The modern, privacy-focused, performance-driven browser built on Firefox",
|
||||||
"link": "https://zen-browser.app/",
|
"link": "https://zen-browser.app/",
|
||||||
"winget": "Zen-Team.Zen-Browser"
|
"winget": "Zen-Team.Zen-Browser"
|
||||||
|
},
|
||||||
|
"Zed": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Zed",
|
||||||
|
"description": "Zed is a modern, high-performance code editor designed from the ground up for speed and collaboration.",
|
||||||
|
"link": "https://zed.dev/",
|
||||||
|
"winget": "Zed.Zed"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,23 +46,5 @@
|
|||||||
"Secondary": "94.140.15.16",
|
"Secondary": "94.140.15.16",
|
||||||
"Primary6": "2a10:50c0::bad1:ff",
|
"Primary6": "2a10:50c0::bad1:ff",
|
||||||
"Secondary6": "2a10:50c0::bad2: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"
|
"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": {
|
"WPFFeatureRegBackup": {
|
||||||
"Content": "Enable Daily Registry Backup Task 12.30am",
|
"Content": "Enable Daily Registry Backup Task 12.30am",
|
||||||
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
||||||
@@ -306,7 +270,6 @@
|
|||||||
"ButtonWidth": "300",
|
"ButtonWidth": "300",
|
||||||
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/user"
|
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/user"
|
||||||
},
|
},
|
||||||
|
|
||||||
"WPFPanelSystem": {
|
"WPFPanelSystem": {
|
||||||
"Content": "System Properties",
|
"Content": "System Properties",
|
||||||
"category": "Legacy Windows Panels",
|
"category": "Legacy Windows Panels",
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
{
|
{
|
||||||
"Standard": [
|
"Standard": [
|
||||||
"WPFTweaksAH",
|
"WPFTweaksActivity",
|
||||||
"WPFTweaksConsumerFeatures",
|
"WPFTweaksConsumerFeatures",
|
||||||
"WPFTweaksDisableExplorerAutoDiscovery",
|
"WPFTweaksDisableExplorerAutoDiscovery",
|
||||||
"WPFTweaksDVR",
|
"WPFTweaksDVR",
|
||||||
"WPFTweaksHome",
|
"WPFTweaksLocation",
|
||||||
"WPFTweaksLoc",
|
|
||||||
"WPFTweaksServices",
|
"WPFTweaksServices",
|
||||||
"WPFTweaksStorage",
|
|
||||||
"WPFTweaksTele",
|
"WPFTweaksTele",
|
||||||
"WPFTweaksWifi",
|
|
||||||
"WPFTweaksDiskCleanup",
|
"WPFTweaksDiskCleanup",
|
||||||
"WPFTweaksDeleteTempFiles",
|
"WPFTweaksDeleteTempFiles",
|
||||||
"WPFTweaksEndTaskOnTaskbar",
|
"WPFTweaksEndTaskOnTaskbar",
|
||||||
@@ -19,7 +16,6 @@
|
|||||||
"Minimal": [
|
"Minimal": [
|
||||||
"WPFTweaksConsumerFeatures",
|
"WPFTweaksConsumerFeatures",
|
||||||
"WPFTweaksDisableExplorerAutoDiscovery",
|
"WPFTweaksDisableExplorerAutoDiscovery",
|
||||||
"WPFTweaksHome",
|
|
||||||
"WPFTweaksServices",
|
"WPFTweaksServices",
|
||||||
"WPFTweaksTele"
|
"WPFTweaksTele"
|
||||||
]
|
]
|
||||||
|
|||||||
1227
config/tweaks.json
1227
config/tweaks.json
File diff suppressed because it is too large
Load Diff
@@ -132,7 +132,7 @@ function Invoke-MicrowinGetIso {
|
|||||||
if (!$downloadFromGitHub) {
|
if (!$downloadFromGitHub) {
|
||||||
# only show the message to people who did check the box to download from github, if you check the box
|
# 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
|
# 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
|
# the step below needs choco to download oscdimg
|
||||||
# Install Choco if not already present
|
# Install Choco if not already present
|
||||||
Install-WinUtilChoco
|
Install-WinUtilChoco
|
||||||
@@ -149,7 +149,7 @@ function Invoke-MicrowinGetIso {
|
|||||||
[System.Windows.MessageBox]::Show($msg)
|
[System.Windows.MessageBox]::Show($msg)
|
||||||
return
|
return
|
||||||
} else {
|
} 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
|
Invoke-MicrowinBusyInfo -action "wip" -message "Downloading oscdimg.exe..." -interactive $false
|
||||||
Microwin-GetOscdimg -oscdimgPath $oscdimgPath
|
Microwin-GetOscdimg -oscdimgPath $oscdimgPath
|
||||||
$oscdImgFound = Test-Path $oscdimgPath -PathType Leaf
|
$oscdImgFound = Test-Path $oscdimgPath -PathType Leaf
|
||||||
|
|||||||
@@ -30,24 +30,16 @@ Function Install-WinUtilProgramWinget {
|
|||||||
.PARAMETER wingetId
|
.PARAMETER wingetId
|
||||||
The Id of the Program that Winget should Install/Uninstall
|
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
|
.NOTES
|
||||||
Invoke Winget uses the public variable $Action defined outside the function to determine if a Program should be installed or removed
|
Invoke Winget uses the public variable $Action defined outside the function to determine if a Program should be installed or removed
|
||||||
#>
|
#>
|
||||||
param (
|
param (
|
||||||
[string]$wingetId,
|
[string]$wingetId
|
||||||
[string]$scope = "",
|
|
||||||
[PScredential]$credential = $null
|
|
||||||
)
|
)
|
||||||
|
|
||||||
$commonArguments = "--id $wingetId --silent"
|
$commonArguments = "--id $wingetId --silent"
|
||||||
$arguments = if ($Action -eq "Install") {
|
$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 {
|
} else {
|
||||||
"uninstall $commonArguments"
|
"uninstall $commonArguments"
|
||||||
}
|
}
|
||||||
@@ -60,10 +52,6 @@ Function Install-WinUtilProgramWinget {
|
|||||||
NoNewWindow = $true
|
NoNewWindow = $true
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($credential) {
|
|
||||||
$processParams.credential = $credential
|
|
||||||
}
|
|
||||||
|
|
||||||
return (Start-Process @processParams).ExitCode
|
return (Start-Process @processParams).ExitCode
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,28 +75,6 @@ Function Install-WinUtilProgramWinget {
|
|||||||
return $true
|
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)."
|
Write-Host "Failed to install $($Program)."
|
||||||
return $false
|
return $false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,10 +21,6 @@ function Invoke-WinUtilTweaks {
|
|||||||
$KeepServiceStartup = $true
|
$KeepServiceStartup = $true
|
||||||
)
|
)
|
||||||
|
|
||||||
if ($Checkbox -contains "Toggle") {
|
|
||||||
$CheckBox = $sync.configs.tweaks.$CheckBox
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Debug "Tweaks: $($CheckBox)"
|
Write-Debug "Tweaks: $($CheckBox)"
|
||||||
if($undo) {
|
if($undo) {
|
||||||
$Values = @{
|
$Values = @{
|
||||||
|
|||||||
@@ -24,8 +24,12 @@ Function Set-WinUtilService {
|
|||||||
# Check if the service exists
|
# Check if the service exists
|
||||||
$service = Get-Service -Name $Name -ErrorAction Stop
|
$service = Get-Service -Name $Name -ErrorAction Stop
|
||||||
|
|
||||||
# Service exists, proceed with changing properties
|
# Service exists, proceed with changing properties -- while handling auto delayed start for PWSH 5
|
||||||
$service | Set-Service -StartupType $StartupType -ErrorAction Stop
|
if (($PSVersionTable.PSVersion.Major -lt 7) -and ($StartupType -eq "AutomaticDelayedStart")) {
|
||||||
|
sc.exe config $Name start=delayed-auto
|
||||||
|
} else {
|
||||||
|
$service | Set-Service -StartupType $StartupType -ErrorAction Stop
|
||||||
|
}
|
||||||
} catch [System.ServiceProcess.ServiceNotFoundException] {
|
} catch [System.ServiceProcess.ServiceNotFoundException] {
|
||||||
Write-Warning "Service $Name was not found"
|
Write-Warning "Service $Name was not found"
|
||||||
} catch {
|
} catch {
|
||||||
|
|||||||
@@ -33,62 +33,6 @@ function Invoke-WPFInstall {
|
|||||||
try {
|
try {
|
||||||
$sync.ProcessRunning = $true
|
$sync.ProcessRunning = $true
|
||||||
if($packagesWinget.Count -gt 0 -and $packagesWinget -ne "0") {
|
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..."
|
Show-WPFInstallAppBusy -text "Installing apps..."
|
||||||
Install-WinUtilWinget
|
Install-WinUtilWinget
|
||||||
Install-WinUtilProgramWinget -Action Install -Programs $packagesWinget
|
Install-WinUtilProgramWinget -Action Install -Programs $packagesWinget
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ function Invoke-WPFUIElements {
|
|||||||
$checkBox.Name = $entryInfo.Name
|
$checkBox.Name = $entryInfo.Name
|
||||||
$checkBox.HorizontalAlignment = "Right"
|
$checkBox.HorizontalAlignment = "Right"
|
||||||
$checkBox.UseLayoutRounding = $true
|
$checkBox.UseLayoutRounding = $true
|
||||||
|
[System.Windows.Automation.AutomationProperties]::SetName($checkBox, $entryInfo.Content)
|
||||||
$dockPanel.Children.Add($checkBox) | Out-Null
|
$dockPanel.Children.Add($checkBox) | Out-Null
|
||||||
$checkBox.Style = $ColorfulToggleSwitchStyle
|
$checkBox.Style = $ColorfulToggleSwitchStyle
|
||||||
|
|
||||||
@@ -191,6 +192,7 @@ function Invoke-WPFUIElements {
|
|||||||
$toggleButton.ToolTip = $entryInfo.Description
|
$toggleButton.ToolTip = $entryInfo.Description
|
||||||
$toggleButton.HorizontalAlignment = "Left"
|
$toggleButton.HorizontalAlignment = "Left"
|
||||||
$toggleButton.Style = $ToggleButtonStyle
|
$toggleButton.Style = $ToggleButtonStyle
|
||||||
|
[System.Windows.Automation.AutomationProperties]::SetName($toggleButton, $entryInfo.Content[0])
|
||||||
|
|
||||||
$toggleButton.Tag = @{
|
$toggleButton.Tag = @{
|
||||||
contentOn = if ($entryInfo.Content.Count -ge 1) { $entryInfo.Content[0] } else { "" }
|
contentOn = if ($entryInfo.Content.Count -ge 1) { $entryInfo.Content[0] } else { "" }
|
||||||
@@ -232,6 +234,7 @@ function Invoke-WPFUIElements {
|
|||||||
$comboBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "ButtonMargin")
|
$comboBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "ButtonMargin")
|
||||||
$comboBox.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
$comboBox.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
||||||
$comboBox.UseLayoutRounding = $true
|
$comboBox.UseLayoutRounding = $true
|
||||||
|
[System.Windows.Automation.AutomationProperties]::SetName($comboBox, $entryInfo.Content)
|
||||||
|
|
||||||
foreach ($comboitem in ($entryInfo.ComboItems -split " ")) {
|
foreach ($comboitem in ($entryInfo.ComboItems -split " ")) {
|
||||||
$comboBoxItem = New-Object Windows.Controls.ComboBoxItem
|
$comboBoxItem = New-Object Windows.Controls.ComboBoxItem
|
||||||
@@ -273,6 +276,7 @@ function Invoke-WPFUIElements {
|
|||||||
$baseWidth = [int]$entryInfo.ButtonWidth
|
$baseWidth = [int]$entryInfo.ButtonWidth
|
||||||
$button.Width = [math]::Max($baseWidth, 350)
|
$button.Width = [math]::Max($baseWidth, 350)
|
||||||
}
|
}
|
||||||
|
[System.Windows.Automation.AutomationProperties]::SetName($button, $entryInfo.Content)
|
||||||
$itemsControl.Items.Add($button) | Out-Null
|
$itemsControl.Items.Add($button) | Out-Null
|
||||||
|
|
||||||
$sync[$entryInfo.Name] = $button
|
$sync[$entryInfo.Name] = $button
|
||||||
@@ -303,6 +307,7 @@ function Invoke-WPFUIElements {
|
|||||||
$radioButton.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
$radioButton.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
||||||
$radioButton.ToolTip = $entryInfo.Description
|
$radioButton.ToolTip = $entryInfo.Description
|
||||||
$radioButton.UseLayoutRounding = $true
|
$radioButton.UseLayoutRounding = $true
|
||||||
|
[System.Windows.Automation.AutomationProperties]::SetName($radioButton, $entryInfo.Content)
|
||||||
|
|
||||||
if ($entryInfo.Checked -eq $true) {
|
if ($entryInfo.Checked -eq $true) {
|
||||||
$radioButton.IsChecked = $true
|
$radioButton.IsChecked = $true
|
||||||
@@ -324,6 +329,7 @@ function Invoke-WPFUIElements {
|
|||||||
$checkBox.ToolTip = $entryInfo.Description
|
$checkBox.ToolTip = $entryInfo.Description
|
||||||
$checkBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "CheckBoxMargin")
|
$checkBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "CheckBoxMargin")
|
||||||
$checkBox.UseLayoutRounding = $true
|
$checkBox.UseLayoutRounding = $true
|
||||||
|
[System.Windows.Automation.AutomationProperties]::SetName($checkBox, $entryInfo.Content)
|
||||||
if ($entryInfo.Checked -eq $true) {
|
if ($entryInfo.Checked -eq $true) {
|
||||||
$checkBox.IsChecked = $entryInfo.Checked
|
$checkBox.IsChecked = $entryInfo.Checked
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -451,13 +451,11 @@ $NavLogoPanel.Children.Add((Invoke-WinUtilAssets -Type "logo" -Size 25)) | Out-N
|
|||||||
$winutildir = @{}
|
$winutildir = @{}
|
||||||
|
|
||||||
# Set the path for the winutil directory
|
# Set the path for the winutil directory
|
||||||
$winutildir["path"] = "$env:LOCALAPPDATA\winutil\"
|
$winutildir = "$env:LocalAppData\winutil\"
|
||||||
[System.IO.Directory]::CreateDirectory($winutildir["path"]) | Out-Null
|
New-Item $winutildir -ItemType Directory -Force | Out-Null
|
||||||
|
|
||||||
$winutildir["logo.ico"] = $winutildir["path"] + "cttlogo.ico"
|
if (Test-Path "$winutildir\logo.ico") {
|
||||||
|
$sync["logorender"] = "$winutildir\logo.ico"
|
||||||
if (Test-Path $winutildir["logo.ico"]) {
|
|
||||||
$sync["logorender"] = $winutildir["logo.ico"]
|
|
||||||
} else {
|
} else {
|
||||||
$sync["logorender"] = (Invoke-WinUtilAssets -Type "Logo" -Size 90 -Render)
|
$sync["logorender"] = (Invoke-WinUtilAssets -Type "Logo" -Size 90 -Render)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]:
|
|||||||
$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
|
$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
|
||||||
|
|
||||||
$logdir = "$env:localappdata\winutil\logs"
|
$logdir = "$env:localappdata\winutil\logs"
|
||||||
[System.IO.Directory]::CreateDirectory("$logdir") | Out-Null
|
New-Item $logdir -ItemType Directory -Force | Out-Null
|
||||||
Start-Transcript -Path "$logdir\winutil_$dateTime.log" -Append -NoClobber | Out-Null
|
Start-Transcript -Path "$logdir\winutil_$dateTime.log" -Append -NoClobber | Out-Null
|
||||||
|
|
||||||
# Set PowerShell window title
|
# Set PowerShell window title
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ function Invoke-Preprocessing {
|
|||||||
if ($ExcludedFiles.Count -gt 0) {
|
if ($ExcludedFiles.Count -gt 0) {
|
||||||
ForEach ($excludedFile in $ExcludedFiles) {
|
ForEach ($excludedFile in $ExcludedFiles) {
|
||||||
$filePath = "$(($WorkingDir -replace ('\\$', '')) + '\' + ($excludedFile -replace ('\.\\', '')))"
|
$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
|
$files = Get-ChildItem -Recurse -Path "$filePath" -File -Force
|
||||||
if ($files.Count -gt 0) {
|
if ($files.Count -gt 0) {
|
||||||
ForEach ($file in $files) {
|
ForEach ($file in $files) {
|
||||||
|
|||||||
Reference in New Issue
Block a user