mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-07-01 02:22:34 -05:00
Compare commits
59 Commits
2b80e14bf9
...
24.06.28
Author | SHA1 | Date | |
---|---|---|---|
f6af93afbd | |||
0c841f98e8 | |||
e4c44e4878 | |||
8a78c960ea | |||
cb3b64e195 | |||
83f93ceba4 | |||
9ac93fd2dc | |||
13712b4c77 | |||
8d65f3bcf8 | |||
5c937efa9b | |||
ade1c3b830 | |||
8ded42a3ce | |||
65b91330ed | |||
98f8b07951 | |||
acaad991a7 | |||
e00bc5f723 | |||
a5fd8e355d | |||
8a2e1391e0 | |||
81c3722881 | |||
279e707a7a | |||
e894613f68 | |||
be08211cdc | |||
118c3e3964 | |||
3f4e353d13 | |||
a09ae3e251 | |||
f9c09495fc | |||
de424ce636 | |||
c28760e11a | |||
53090a6164 | |||
4661bf31ba | |||
5c687c98c6 | |||
495e08db05 | |||
a23d63613f | |||
acbabd4962 | |||
45a18b335f | |||
c23ea45e61 | |||
1f01933cc0 | |||
4958c5efe9 | |||
5dd3bb492f | |||
9d6d21bd40 | |||
ff80ef491a | |||
4bc54de8cd | |||
864f063878 | |||
009ab5066c | |||
a735a02257 | |||
360cc15b4b | |||
1e906696f5 | |||
b6902c116a | |||
8ace1a32bf | |||
4fcd3f5b2f | |||
c942287172 | |||
7c58eb0e78 | |||
9be030a4e2 | |||
4348f052c3 | |||
ad81bab274 | |||
3a83203298 | |||
09b1e56967 | |||
af94adbabe | |||
a609f771c8 |
5
.github/workflows/compile.yaml
vendored
5
.github/workflows/compile.yaml
vendored
@ -1,10 +1,11 @@
|
|||||||
name: Compile
|
name: Compile
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- test*
|
- test*
|
||||||
|
workflow_dispatch: # Manual trigger added
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-runspace:
|
build-runspace:
|
||||||
|
9
.github/workflows/release.yaml
vendored
9
.github/workflows/release.yaml
vendored
@ -2,13 +2,16 @@ name: Release WinUtil
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_run:
|
workflow_run:
|
||||||
workflows: ["Compile WinUtil"] #Ensure Compile winget.ps1 is done
|
workflows: ["Compile"] #Ensure Compile winget.ps1 is done
|
||||||
types:
|
types:
|
||||||
- completed
|
- completed
|
||||||
|
workflow_dispatch: # Manual trigger added
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-runspace:
|
build-runspace:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
outputs:
|
||||||
|
version: ${{ steps.extract_version.outputs.version }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@ -21,6 +24,7 @@ jobs:
|
|||||||
if ($_ -match 'Version\s*:\s*(\d{2}\.\d{2}\.\d{2})') {
|
if ($_ -match 'Version\s*:\s*(\d{2}\.\d{2}\.\d{2})') {
|
||||||
$version = $matches[1]
|
$version = $matches[1]
|
||||||
echo "version=$version" >> $GITHUB_ENV
|
echo "version=$version" >> $GITHUB_ENV
|
||||||
|
echo "::set-output name=version::$version"
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -28,7 +32,7 @@ jobs:
|
|||||||
Write-Error "Version not found in winutil.ps1"
|
Write-Error "Version not found in winutil.ps1"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
|
|
||||||
- name: Create and Upload Release
|
- name: Create and Upload Release
|
||||||
id: create_release
|
id: create_release
|
||||||
@ -36,7 +40,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
tag_name: ${{ steps.extract_version.outputs.version }}
|
tag_name: ${{ steps.extract_version.outputs.version }}
|
||||||
name: Release ${{ steps.extract_version.outputs.version }}
|
name: Release ${{ steps.extract_version.outputs.version }}
|
||||||
body_path: path/to/release-notes.md
|
|
||||||
files: ./winutil.ps1
|
files: ./winutil.ps1
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
22
Compile.ps1
22
Compile.ps1
@ -1,5 +1,6 @@
|
|||||||
param (
|
param (
|
||||||
[switch]$Debug
|
[switch]$Debug,
|
||||||
|
[switch]$Run
|
||||||
)
|
)
|
||||||
$OFS = "`r`n"
|
$OFS = "`r`n"
|
||||||
$scriptname = "winutil.ps1"
|
$scriptname = "winutil.ps1"
|
||||||
@ -63,13 +64,6 @@ Get-ChildItem .\config | Where-Object {$psitem.extension -eq ".json"} | ForEach-
|
|||||||
$sync.configs.$($psitem.BaseName) = $json | convertfrom-json
|
$sync.configs.$($psitem.BaseName) = $json | convertfrom-json
|
||||||
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$json' `| convertfrom-json" ))
|
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$json' `| convertfrom-json" ))
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "Compiling" -Status "Adding: Config *.cfg" -PercentComplete 45
|
|
||||||
Get-ChildItem .\config | Where-Object {$PSItem.Extension -eq ".cfg"} | ForEach-Object {
|
|
||||||
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$(Get-Content $PSItem.FullName)'"))
|
|
||||||
}
|
|
||||||
Get-ChildItem .\config | Where-Object {$PSItem.Extension -eq ".cfg"} | ForEach-Object {
|
|
||||||
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$(Get-Content $PSItem.FullName)'"))
|
|
||||||
}
|
|
||||||
|
|
||||||
$xaml = (Get-Content .\xaml\inputXML.xaml).replace("'","''")
|
$xaml = (Get-Content .\xaml\inputXML.xaml).replace("'","''")
|
||||||
|
|
||||||
@ -106,4 +100,14 @@ else {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Set-Content -Path $scriptname -Value ($script_content -join "`r`n") -Encoding ascii
|
Set-Content -Path $scriptname -Value ($script_content -join "`r`n") -Encoding ascii
|
||||||
Write-Progress -Activity "Compiling" -Completed
|
Write-Progress -Activity "Compiling" -Completed
|
||||||
|
|
||||||
|
if ($run){
|
||||||
|
try {
|
||||||
|
Start-Process -FilePath "pwsh" -ArgumentList ".\$scriptname"
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Start-Process -FilePath "powershell" -ArgumentList ".\$scriptname"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -32,9 +32,9 @@ or by executing:
|
|||||||
iwr -useb https://christitus.com/win | iex
|
iwr -useb https://christitus.com/win | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
if for some reason this site is not reachable from your country please try running it directly from github (replace 24.06.07 with current release that you are interested in)
|
if for some reason this site is not reachable from your country please try running it directly from github (replace `RELEASE_TAG` with current release that you are interested in, for example `v2024.06.05`)
|
||||||
```
|
```
|
||||||
irm "https://raw.githubusercontent.com/ChrisTitusTech/winutil/24.06.07/winutil.ps1" | iex
|
irm "https://github.com/ChrisTitusTech/winutil/releases/download/RELEASE_TAG/winutil.ps1" | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Automation
|
#### Automation
|
||||||
@ -127,7 +127,7 @@ If you encounter any challenges or problems with the script, I kindly request th
|
|||||||
|
|
||||||
## Contribute Code
|
## Contribute Code
|
||||||
|
|
||||||
If you adding, changing, or deleting an Application... submit to **APPLICATIONS branch**. We batch these in at the end of the month.
|
Pull Requests are now handled directly on the MAIN branch. This was done since we can now select specific releases to launch via releases in GitHub.
|
||||||
|
|
||||||
If doing a code change and you can submit a PR to main branch, but I am very selective about these. Do not use a code formatter, massive amounts of line changes, and make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN Pull Request!
|
If doing a code change and you can submit a PR to main branch, but I am very selective about these. Do not use a code formatter, massive amounts of line changes, and make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN Pull Request!
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@
|
|||||||
"link": "https://discord.com/",
|
"link": "https://discord.com/",
|
||||||
"winget": "Discord.Discord"
|
"winget": "Discord.Discord"
|
||||||
},
|
},
|
||||||
"WPFInstallditto": {
|
"WPFInstallditto": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "ditto",
|
"choco": "ditto",
|
||||||
"content": "Ditto",
|
"content": "Ditto",
|
||||||
@ -591,7 +591,7 @@
|
|||||||
"link": "https://file-converter.io/",
|
"link": "https://file-converter.io/",
|
||||||
"winget": "AdrienAllard.FileConverter"
|
"winget": "AdrienAllard.FileConverter"
|
||||||
},
|
},
|
||||||
"WPFInstallfiles": {
|
"WPFInstallfiles": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "files",
|
"choco": "files",
|
||||||
"content": "Files",
|
"content": "Files",
|
||||||
@ -975,14 +975,6 @@
|
|||||||
"link": "https://www.oracle.com/java/",
|
"link": "https://www.oracle.com/java/",
|
||||||
"winget": "EclipseAdoptium.Temurin.18.JRE"
|
"winget": "EclipseAdoptium.Temurin.18.JRE"
|
||||||
},
|
},
|
||||||
"WPFInstalljava20": {
|
|
||||||
"category": "Development",
|
|
||||||
"choco": "na",
|
|
||||||
"content": "Azul Zulu JDK 20",
|
|
||||||
"description": "Azul Zulu JDK 20 is a distribution of the OpenJDK with long-term support, performance enhancements, and security updates.",
|
|
||||||
"link": "https://www.azul.com/downloads/zulu-community/",
|
|
||||||
"winget": "Azul.Zulu.20.JDK"
|
|
||||||
},
|
|
||||||
"WPFInstalljava21": {
|
"WPFInstalljava21": {
|
||||||
"category": "Development",
|
"category": "Development",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
@ -1303,14 +1295,6 @@
|
|||||||
"link": "https://sourceforge.net/projects/equalizerapo",
|
"link": "https://sourceforge.net/projects/equalizerapo",
|
||||||
"winget": "na"
|
"winget": "na"
|
||||||
},
|
},
|
||||||
"WPFInstallFreeFileSync": {
|
|
||||||
"category": "Utilities",
|
|
||||||
"choco": "freefilesync",
|
|
||||||
"content": "FreeFileSync",
|
|
||||||
"description": "Synchronize Files and Folders",
|
|
||||||
"link": "https://freefilesync.org",
|
|
||||||
"winget": "na"
|
|
||||||
},
|
|
||||||
"WPFInstallCompactGUI": {
|
"WPFInstallCompactGUI": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "compactgui",
|
"choco": "compactgui",
|
||||||
@ -1663,6 +1647,14 @@
|
|||||||
"link": "https://www.plex.tv/your-media/",
|
"link": "https://www.plex.tv/your-media/",
|
||||||
"winget": "Plex.PlexMediaServer"
|
"winget": "Plex.PlexMediaServer"
|
||||||
},
|
},
|
||||||
|
"WPFInstallplexdesktop": {
|
||||||
|
"category": "Multimedia Tools",
|
||||||
|
"choco": "plex",
|
||||||
|
"content": "Plex Desktop",
|
||||||
|
"description": "Plex Desktop for Windows is the front end for Plex Media Server.",
|
||||||
|
"link": "https://www.plex.tv",
|
||||||
|
"winget": "Plex.Plex"
|
||||||
|
},
|
||||||
"WPFInstallPortmaster": {
|
"WPFInstallPortmaster": {
|
||||||
"category": "Pro Tools",
|
"category": "Pro Tools",
|
||||||
"choco": "portmaster",
|
"choco": "portmaster",
|
||||||
@ -1831,6 +1823,14 @@
|
|||||||
"link": "https://www.revouninstaller.com/",
|
"link": "https://www.revouninstaller.com/",
|
||||||
"winget": "RevoUninstaller.RevoUninstaller"
|
"winget": "RevoUninstaller.RevoUninstaller"
|
||||||
},
|
},
|
||||||
|
"WPFInstallWiseProgramUninstaller": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Wise Program Uninstaller (WiseCleaner)",
|
||||||
|
"description": "Wise Program Uninstaller is the perfect solution for uninstalling Windows programs, allowing you to uninstall applications quickly and completely using its simple and user-friendly interface.",
|
||||||
|
"link": "https://www.wisecleaner.com/wise-program-uninstaller.html",
|
||||||
|
"winget": "WiseCleaner.WiseProgramUninstaller"
|
||||||
|
},
|
||||||
"WPFInstallrevolt": {
|
"WPFInstallrevolt": {
|
||||||
"category": "Communications",
|
"category": "Communications",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
@ -1871,7 +1871,7 @@
|
|||||||
"link": "https://www.rust-lang.org/",
|
"link": "https://www.rust-lang.org/",
|
||||||
"winget": "Rustlang.Rust.MSVC"
|
"winget": "Rustlang.Rust.MSVC"
|
||||||
},
|
},
|
||||||
"WPFInstallsagethumbs": {
|
"WPFInstallsagethumbs": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "sagethumbs",
|
"choco": "sagethumbs",
|
||||||
"content": "SageThumbs",
|
"content": "SageThumbs",
|
||||||
@ -1999,7 +1999,7 @@
|
|||||||
"link": "http://www.uderzo.it/main_products/space_sniffer/",
|
"link": "http://www.uderzo.it/main_products/space_sniffer/",
|
||||||
"winget": "UderzoSoftware.SpaceSniffer"
|
"winget": "UderzoSoftware.SpaceSniffer"
|
||||||
},
|
},
|
||||||
"WPFInstallspotube": {
|
"WPFInstallspotube": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
"choco": "spotube",
|
"choco": "spotube",
|
||||||
"content": "Spotube",
|
"content": "Spotube",
|
||||||
@ -2503,6 +2503,14 @@
|
|||||||
"link": "https://toys.wisecleaner.com/",
|
"link": "https://toys.wisecleaner.com/",
|
||||||
"winget": "WiseCleaner.WiseToys"
|
"winget": "WiseCleaner.WiseToys"
|
||||||
},
|
},
|
||||||
|
"WPFInstallTeraCopy": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "TeraCopy",
|
||||||
|
"content": "TeraCopy",
|
||||||
|
"description": "Copy your files faster and more securely",
|
||||||
|
"link": "https://codesector.com/teracopy",
|
||||||
|
"winget": "CodeSector.TeraCopy"
|
||||||
|
},
|
||||||
"WPFInstallwizfile": {
|
"WPFInstallwizfile": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
@ -2727,6 +2735,14 @@
|
|||||||
"link": "https://github.com/AutoDarkMode/Windows-Auto-Night-Mode",
|
"link": "https://github.com/AutoDarkMode/Windows-Auto-Night-Mode",
|
||||||
"winget": "Armin2208.WindowsAutoNightMode"
|
"winget": "Armin2208.WindowsAutoNightMode"
|
||||||
},
|
},
|
||||||
|
"WPFInstallAmbieWhiteNoise": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Ambie White Noise",
|
||||||
|
"description": "Ambie is the ultimate app to help you focus, study, or relax. We use white noise and nature sounds combined with an innovative focus timer to keep you concentrated on doing your best work.",
|
||||||
|
"link": "https://ambieapp.com/",
|
||||||
|
"winget": "9P07XNM5CHP0"
|
||||||
|
},
|
||||||
"WPFInstallmagicwormhole": {
|
"WPFInstallmagicwormhole": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "magic-wormhole",
|
"choco": "magic-wormhole",
|
||||||
@ -2735,6 +2751,14 @@
|
|||||||
"link": "https://github.com/magic-wormhole/magic-wormhole",
|
"link": "https://github.com/magic-wormhole/magic-wormhole",
|
||||||
"winget": "magic-wormhole.magic-wormhole"
|
"winget": "magic-wormhole.magic-wormhole"
|
||||||
},
|
},
|
||||||
|
"WPFInstallcroc": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "croc",
|
||||||
|
"content": "croc",
|
||||||
|
"description": "Easily and securely send things from one computer to another.",
|
||||||
|
"link": "https://github.com/schollz/croc",
|
||||||
|
"winget": "schollz.croc"
|
||||||
|
},
|
||||||
"WPFInstallqgis": {
|
"WPFInstallqgis": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
"choco": "qgis",
|
"choco": "qgis",
|
||||||
@ -2786,11 +2810,20 @@
|
|||||||
"WPFInstallForceAutoHDR": {
|
"WPFInstallForceAutoHDR": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "GUI That Forces Auto HDR In Unsupported Games",
|
"content": "ForceAutoHDR",
|
||||||
"description": "ForceAutoHDR simplifies the process of adding games to the AutoHDR list in the Windows Registry",
|
"description": "ForceAutoHDR simplifies the process of adding games to the AutoHDR list in the Windows Registry",
|
||||||
"link": "https://github.com/7gxycn08/ForceAutoHDR",
|
"link": "https://github.com/7gxycn08/ForceAutoHDR",
|
||||||
"winget": "ForceAutoHDR.7gxycn08"
|
"winget": "ForceAutoHDR.7gxycn08"
|
||||||
},
|
},
|
||||||
|
"WPFInstallJoyToKey": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "joytokey",
|
||||||
|
"content": "JoyToKey",
|
||||||
|
"description": "enables PC game controllers to emulate the keyboard and mouse input",
|
||||||
|
"link": "https://joytokey.net/en/",
|
||||||
|
"winget": "JTKsoftware.JoyToKey"
|
||||||
|
},
|
||||||
|
|
||||||
"WPFInstallnditools": {
|
"WPFInstallnditools": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
@ -2798,5 +2831,21 @@
|
|||||||
"description":"NDI, or Network Device Interface, is a video connectivity standard that enables multimedia systems to identify and communicate with one another over IP and to encode, transmit, and receive high-quality, low latency, frame-accurate video and audio, and exchange metadata in real-time.",
|
"description":"NDI, or Network Device Interface, is a video connectivity standard that enables multimedia systems to identify and communicate with one another over IP and to encode, transmit, and receive high-quality, low latency, frame-accurate video and audio, and exchange metadata in real-time.",
|
||||||
"link": "https://ndi.video/",
|
"link": "https://ndi.video/",
|
||||||
"winget": "NDI.NDITools"
|
"winget": "NDI.NDITools"
|
||||||
|
},
|
||||||
|
"WPFInstallkicad": {
|
||||||
|
"category": "Pro Tools",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Kicad",
|
||||||
|
"description":"Kicad is an open-source EDA tool. It's a good starting point for those who want to do electrical design and is even used by professionals in the industry.",
|
||||||
|
"link": "https://www.kicad.org/",
|
||||||
|
"winget": "KiCad.KiCad"
|
||||||
|
},
|
||||||
|
"WPFInstalldropox": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Dropbox",
|
||||||
|
"description":"The Dropbox desktop app! Save hard drive space, share and edit files and send for signature – all without the distraction of countless browser tabs.",
|
||||||
|
"link": "https://www.dropbox.com/en_GB/desktop",
|
||||||
|
"winget": "Dropbox.Dropbox"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,227 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
# This file was created with O&O ShutUp10++ V1.9.1436
|
|
||||||
# and can be imported onto another computer.
|
|
||||||
#
|
|
||||||
# Download the application at https://www.oo-software.com/shutup10
|
|
||||||
# You can then import the file from within the program.
|
|
||||||
#
|
|
||||||
# Alternatively you can import it automatically over a command line.
|
|
||||||
# Simply use the following parameter:
|
|
||||||
# OOSU10.exe <path to file>
|
|
||||||
#
|
|
||||||
# Selecting the Option /quiet ends the app right after the import and the
|
|
||||||
# user does not get any feedback about the import.
|
|
||||||
#
|
|
||||||
# We are always happy to answer any questions you may have!
|
|
||||||
# © 2015-2023 O&O Software GmbH, Berlin. All rights reserved.
|
|
||||||
# https://www.oo-software.com/
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
P001 -
|
|
||||||
P002 -
|
|
||||||
P003 -
|
|
||||||
P004 -
|
|
||||||
P005 -
|
|
||||||
P006 -
|
|
||||||
P008 -
|
|
||||||
P026 -
|
|
||||||
P027 -
|
|
||||||
P028 -
|
|
||||||
P064 -
|
|
||||||
P065 -
|
|
||||||
P066 -
|
|
||||||
P067 -
|
|
||||||
P070 -
|
|
||||||
P069 -
|
|
||||||
P009 -
|
|
||||||
P010 -
|
|
||||||
P015 -
|
|
||||||
P068 -
|
|
||||||
P016 -
|
|
||||||
A001 -
|
|
||||||
A002 -
|
|
||||||
A003 -
|
|
||||||
A004 -
|
|
||||||
A006 -
|
|
||||||
A005 -
|
|
||||||
P007 -
|
|
||||||
P036 -
|
|
||||||
P025 -
|
|
||||||
P033 -
|
|
||||||
P023 -
|
|
||||||
P056 -
|
|
||||||
P057 -
|
|
||||||
P012 -
|
|
||||||
P034 -
|
|
||||||
P013 -
|
|
||||||
P035 -
|
|
||||||
P062 -
|
|
||||||
P063 -
|
|
||||||
P081 -
|
|
||||||
P047 -
|
|
||||||
P019 -
|
|
||||||
P048 -
|
|
||||||
P049 -
|
|
||||||
P020 -
|
|
||||||
P037 -
|
|
||||||
P011 -
|
|
||||||
P038 -
|
|
||||||
P050 -
|
|
||||||
P051 -
|
|
||||||
P018 -
|
|
||||||
P039 -
|
|
||||||
P021 -
|
|
||||||
P040 -
|
|
||||||
P022 -
|
|
||||||
P041 -
|
|
||||||
P014 -
|
|
||||||
P042 -
|
|
||||||
P052 -
|
|
||||||
P053 -
|
|
||||||
P054 -
|
|
||||||
P055 -
|
|
||||||
P029 -
|
|
||||||
P043 -
|
|
||||||
P030 -
|
|
||||||
P044 -
|
|
||||||
P031 -
|
|
||||||
P045 -
|
|
||||||
P032 -
|
|
||||||
P046 -
|
|
||||||
P058 -
|
|
||||||
P059 -
|
|
||||||
P060 -
|
|
||||||
P061 -
|
|
||||||
P071 -
|
|
||||||
P072 -
|
|
||||||
P073 -
|
|
||||||
P074 -
|
|
||||||
P075 -
|
|
||||||
P076 -
|
|
||||||
P077 -
|
|
||||||
P078 -
|
|
||||||
P079 -
|
|
||||||
P080 -
|
|
||||||
P024 -
|
|
||||||
S001 -
|
|
||||||
S002 -
|
|
||||||
S003 -
|
|
||||||
S008 -
|
|
||||||
E101 -
|
|
||||||
E201 -
|
|
||||||
E115 -
|
|
||||||
E215 -
|
|
||||||
E118 -
|
|
||||||
E218 -
|
|
||||||
E107 -
|
|
||||||
E207 -
|
|
||||||
E111 -
|
|
||||||
E211 -
|
|
||||||
E112 -
|
|
||||||
E212 -
|
|
||||||
E109 -
|
|
||||||
E209 -
|
|
||||||
E121 -
|
|
||||||
E221 -
|
|
||||||
E103 -
|
|
||||||
E203 -
|
|
||||||
E123 -
|
|
||||||
E223 -
|
|
||||||
E124 -
|
|
||||||
E224 -
|
|
||||||
E128 -
|
|
||||||
E228 -
|
|
||||||
E119 -
|
|
||||||
E219 -
|
|
||||||
E120 -
|
|
||||||
E220 -
|
|
||||||
E122 -
|
|
||||||
E222 -
|
|
||||||
E125 -
|
|
||||||
E225 -
|
|
||||||
E126 -
|
|
||||||
E226 -
|
|
||||||
E106 -
|
|
||||||
E206 -
|
|
||||||
E127 -
|
|
||||||
E227 -
|
|
||||||
E001 -
|
|
||||||
E002 -
|
|
||||||
E003 -
|
|
||||||
E008 -
|
|
||||||
E007 -
|
|
||||||
E010 -
|
|
||||||
E011 +
|
|
||||||
E012 +
|
|
||||||
E009 -
|
|
||||||
E004 -
|
|
||||||
E005 -
|
|
||||||
E013 -
|
|
||||||
E014 -
|
|
||||||
E006 -
|
|
||||||
Y001 -
|
|
||||||
Y002 -
|
|
||||||
Y003 -
|
|
||||||
Y004 -
|
|
||||||
Y005 -
|
|
||||||
Y006 -
|
|
||||||
Y007 -
|
|
||||||
C012 -
|
|
||||||
C002 -
|
|
||||||
C013 -
|
|
||||||
C007 -
|
|
||||||
C008 -
|
|
||||||
C009 -
|
|
||||||
C010 -
|
|
||||||
C011 -
|
|
||||||
C014 -
|
|
||||||
C015 -
|
|
||||||
C101 -
|
|
||||||
C201 -
|
|
||||||
C102 -
|
|
||||||
L001 -
|
|
||||||
L003 -
|
|
||||||
L004 -
|
|
||||||
L005 -
|
|
||||||
U001 -
|
|
||||||
U004 -
|
|
||||||
U005 -
|
|
||||||
U006 -
|
|
||||||
U007 -
|
|
||||||
W001 -
|
|
||||||
W011 -
|
|
||||||
W004 -
|
|
||||||
W005 -
|
|
||||||
W010 -
|
|
||||||
W009 -
|
|
||||||
P017 -
|
|
||||||
W006 -
|
|
||||||
W008 -
|
|
||||||
M006 -
|
|
||||||
M011 -
|
|
||||||
M010 -
|
|
||||||
O003 -
|
|
||||||
O001 -
|
|
||||||
S012 -
|
|
||||||
S013 -
|
|
||||||
S014 -
|
|
||||||
K001 -
|
|
||||||
K002 -
|
|
||||||
K005 -
|
|
||||||
M003 -
|
|
||||||
M015 -
|
|
||||||
M016 -
|
|
||||||
M017 -
|
|
||||||
M018 -
|
|
||||||
M019 -
|
|
||||||
M020 -
|
|
||||||
M021 -
|
|
||||||
M022 -
|
|
||||||
M001 -
|
|
||||||
M004 -
|
|
||||||
M005 -
|
|
||||||
M024 -
|
|
||||||
M012 -
|
|
||||||
M013 -
|
|
||||||
M014 -
|
|
||||||
N001 -
|
|
@ -1,231 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
# This file was created with O&O ShutUp10++ V1.9.1438
|
|
||||||
# and can be imported onto another computer.
|
|
||||||
#
|
|
||||||
# Download the application at https://www.oo-software.com/shutup10
|
|
||||||
# You can then import the file from within the program.
|
|
||||||
#
|
|
||||||
# Alternatively you can import it automatically over a command line.
|
|
||||||
# Simply use the following parameter:
|
|
||||||
# OOSU10.exe <path to file>
|
|
||||||
#
|
|
||||||
# Selecting the Option /quiet ends the app right after the import and the
|
|
||||||
# user does not get any feedback about the import.
|
|
||||||
#
|
|
||||||
# We are always happy to answer any questions you may have!
|
|
||||||
# © 2015-2024 O&O Software GmbH, Berlin. All rights reserved.
|
|
||||||
# https://www.oo-software.com/
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
P001 +
|
|
||||||
P002 +
|
|
||||||
P003 +
|
|
||||||
P004 +
|
|
||||||
P005 +
|
|
||||||
P006 +
|
|
||||||
P008 +
|
|
||||||
P026 +
|
|
||||||
P027 +
|
|
||||||
P028 +
|
|
||||||
P064 +
|
|
||||||
P065 +
|
|
||||||
P066 +
|
|
||||||
P067 +
|
|
||||||
P070 +
|
|
||||||
P069 +
|
|
||||||
P009 -
|
|
||||||
P010 +
|
|
||||||
P015 +
|
|
||||||
P068 -
|
|
||||||
P016 -
|
|
||||||
A001 +
|
|
||||||
A002 +
|
|
||||||
A003 +
|
|
||||||
A004 +
|
|
||||||
A006 +
|
|
||||||
A005 +
|
|
||||||
P007 +
|
|
||||||
P036 +
|
|
||||||
P025 +
|
|
||||||
P033 +
|
|
||||||
P023 +
|
|
||||||
P056 +
|
|
||||||
P057 -
|
|
||||||
P012 -
|
|
||||||
P034 -
|
|
||||||
P013 -
|
|
||||||
P035 -
|
|
||||||
P062 -
|
|
||||||
P063 -
|
|
||||||
P081 -
|
|
||||||
P047 -
|
|
||||||
P019 -
|
|
||||||
P048 -
|
|
||||||
P049 -
|
|
||||||
P020 -
|
|
||||||
P037 -
|
|
||||||
P011 -
|
|
||||||
P038 -
|
|
||||||
P050 -
|
|
||||||
P051 -
|
|
||||||
P018 -
|
|
||||||
P039 -
|
|
||||||
P021 -
|
|
||||||
P040 -
|
|
||||||
P022 -
|
|
||||||
P041 -
|
|
||||||
P014 -
|
|
||||||
P042 -
|
|
||||||
P052 -
|
|
||||||
P053 -
|
|
||||||
P054 -
|
|
||||||
P055 -
|
|
||||||
P029 -
|
|
||||||
P043 -
|
|
||||||
P030 -
|
|
||||||
P044 -
|
|
||||||
P031 -
|
|
||||||
P045 -
|
|
||||||
P032 -
|
|
||||||
P046 -
|
|
||||||
P058 -
|
|
||||||
P059 -
|
|
||||||
P060 -
|
|
||||||
P061 -
|
|
||||||
P071 -
|
|
||||||
P072 -
|
|
||||||
P073 -
|
|
||||||
P074 -
|
|
||||||
P075 -
|
|
||||||
P076 -
|
|
||||||
P077 -
|
|
||||||
P078 -
|
|
||||||
P079 -
|
|
||||||
P080 -
|
|
||||||
P024 +
|
|
||||||
S001 +
|
|
||||||
S002 +
|
|
||||||
S003 +
|
|
||||||
S008 -
|
|
||||||
E101 +
|
|
||||||
E201 +
|
|
||||||
E115 +
|
|
||||||
E215 +
|
|
||||||
E118 +
|
|
||||||
E218 +
|
|
||||||
E107 +
|
|
||||||
E207 +
|
|
||||||
E111 +
|
|
||||||
E211 +
|
|
||||||
E112 +
|
|
||||||
E212 +
|
|
||||||
E109 +
|
|
||||||
E209 +
|
|
||||||
E121 +
|
|
||||||
E221 +
|
|
||||||
E103 +
|
|
||||||
E203 +
|
|
||||||
E123 +
|
|
||||||
E223 +
|
|
||||||
E124 +
|
|
||||||
E224 +
|
|
||||||
E128 +
|
|
||||||
E228 +
|
|
||||||
E119 -
|
|
||||||
E219 -
|
|
||||||
E120 -
|
|
||||||
E220 -
|
|
||||||
E122 -
|
|
||||||
E222 -
|
|
||||||
E125 -
|
|
||||||
E225 -
|
|
||||||
E126 -
|
|
||||||
E226 -
|
|
||||||
E106 -
|
|
||||||
E206 -
|
|
||||||
E127 -
|
|
||||||
E227 -
|
|
||||||
E001 +
|
|
||||||
E002 +
|
|
||||||
E003 +
|
|
||||||
E008 +
|
|
||||||
E007 +
|
|
||||||
E010 +
|
|
||||||
E011 +
|
|
||||||
E012 +
|
|
||||||
E009 -
|
|
||||||
E004 -
|
|
||||||
E005 -
|
|
||||||
E013 -
|
|
||||||
E014 -
|
|
||||||
E006 -
|
|
||||||
Y001 +
|
|
||||||
Y002 +
|
|
||||||
Y003 +
|
|
||||||
Y004 +
|
|
||||||
Y005 +
|
|
||||||
Y006 +
|
|
||||||
Y007 +
|
|
||||||
C012 +
|
|
||||||
C002 +
|
|
||||||
C013 +
|
|
||||||
C007 +
|
|
||||||
C008 +
|
|
||||||
C009 +
|
|
||||||
C010 +
|
|
||||||
C011 +
|
|
||||||
C014 +
|
|
||||||
C015 +
|
|
||||||
C101 +
|
|
||||||
C201 +
|
|
||||||
C102 +
|
|
||||||
C103 +
|
|
||||||
C203 +
|
|
||||||
L001 +
|
|
||||||
L003 +
|
|
||||||
L004 -
|
|
||||||
L005 -
|
|
||||||
U001 +
|
|
||||||
U004 +
|
|
||||||
U005 +
|
|
||||||
U006 +
|
|
||||||
U007 +
|
|
||||||
W001 +
|
|
||||||
W011 +
|
|
||||||
W004 -
|
|
||||||
W005 -
|
|
||||||
W010 -
|
|
||||||
W009 -
|
|
||||||
P017 +
|
|
||||||
W006 -
|
|
||||||
W008 -
|
|
||||||
M006 +
|
|
||||||
M011 -
|
|
||||||
M010 +
|
|
||||||
O003 -
|
|
||||||
O001 -
|
|
||||||
S012 -
|
|
||||||
S013 -
|
|
||||||
S014 -
|
|
||||||
K001 +
|
|
||||||
K002 +
|
|
||||||
K005 +
|
|
||||||
M003 +
|
|
||||||
M015 +
|
|
||||||
M016 +
|
|
||||||
M017 -
|
|
||||||
M018 +
|
|
||||||
M019 -
|
|
||||||
M020 +
|
|
||||||
M021 +
|
|
||||||
M022 +
|
|
||||||
M001 +
|
|
||||||
M004 +
|
|
||||||
M005 +
|
|
||||||
M024 +
|
|
||||||
M026 +
|
|
||||||
M027 +
|
|
||||||
M012 -
|
|
||||||
M013 -
|
|
||||||
M014 -
|
|
||||||
N001 -
|
|
@ -5,7 +5,6 @@
|
|||||||
"WPFTweaksHiber",
|
"WPFTweaksHiber",
|
||||||
"WPFTweaksHome",
|
"WPFTweaksHome",
|
||||||
"WPFTweaksLoc",
|
"WPFTweaksLoc",
|
||||||
"WPFTweaksOO",
|
|
||||||
"WPFTweaksServices",
|
"WPFTweaksServices",
|
||||||
"WPFTweaksStorage",
|
"WPFTweaksStorage",
|
||||||
"WPFTweaksTele",
|
"WPFTweaksTele",
|
||||||
@ -18,7 +17,6 @@
|
|||||||
],
|
],
|
||||||
"Minimal": [
|
"Minimal": [
|
||||||
"WPFTweaksHome",
|
"WPFTweaksHome",
|
||||||
"WPFTweaksOO",
|
|
||||||
"WPFTweaksServices",
|
"WPFTweaksServices",
|
||||||
"WPFTweaksTele"
|
"WPFTweaksTele"
|
||||||
]
|
]
|
||||||
|
@ -1223,11 +1223,6 @@
|
|||||||
"StartupType": "Automatic",
|
"StartupType": "Automatic",
|
||||||
"OriginalType": "Automatic"
|
"OriginalType": "Automatic"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"Name": "WwanSvc",
|
|
||||||
"StartupType": "Manual",
|
|
||||||
"OriginalType": "Manual"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"Name": "XblAuthManager",
|
"Name": "XblAuthManager",
|
||||||
"StartupType": "Manual",
|
"StartupType": "Manual",
|
||||||
@ -2313,20 +2308,6 @@
|
|||||||
"Invoke-WPFTweakPS7 -action \"PS5\""
|
"Invoke-WPFTweakPS7 -action \"PS5\""
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"WPFTweaksOO": {
|
|
||||||
"Content": "Run OO Shutup",
|
|
||||||
"Description": "Runs OO Shutup and applies the recommended Tweaks. https://www.oo-software.com/en/shutup10",
|
|
||||||
"category": "Essential Tweaks",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a009_",
|
|
||||||
"ToolTip": "Runs OO Shutup and applies the recommended Tweaks https://www.oo-software.com/en/shutup10",
|
|
||||||
"InvokeScript": [
|
|
||||||
"Invoke-WPFOOSU -action \"recommended\""
|
|
||||||
],
|
|
||||||
"UndoScript": [
|
|
||||||
"Invoke-WPFOOSU -action \"undo\""
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"WPFTweaksStorage": {
|
"WPFTweaksStorage": {
|
||||||
"Content": "Disable Storage Sense",
|
"Content": "Disable Storage Sense",
|
||||||
"Description": "Storage Sense deletes temp files automatically.",
|
"Description": "Storage Sense deletes temp files automatically.",
|
||||||
@ -2342,17 +2323,15 @@
|
|||||||
},
|
},
|
||||||
"WPFTweaksRemoveEdge": {
|
"WPFTweaksRemoveEdge": {
|
||||||
"Content": "Remove Microsoft Edge - NOT RECOMMENDED",
|
"Content": "Remove Microsoft Edge - NOT RECOMMENDED",
|
||||||
"Description": "Removes MS Edge when it gets reinstalled by updates.",
|
"Description": "Removes MS Edge when it gets reinstalled by updates. Credit: AveYo",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a029_",
|
"Order": "a029_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
#:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat
|
#:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat
|
||||||
|
Invoke-WebRequest -Uri \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -OutFile \"$ENV:TEMP\\edgeremoval.bat\"
|
||||||
curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -o $ENV:temp\\edgeremoval.bat
|
|
||||||
Start-Process $ENV:temp\\edgeremoval.bat
|
Start-Process $ENV:temp\\edgeremoval.bat
|
||||||
|
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
@ -2408,12 +2387,12 @@
|
|||||||
"WPFTweaksDisableLMS1": {
|
"WPFTweaksDisableLMS1": {
|
||||||
"Content": "Disable Intel MM (vPro LMS)",
|
"Content": "Disable Intel MM (vPro LMS)",
|
||||||
"Description": "Intel LMS service is always listening on all ports and could be a huge security risk. There is no need to run LMS on home machines and even in the Enterprise there are better solutions.",
|
"Description": "Intel LMS service is always listening on all ports and could be a huge security risk. There is no need to run LMS on home machines and even in the Enterprise there are better solutions.",
|
||||||
"category": "Essential Tweaks",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a0015_",
|
"Order": "a026_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
Write-Host \"Kill OneDrive process\"
|
Write-Host \"Kill LMS\"
|
||||||
$serviceName = \"LMS\"
|
$serviceName = \"LMS\"
|
||||||
Write-Host \"Stopping and disabling service: $serviceName\"
|
Write-Host \"Stopping and disabling service: $serviceName\"
|
||||||
Stop-Service -Name $serviceName -Force -ErrorAction SilentlyContinue;
|
Stop-Service -Name $serviceName -Force -ErrorAction SilentlyContinue;
|
||||||
@ -2457,8 +2436,7 @@
|
|||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
"
|
"
|
||||||
Write-Host \"Install Microsoft Edge\"
|
Write-Host \"LMS vPro needs to be redownloaded from intel.com\"
|
||||||
taskkill.exe /F /IM \"OneDrive.exe\"
|
|
||||||
|
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
@ -3085,7 +3063,7 @@
|
|||||||
"Type": "Toggle"
|
"Type": "Toggle"
|
||||||
},
|
},
|
||||||
"WPFOOSUbutton": {
|
"WPFOOSUbutton": {
|
||||||
"Content": "Customize OO Shutup Tweaks",
|
"Content": "Run OO Shutup 10",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a039_",
|
"Order": "a039_",
|
||||||
|
@ -27,60 +27,6 @@ function Get-LocalizedYesNo {
|
|||||||
$regexPattern = '([a-zA-Z])'
|
$regexPattern = '([a-zA-Z])'
|
||||||
$charactersArray = [regex]::Matches($line, $regexPattern) | ForEach-Object { $_.Groups[1].Value }
|
$charactersArray = [regex]::Matches($line, $regexPattern) | ForEach-Object { $_.Groups[1].Value }
|
||||||
|
|
||||||
Write-Debug "According to takeown.exe local Yes is $charactersArray[0]"
|
|
||||||
# Return the array of characters
|
|
||||||
return $charactersArray
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function Get-LocalizedYesNoTakeown {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
This function runs takeown.exe and captures its output to extract yes no in a localized Windows
|
|
||||||
|
|
||||||
.DESCRIPTION
|
|
||||||
The function retrieves lines from the output of takeown.exe until there are at least 2 characters
|
|
||||||
captured in a specific format, such as "Yes=<first character>, No=<second character>".
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
$yesNoArray = Get-LocalizedYesNo
|
|
||||||
Write-Host "Yes=$($yesNoArray[0]), No=$($yesNoArray[1])"
|
|
||||||
#>
|
|
||||||
|
|
||||||
# Run takeown.exe and capture its output
|
|
||||||
$takeownOutput = & takeown.exe /? | Out-String
|
|
||||||
|
|
||||||
# Parse the output and retrieve lines until there are at least 2 characters in the array
|
|
||||||
$found = $false
|
|
||||||
$charactersArray = @()
|
|
||||||
foreach ($line in $takeownOutput -split "`r`n")
|
|
||||||
{
|
|
||||||
# skip everything before /D flag help
|
|
||||||
if ($found)
|
|
||||||
{
|
|
||||||
# now that /D is found start looking for a single character in double quotes
|
|
||||||
# in help text there is another string in double quotes but it is not a single character
|
|
||||||
$regexPattern = '"([a-zA-Z])"'
|
|
||||||
|
|
||||||
$charactersArray = [regex]::Matches($line, $regexPattern) | ForEach-Object { $_.Groups[1].Value }
|
|
||||||
|
|
||||||
# if ($charactersArray.Count -gt 0) {
|
|
||||||
# Write-Output "Extracted symbols: $($matches -join ', ')"
|
|
||||||
# } else {
|
|
||||||
# Write-Output "No matches found."
|
|
||||||
# }
|
|
||||||
|
|
||||||
if ($charactersArray.Count -ge 2)
|
|
||||||
{
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($line -match "/D ")
|
|
||||||
{
|
|
||||||
$found = $true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Debug "According to takeown.exe local Yes is $charactersArray[0]"
|
Write-Debug "According to takeown.exe local Yes is $charactersArray[0]"
|
||||||
# Return the array of characters
|
# Return the array of characters
|
||||||
return $charactersArray
|
return $charactersArray
|
||||||
|
@ -1,19 +1,3 @@
|
|||||||
function Invoke-MicroWin-Helper {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
checking unit tests
|
|
||||||
|
|
||||||
.PARAMETER Name
|
|
||||||
no parameters
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
placeholder
|
|
||||||
|
|
||||||
#>
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function Test-CompatibleImage() {
|
function Test-CompatibleImage() {
|
||||||
<#
|
<#
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ function Invoke-WinUtilNumLock {
|
|||||||
Write-Host "Disabling Numlock on startup"
|
Write-Host "Disabling Numlock on startup"
|
||||||
$value = 0
|
$value = 0
|
||||||
}
|
}
|
||||||
|
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
|
||||||
$Path = "HKU:\.Default\Control Panel\Keyboard"
|
$Path = "HKU:\.Default\Control Panel\Keyboard"
|
||||||
Set-ItemProperty -Path $Path -Name InitialKeyboardIndicators -Value $value
|
Set-ItemProperty -Path $Path -Name InitialKeyboardIndicators -Value $value
|
||||||
}
|
}
|
||||||
|
@ -178,17 +178,67 @@ $cttLogoPath = @"
|
|||||||
$winutilTextBlock.Foreground = $foregroundColor
|
$winutilTextBlock.Foreground = $foregroundColor
|
||||||
$winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block
|
$winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block
|
||||||
$stackPanel.Children.Add($winutilTextBlock)
|
$stackPanel.Children.Add($winutilTextBlock)
|
||||||
|
|
||||||
# Add TextBlock for information with text wrapping and margins
|
# Add TextBlock for information with text wrapping and margins
|
||||||
$messageTextBlock = New-Object Windows.Controls.TextBlock
|
$messageTextBlock = New-Object Windows.Controls.TextBlock
|
||||||
$messageTextBlock.Text = $Message
|
|
||||||
$messageTextBlock.TextWrapping = [Windows.TextWrapping]::Wrap # Enable text wrapping
|
$messageTextBlock.TextWrapping = [Windows.TextWrapping]::Wrap # Enable text wrapping
|
||||||
$messageTextBlock.HorizontalAlignment = [Windows.HorizontalAlignment]::Left
|
$messageTextBlock.HorizontalAlignment = [Windows.HorizontalAlignment]::Left
|
||||||
$messageTextBlock.VerticalAlignment = [Windows.VerticalAlignment]::Top
|
$messageTextBlock.VerticalAlignment = [Windows.VerticalAlignment]::Top
|
||||||
$messageTextBlock.Margin = New-Object Windows.Thickness(10) # Add margins around the text block
|
$messageTextBlock.Margin = New-Object Windows.Thickness(10) # Add margins around the text block
|
||||||
|
|
||||||
|
# Define the Regex to find hyperlinks formatted as HTML <a> tags
|
||||||
|
$regex = [regex]::new('<a href="([^"]+)">([^<]+)</a>')
|
||||||
|
$lastPos = 0
|
||||||
|
|
||||||
|
# Iterate through each match and add regular text and hyperlinks
|
||||||
|
foreach ($match in $regex.Matches($Message)) {
|
||||||
|
# Add the text before the hyperlink, if any
|
||||||
|
$textBefore = $Message.Substring($lastPos, $match.Index - $lastPos)
|
||||||
|
if ($textBefore.Length -gt 0) {
|
||||||
|
$messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textBefore)))
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create and add the hyperlink
|
||||||
|
$hyperlink = New-Object Windows.Documents.Hyperlink
|
||||||
|
$hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value)
|
||||||
|
$hyperlink.Inlines.Add($match.Groups[2].Value)
|
||||||
|
$hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline
|
||||||
|
$hyperlink.Foreground = $foregroundColor
|
||||||
|
$hyperlink.Add_Click({
|
||||||
|
param($sender, $args)
|
||||||
|
Start-Process $sender.NavigateUri.AbsoluteUri
|
||||||
|
})
|
||||||
|
$hyperlink.Add_MouseEnter({
|
||||||
|
param($sender, $args)
|
||||||
|
$sender.Foreground = [Windows.Media.Brushes]::LightGray
|
||||||
|
})
|
||||||
|
$hyperlink.Add_MouseLeave({
|
||||||
|
param($sender, $args)
|
||||||
|
$sender.Foreground = $foregroundColor
|
||||||
|
})
|
||||||
|
|
||||||
|
$messageTextBlock.Inlines.Add($hyperlink)
|
||||||
|
|
||||||
|
# Update the last position
|
||||||
|
$lastPos = $match.Index + $match.Length
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add any remaining text after the last hyperlink
|
||||||
|
if ($lastPos -lt $Message.Length) {
|
||||||
|
$textAfter = $Message.Substring($lastPos)
|
||||||
|
$messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textAfter)))
|
||||||
|
}
|
||||||
|
|
||||||
|
# If no matches, add the entire message as a run
|
||||||
|
if ($regex.Matches($Message).Count -eq 0) {
|
||||||
|
$messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($Message)))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Add the TextBlock to the Grid
|
||||||
$grid.Children.Add($messageTextBlock)
|
$grid.Children.Add($messageTextBlock)
|
||||||
[Windows.Controls.Grid]::SetRow($messageTextBlock, 1) # Set the row to the second row (0-based index)
|
[Windows.Controls.Grid]::SetRow($messageTextBlock, 1) # Set the row to the second row (0-based index)
|
||||||
|
|
||||||
|
|
||||||
# Add OK button
|
# Add OK button
|
||||||
$okButton = New-Object Windows.Controls.Button
|
$okButton = New-Object Windows.Controls.Button
|
||||||
$okButton.Content = "OK"
|
$okButton.Content = "OK"
|
||||||
|
@ -26,7 +26,7 @@ function Invoke-WPFButton {
|
|||||||
"WPFclear" {Invoke-WPFPresets -preset $null -imported $true}
|
"WPFclear" {Invoke-WPFPresets -preset $null -imported $true}
|
||||||
"WPFclearWinget" {Invoke-WPFPresets -preset $null -imported $true -CheckBox "WPFInstall"}
|
"WPFclearWinget" {Invoke-WPFPresets -preset $null -imported $true -CheckBox "WPFInstall"}
|
||||||
"WPFtweaksbutton" {Invoke-WPFtweaksbutton}
|
"WPFtweaksbutton" {Invoke-WPFtweaksbutton}
|
||||||
"WPFOOSUbutton" {Invoke-WPFOOSU -action "customize"}
|
"WPFOOSUbutton" {Invoke-WPFOOSU}
|
||||||
"WPFAddUltPerf" {Invoke-WPFUltimatePerformance -State "Enabled"}
|
"WPFAddUltPerf" {Invoke-WPFUltimatePerformance -State "Enabled"}
|
||||||
"WPFRemoveUltPerf" {Invoke-WPFUltimatePerformance -State "Disabled"}
|
"WPFRemoveUltPerf" {Invoke-WPFUltimatePerformance -State "Disabled"}
|
||||||
"WPFundoall" {Invoke-WPFundoall}
|
"WPFundoall" {Invoke-WPFundoall}
|
||||||
|
@ -1,43 +1,20 @@
|
|||||||
function Invoke-WPFOOSU {
|
function Invoke-WPFOOSU {
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Downloads and runs OO Shutup 10 with or without config files
|
Downloads and runs OO Shutup 10
|
||||||
.PARAMETER action
|
|
||||||
Specifies how OOSU should be started
|
|
||||||
customize: Opens the OOSU GUI
|
|
||||||
recommended: Loads and applies the recommended OOSU policies silently
|
|
||||||
undo: Resets all policies to factory silently
|
|
||||||
#>
|
#>
|
||||||
|
try {
|
||||||
param (
|
$OOSU_filepath = "$ENV:temp\OOSU10.exe"
|
||||||
[ValidateSet("customize", "recommended", "undo")]
|
$Initial_ProgressPreference = $ProgressPreference
|
||||||
[string]$action
|
$ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest
|
||||||
)
|
Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath
|
||||||
|
Write-Host "Starting OO Shutup 10 ..."
|
||||||
$OOSU_filepath = "$ENV:temp\OOSU10.exe"
|
Start-Process $OOSU_filepath
|
||||||
|
|
||||||
$Initial_ProgressPreference = $ProgressPreference
|
|
||||||
$ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest
|
|
||||||
Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath
|
|
||||||
|
|
||||||
switch ($action)
|
|
||||||
{
|
|
||||||
"customize"{
|
|
||||||
Write-Host "Starting OO Shutup 10 ..."
|
|
||||||
Start-Process $OOSU_filepath
|
|
||||||
}
|
|
||||||
"recommended"{
|
|
||||||
$oosu_config = "$ENV:temp\ooshutup10_recommended.cfg"
|
|
||||||
$sync.configs.ooshutup10_recommended | Out-File -FilePath $oosu_config -Force
|
|
||||||
Write-Host "Applying recommended OO Shutup 10 Policies"
|
|
||||||
Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait
|
|
||||||
}
|
|
||||||
"undo"{
|
|
||||||
$oosu_config = "$ENV:temp\ooshutup10_factory.cfg"
|
|
||||||
$sync.configs.ooshutup10_factory | Out-File -FilePath $oosu_config -Force
|
|
||||||
Write-Host "Resetting all OO Shutup 10 Policies"
|
|
||||||
Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$ProgressPreference = $Initial_ProgressPreference
|
catch {
|
||||||
}
|
Write-Host "Error Downloading and Running OO Shutup 10" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
$ProgressPreference = $Initial_ProgressPreference
|
||||||
|
}
|
||||||
|
}
|
@ -133,9 +133,17 @@ $sync.keys | ForEach-Object {
|
|||||||
|
|
||||||
# Load computer information in the background
|
# Load computer information in the background
|
||||||
Invoke-WPFRunspace -ScriptBlock {
|
Invoke-WPFRunspace -ScriptBlock {
|
||||||
$sync.ConfigLoaded = $False
|
try{
|
||||||
$sync.ComputerInfo = Get-ComputerInfo
|
$oldProgressPreference = $ProgressPreference
|
||||||
$sync.ConfigLoaded = $True
|
$ProgressPreference = "SilentlyContinue"
|
||||||
|
$sync.ConfigLoaded = $False
|
||||||
|
$sync.ComputerInfo = Get-ComputerInfo
|
||||||
|
$sync.ConfigLoaded = $True
|
||||||
|
}
|
||||||
|
finally{
|
||||||
|
$ProgressPreference = "Continue"
|
||||||
|
}
|
||||||
|
|
||||||
} | Out-Null
|
} | Out-Null
|
||||||
|
|
||||||
#===========================================================================
|
#===========================================================================
|
||||||
@ -145,9 +153,6 @@ Invoke-WPFRunspace -ScriptBlock {
|
|||||||
# Print the logo
|
# Print the logo
|
||||||
Invoke-WPFFormVariables
|
Invoke-WPFFormVariables
|
||||||
|
|
||||||
# Install Winget if not already present
|
|
||||||
Install-WinUtilWinget
|
|
||||||
|
|
||||||
# Set the titlebar
|
# Set the titlebar
|
||||||
$sync["Form"].title = $sync["Form"].title + " " + $sync.version
|
$sync["Form"].title = $sync["Form"].title + " " + $sync.version
|
||||||
# Set the commands that will run when the form is closed
|
# Set the commands that will run when the form is closed
|
||||||
@ -282,19 +287,37 @@ Add-Type @"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# need to experiemnt more
|
|
||||||
# setting icon for the windows is still not working
|
# Using a TaskbarItem Overlay until someone figures out how to replace the icon correctly
|
||||||
# $pngUrl = "https://christitus.com/images/logo-full.png"
|
|
||||||
# $pngPath = "$env:TEMP\cttlogo.png"
|
# URL of the image
|
||||||
# $iconPath = "$env:TEMP\cttlogo.ico"
|
$imageUrl = "https://christitus.com/images/logo-full.png"
|
||||||
# # Download the PNG file
|
|
||||||
# Invoke-WebRequest -Uri $pngUrl -OutFile $pngPath
|
# Download the image
|
||||||
# if (Test-Path -Path $pngPath) {
|
$imagePath = "$env:TEMP\logo-full.png"
|
||||||
# ConvertTo-Icon -bitmapPath $pngPath -iconPath $iconPath
|
Invoke-WebRequest -Uri $imageUrl -OutFile $imagePath
|
||||||
# }
|
|
||||||
# $icon = [System.Drawing.Icon]::ExtractAssociatedIcon($iconPath)
|
# Read the image file as a byte array
|
||||||
# Write-Host $icon.Handle
|
$imageBytes = [System.IO.File]::ReadAllBytes($imagePath)
|
||||||
# [Window]::SendMessage($windowHandle, 0x80, [IntPtr]::Zero, $icon.Handle)
|
|
||||||
|
# Convert the byte array to a Base64 string
|
||||||
|
$base64String = [System.Convert]::ToBase64String($imageBytes)
|
||||||
|
|
||||||
|
# Create a streaming image by streaming the base64 string to a bitmap streamsource
|
||||||
|
$bitmap = New-Object System.Windows.Media.Imaging.BitmapImage
|
||||||
|
$bitmap.BeginInit()
|
||||||
|
$bitmap.StreamSource = [System.IO.MemoryStream][System.Convert]::FromBase64String($base64String)
|
||||||
|
$bitmap.EndInit()
|
||||||
|
$bitmap.Freeze()
|
||||||
|
|
||||||
|
# Ensure TaskbarItemInfo is created if not already
|
||||||
|
if (-not $sync["Form"].TaskbarItemInfo) {
|
||||||
|
$sync["Form"].TaskbarItemInfo = New-Object System.Windows.Shell.TaskbarItemInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set the overlay icon for the taskbar
|
||||||
|
$sync["Form"].TaskbarItemInfo.Overlay = $bitmap
|
||||||
|
|
||||||
|
|
||||||
$rect = New-Object RECT
|
$rect = New-Object RECT
|
||||||
[Window]::GetWindowRect($windowHandle, [ref]$rect)
|
[Window]::GetWindowRect($windowHandle, [ref]$rect)
|
||||||
@ -467,14 +490,13 @@ $sync["AboutMenuItem"].Add_Click({
|
|||||||
# Handle Export menu item click
|
# Handle Export menu item click
|
||||||
Write-Debug "About clicked"
|
Write-Debug "About clicked"
|
||||||
$sync["SettingsPopup"].IsOpen = $false
|
$sync["SettingsPopup"].IsOpen = $false
|
||||||
# Example usage
|
|
||||||
$authorInfo = @"
|
$authorInfo = @"
|
||||||
Author : @christitustech
|
Author : <a href="https://github.com/ChrisTitusTech">@christitustech</a>
|
||||||
Runspace : @DeveloperDurp
|
Runspace : <a href="https://github.com/DeveloperDurp">@DeveloperDurp</a>
|
||||||
GUI : @KonTy
|
GUI : <a href="https://github.com/KonTy">@KonTy</a>
|
||||||
MicroWin : @KonTy
|
MicroWin : <a href="https://github.com/KonTy">@KonTy</a>
|
||||||
GitHub : https://github.com/ChrisTitusTech/winutil
|
GitHub : <a href="https://github.com/ChrisTitusTech/winutil">ChrisTitusTech/winutil</a>
|
||||||
Version : $($sync.version)
|
Version : <a href="https://github.com/ChrisTitusTech/winutil/releases/tag/$($sync.version)">$($sync.version)</a>
|
||||||
"@
|
"@
|
||||||
Show-CustomDialog -Message $authorInfo -Width 400
|
Show-CustomDialog -Message $authorInfo -Width 400
|
||||||
})
|
})
|
||||||
|
1339
winutil.ps1
1339
winutil.ps1
File diff suppressed because it is too large
Load Diff
@ -571,6 +571,18 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</Style>
|
</Style>
|
||||||
|
<Style x:Key="ScrollVisibilityRectangle" TargetType="Rectangle">
|
||||||
|
<Setter Property="Visibility" Value="Collapsed"/>
|
||||||
|
<Style.Triggers>
|
||||||
|
<MultiDataTrigger>
|
||||||
|
<MultiDataTrigger.Conditions>
|
||||||
|
<Condition Binding="{Binding Path=ComputedHorizontalScrollBarVisibility, ElementName=scrollViewer}" Value="Visible"/>
|
||||||
|
<Condition Binding="{Binding Path=ComputedVerticalScrollBarVisibility, ElementName=scrollViewer}" Value="Visible"/>
|
||||||
|
</MultiDataTrigger.Conditions>
|
||||||
|
<Setter Property="Visibility" Value="Visible"/>
|
||||||
|
</MultiDataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
<Grid Background="{MainBackgroundColor}" ShowGridLines="False" Name="WPFMainGrid" Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
|
<Grid Background="{MainBackgroundColor}" ShowGridLines="False" Name="WPFMainGrid" Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
@ -701,18 +713,20 @@
|
|||||||
<StackPanel Background="{MainBackgroundColor}" Orientation="Horizontal" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="3" Margin="5">
|
<StackPanel Background="{MainBackgroundColor}" Orientation="Horizontal" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="3" Margin="5">
|
||||||
<Button Name="WPFinstall" Content=" Install/Upgrade Selected" Margin="2" />
|
<Button Name="WPFinstall" Content=" Install/Upgrade Selected" Margin="2" />
|
||||||
<Button Name="WPFInstallUpgrade" Content=" Upgrade All" Margin="2"/>
|
<Button Name="WPFInstallUpgrade" Content=" Upgrade All" Margin="2"/>
|
||||||
<Button Name="WPFuninstall" Content=" Uninstall Selection" Margin="2"/>
|
<Button Name="WPFuninstall" Content=" Uninstall Selected" Margin="2"/>
|
||||||
<Button Name="WPFGetInstalled" Content=" Get Installed" Margin="2"/>
|
<Button Name="WPFGetInstalled" Content=" Get Installed" Margin="2"/>
|
||||||
<Button Name="WPFclearWinget" Content=" Clear Selection" Margin="2"/>
|
<Button Name="WPFclearWinget" Content=" Clear Selection" Margin="2"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<ScrollViewer Grid.Row="1" Grid.Column="0" Padding="-1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
|
<ScrollViewer x:Name="scrollViewer" Grid.Row="1" Grid.Column="0" Padding="-1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
|
||||||
BorderBrush="Transparent" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
BorderBrush="Transparent" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||||
{{InstallPanel_applications}}
|
{{InstallPanel_applications}}
|
||||||
</Grid>
|
</Grid>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
|
|
||||||
|
<Rectangle Grid.Row="1" Grid.Column="0" Width="18" Height="18" Fill="{MainBackgroundColor}" HorizontalAlignment="Right" VerticalAlignment="Bottom" Style="{StaticResource ScrollVisibilityRectangle}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="Tweaks" Visibility="Collapsed" Name="WPFTab2">
|
<TabItem Header="Tweaks" Visibility="Collapsed" Name="WPFTab2">
|
||||||
|
Reference in New Issue
Block a user