diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 8e8896ca..66d0120d 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -1,31 +1,12 @@
name: Update Branch
on:
- push:
+ push:
+ branches:
+ - main
+ - test
jobs:
- test:
- runs-on: windows-latest
- steps:
- - name: Check out repository code
- uses: actions/checkout@v3
- with:
- ref: ${{ github.head_ref }}
- - name: pester_tests
- id: pester_tests
- uses: zyborg/pester-tests-report@v1
- with:
- include_paths: pester
- report_name: Winutil_Tests
- report_title: Winutil_Tests
- github_token: ${{ secrets.GITHUB_TOKEN }}
- tests_fail_step: true
- - name: dump test results
- shell: pwsh
- run: |
- Write-Host 'Total Tests Executed...: ${{ steps.pester_tests.outputs.total_count }}'
- Write-Host 'Total Tests PASSED.....: ${{ steps.pester_tests.outputs.passed_count }}'
- Write-Host 'Total Tests FAILED.....: ${{ steps.pester_tests.outputs.failed_count }}'
build:
runs-on: ubuntu-latest
steps:
diff --git a/.github/workflows/test.yaml b/.github/workflows/unittests.yaml
similarity index 88%
rename from .github/workflows/test.yaml
rename to .github/workflows/unittests.yaml
index f31be666..273c4a3f 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/unittests.yaml
@@ -1,6 +1,7 @@
-name: Pester
+name: Unit Tests
-on: [push]
+on:
+ push:
jobs:
test:
@@ -16,6 +17,8 @@ jobs:
with:
include_paths: pester
github_token: ${{ secrets.GITHUB_TOKEN }}
+ tests_fail_step: true
+ skip_check_run: true
- name: dump test results
shell: pwsh
run: |
diff --git a/.gitignore b/.gitignore
index 2b8b1668..af9d3355 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,7 @@ winutil.pdb
*.zip
.vs/
*.psd*
-pester.ps1
\ No newline at end of file
+pester.ps1
+Microsoft.UI.Xaml*
+winget.msixbundle
+license1.xml
\ No newline at end of file
diff --git a/MainWindow.xaml b/MainWindow.xaml
index fbc75089..931799dd 100644
--- a/MainWindow.xaml
+++ b/MainWindow.xaml
@@ -8,6 +8,78 @@
Background="#777777"
WindowStartupLocation="CenterScreen"
Title="Chris Titus Tech's Windows Utility" Height="800" Width="1200">
+
+
+
@@ -232,9 +304,12 @@
-
-
-
+
+
+
+
+
+
diff --git a/config/applications.json b/config/applications.json
index 56456f68..e23718cb 100644
--- a/config/applications.json
+++ b/config/applications.json
@@ -1,382 +1,506 @@
{
- "Install": {
- "WPFInstalladobe": {
- "winget": "Adobe.Acrobat.Reader.64-bit"
- },
- "WPFInstalladvancedip": {
- "winget": "Famatech.AdvancedIPScanner"
- },
- "WPFInstallanydesk": {
- "winget": "AnyDeskSoftwareGmbH.AnyDesk"
- },
- "WPFInstallatom": {
- "winget": "GitHub.Atom"
- },
- "WPFInstallaudacity": {
- "winget": "Audacity.Audacity"
- },
- "WPFInstallautohotkey": {
- "winget": "Lexikos.AutoHotkey"
- },
- "WPFInstallbitwarden": {
- "winget": "Bitwarden.Bitwarden"
- },
- "WPFInstallblender": {
- "winget": "BlenderFoundation.Blender"
- },
- "WPFInstallbrave": {
- "winget": "Brave.Brave"
- },
- "WPFInstallchrome": {
- "winget": "Google.Chrome"
- },
- "WPFInstallchromium": {
- "winget": "eloston.ungoogled-chromium"
- },
- "WPFInstallcpuz": {
- "winget": "CPUID.CPU-Z"
- },
- "WPFInstalldiscord": {
- "winget": "Discord.Discord"
- },
- "WPFInstalleartrumpet": {
- "winget": "File-New-Project.EarTrumpet"
- },
- "WPFInstallepicgames": {
- "winget": "EpicGames.EpicGamesLauncher"
- },
- "WPFInstallesearch": {
- "winget": "voidtools.Everything"
- },
- "WPFInstalletcher": {
- "winget": "Balena.Etcher"
- },
- "WPFInstallfirefox": {
- "winget": "Mozilla.Firefox"
- },
- "WPFInstallflameshot": {
- "winget": "Flameshot.Flameshot"
- },
- "WPFInstallfoobar": {
- "winget": "PeterPawlowski.foobar2000"
- },
- "WPFInstallgimp": {
- "winget": "GIMP.GIMP"
- },
- "WPFInstallgithubdesktop": {
- "winget": "Git.Git;GitHub.GitHubDesktop"
- },
- "WPFInstallgog": {
- "winget": "GOG.Galaxy"
- },
- "WPFInstallgpuz": {
- "winget": "TechPowerUp.GPU-Z"
- },
- "WPFInstallgreenshot": {
- "winget": "Greenshot.Greenshot"
- },
- "WPFInstallhandbrake": {
- "winget": "HandBrake.HandBrake"
- },
- "WPFInstallhexchat": {
- "winget": "HexChat.HexChat"
- },
- "WPFInstallhwinfo": {
- "winget": "REALiX.HWiNFO"
- },
- "WPFInstallimageglass": {
- "winget": "DuongDieuPhap.ImageGlass"
- },
- "WPFInstallinkscape": {
- "winget": "Inkscape.Inkscape"
- },
- "WPFInstalljava16": {
- "winget": "AdoptOpenJDK.OpenJDK.16"
- },
- "WPFInstalljava18": {
- "winget": "EclipseAdoptium.Temurin.18.JRE"
- },
- "WPFInstalljava8": {
- "winget": "EclipseAdoptium.Temurin.8.JRE"
- },
- "WPFInstalljava19": {
- "winget": "EclipseAdoptium.Temurin.19.JRE"
- },
- "WPFInstalljava17": {
- "winget": "EclipseAdoptium.Temurin.17.JRE"
- },
- "WPFInstalljava11": {
- "winget": "EclipseAdoptium.Temurin.11.JRE"
- },
- "WPFInstalljetbrains": {
- "winget": "JetBrains.Toolbox"
- },
- "WPFInstallkeepass": {
- "winget": "KeePassXCTeam.KeePassXC"
- },
- "WPFInstalllibrewolf": {
- "winget": "LibreWolf.LibreWolf"
- },
- "WPFInstallmalwarebytes": {
- "winget": "Malwarebytes.Malwarebytes"
- },
- "WPFInstallmatrix": {
- "winget": "Element.Element"
- },
- "WPFInstallmpc": {
- "winget": "clsid2.mpc-hc"
- },
- "WPFInstallmremoteng": {
- "winget": "mRemoteNG.mRemoteNG"
- },
- "WPFInstallnodejs": {
- "winget": "OpenJS.NodeJS"
- },
- "WPFInstallnodejslts": {
- "winget": "OpenJS.NodeJS.LTS"
- },
- "WPFInstallnotepadplus": {
- "winget": "Notepad++.Notepad++"
- },
- "WPFInstallnvclean": {
- "winget": "TechPowerUp.NVCleanstall"
- },
- "WPFInstallobs": {
- "winget": "OBSProject.OBSStudio"
- },
- "WPFInstallobsidian": {
- "winget": "Obsidian.Obsidian"
- },
- "WPFInstallpowertoys": {
- "winget": "Microsoft.PowerToys"
- },
- "WPFInstallputty": {
- "winget": "PuTTY.PuTTY"
- },
- "WPFInstallpython3": {
- "winget": "Python.Python.3"
- },
- "WPFInstallrevo": {
- "winget": "RevoUnWPFInstaller.RevoUnWPFInstaller"
- },
- "WPFInstallrufus": {
- "winget": "Rufus.Rufus"
- },
- "WPFInstallsevenzip": {
- "winget": "7zip.7zip"
- },
- "WPFInstallsharex": {
- "winget": "ShareX.ShareX"
- },
- "WPFInstallsignal": {
- "winget": "OpenWhisperSystems.Signal"
- },
- "WPFInstallskype": {
- "winget": "Microsoft.Skype"
- },
- "WPFInstallslack": {
- "winget": "SlackTechnologies.Slack"
- },
- "WPFInstallsteam": {
- "winget": "Valve.Steam"
- },
- "WPFInstallsublime": {
- "winget": "SublimeHQ.SublimeText.4"
- },
- "WPFInstallsumatra": {
- "winget": "SumatraPDF.SumatraPDF"
- },
- "WPFInstallteams": {
- "winget": "Microsoft.Teams"
- },
- "WPFInstallteamviewer": {
- "winget": "TeamViewer.TeamViewer"
- },
- "WPFInstallterminal": {
- "winget": "Microsoft.WindowsTerminal"
- },
- "WPFInstalltreesize": {
- "winget": "JAMSoftware.TreeSize.Free"
- },
- "WPFInstallttaskbar": {
- "winget": "TranslucentTB.TranslucentTB"
- },
- "WPFInstallvisualstudio": {
- "winget": "Microsoft.VisualStudio.2022.Community"
- },
- "WPFInstallvivaldi": {
- "winget": "VivaldiTechnologies.Vivaldi"
- },
- "WPFInstallvlc": {
- "winget": "VideoLAN.VLC"
- },
- "WPFInstallvoicemeeter": {
- "winget": "VB-Audio.Voicemeeter"
- },
- "WPFInstallvscode": {
- "winget": "Git.Git;Microsoft.VisualStudioCode"
- },
- "WPFInstallvscodium": {
- "winget": "Git.Git;VSCodium.VSCodium"
- },
- "WPFInstallwindirstat": {
- "winget": "WinDirStat.WinDirStat"
- },
- "WPFInstallscp": {
- "winget": "WinSCP.WinSCP"
- },
- "WPFInstallwireshark": {
- "winget": "WiresharkFoundation.Wireshark"
- },
- "WPFInstallzoom": {
- "winget": "Zoom.Zoom"
- },
- "WPFInstalllibreoffice": {
- "winget": "TheDocumentFoundation.LibreOffice"
- },
- "WPFInstallshell": {
- "winget": "Nilesoft.Shell"
- },
- "WPFInstallklite": {
- "winget": "CodecGuide.K-LiteCodecPack.Standard"
- },
- "WPFInstallsandboxie": {
- "winget": "Sandboxie.Plus"
- },
- "WPFInstallprocesslasso": {
- "winget": "BitSum.ProcessLasso"
- },
- "WPFInstallwinmerge": {
- "winget": "WinMerge.WinMerge"
- },
- "WPFInstalldotnet3": {
- "winget": "Microsoft.DotNet.DesktopRuntime.3_1"
- },
- "WPFInstalldotnet5": {
- "winget": "Microsoft.DotNet.DesktopRuntime.5"
- },
- "WPFInstalldotnet6": {
- "winget": "Microsoft.DotNet.DesktopRuntime.6"
- },
- "WPFInstallvc2015_64": {
- "winget": "Microsoft.VC++2015-2022Redist-x64"
- },
- "WPFInstallvc2015_32": {
- "winget": "Microsoft.VC++2015-2022Redist-x86"
- },
- "WPFInstallfoxpdf": {
- "winget": "Foxit.PhantomPDF"
- },
- "WPFInstallonlyoffice": {
- "winget": "ONLYOFFICE.DesktopEditors"
- },
- "WPFInstallflux": {
- "winget": "flux.flux"
- },
- "WPFInstallitunes": {
- "winget": "Apple.iTunes"
- },
- "WPFInstallcider": {
- "winget": "CiderCollective.Cider"
- },
- "WPFInstalljoplin": {
- "winget": "Joplin.Joplin"
- },
- "WPFInstallopenoffice": {
- "winget": "Apache.OpenOffice"
- },
- "WPFInstallrustdesk": {
- "winget": "RustDesk.RustDesk"
- },
- "WPFInstalljami": {
- "winget": "SFLinux.Jami"
- },
- "WPFInstalljdownloader": {
- "winget": "AppWork.JDownloader"
- },
- "WPFInstallsimplewall": {
- "Winget": "Henry++.simplewall"
- },
- "WPFInstallrustlang": {
- "Winget": "Rustlang.Rust.MSVC"
- },
- "WPFInstallalacritty": {
- "Winget": "Alacritty.Alacritty"
- },
- "WPFInstallkdenlive": {
- "Winget": "KDE.Kdenlive"
- },
- "WPFInstallglaryutilities": {
- "Winget": "Glarysoft.GlaryUtilities"
- },
- "WPFInstalltwinkletray": {
- "Winget": "xanderfrangos.twinkletray"
- },
- "WPFInstallidm": {
- "Winget": "Tonec.InternetDownloadManager"
- },
- "WPFInstallviber": {
- "Winget": "Viber.Viber"
- },
- "WPFInstallgit": {
- "Winget": "Git.Git"
- },
- "WPFInstallwiztree": {
- "Winget": "AntibodySoftware.WizTree"
- },
- "WPFInstalltor": {
- "Winget": "TorProject.TorBrowser"
- },
- "WPFInstallkrita": {
- "winget": "KDE.Krita"
- },
- "WPFInstallnglide": {
- "winget": "ZeusSoftware.nGlide"
- },
- "WPFInstallkodi": {
- "winget": "XBMCFoundation.Kodi"
- },
- "WPFInstalltelegram": {
- "winget": "Telegram.TelegramDesktop"
- },
- "WPFInstallunity": {
- "winget": "UnityTechnologies.UnityHub"
- },
- "WPFInstallqbittorrent": {
- "winget": "qBittorrent.qBittorrent"
- },
- "WPFInstallorigin": {
- "winget": "ElectronicArts.EADesktop"
- },
- "WPFInstallopenshell": {
- "winget": "Open-Shell.Open-Shell-Menu"
- },
- "WPFInstallbluestacks": {
- "winget": "BlueStack.BlueStacks"
- },
- "WPFInstallstrawberry": {
- "winget": "StrawberryMusicPlayer.Strawberry"
- },
- "WPFInstallsqlstudio": {
- "winget": "Microsoft.SQLServerManagementStudio"
- },
- "WPFInstallwaterfox": {
- "winget": "Waterfox.Waterfox"
- },
- "WPFInstallpowershell": {
- "winget": "Microsoft.PowerShell"
- },
- "WPFInstallprocessmonitor": {
- "winget": "Microsoft.Sysinternals.ProcessMonitor"
- },
- "WPFInstallonedrive": {
- "winget": "Microsoft.OneDrive"
- },
- "WPFInstalledge": {
- "winget": "Microsoft.Edge"
- },
- "WPFInstallnuget": {
- "winget": "Microsoft.NuGet"
- }
+ "WPFInstalladobe": {
+ "winget": "Adobe.Acrobat.Reader.64-bit",
+ "choco": "adobereader"
+ },
+ "WPFInstalladvancedip": {
+ "winget": "Famatech.AdvancedIPScanner",
+ "choco": "advanced-ip-scanner"
+ },
+ "WPFInstallanydesk": {
+ "winget": "AnyDeskSoftwareGmbH.AnyDesk",
+ "choco": "anydesk"
+ },
+ "WPFInstallatom": {
+ "winget": "GitHub.Atom",
+ "choco": "atom"
+ },
+ "WPFInstallaudacity": {
+ "winget": "Audacity.Audacity",
+ "choco": "audacity"
+ },
+ "WPFInstallautohotkey": {
+ "winget": "Lexikos.AutoHotkey",
+ "choco": "autohotkey"
+ },
+ "WPFInstallbitwarden": {
+ "winget": "Bitwarden.Bitwarden",
+ "choco": "bitwarden"
+ },
+ "WPFInstallblender": {
+ "winget": "BlenderFoundation.Blender",
+ "choco": "blender"
+ },
+ "WPFInstallbrave": {
+ "winget": "Brave.Brave",
+ "choco": "brave"
+ },
+ "WPFInstallchrome": {
+ "winget": "Google.Chrome",
+ "choco": "googlechrome"
+ },
+ "WPFInstallchromium": {
+ "winget": "eloston.ungoogled-chromium",
+ "choco": "chromium"
+ },
+ "WPFInstallcpuz": {
+ "winget": "CPUID.CPU-Z",
+ "choco": "cpu-z"
+ },
+ "WPFInstalldiscord": {
+ "winget": "Discord.Discord",
+ "choco": "discord"
+ },
+ "WPFInstalleartrumpet": {
+ "winget": "File-New-Project.EarTrumpet",
+ "choco": "eartrumpet"
+ },
+ "WPFInstallepicgames": {
+ "winget": "EpicGames.EpicGamesLauncher",
+ "choco": "epicgameslauncher"
+ },
+ "WPFInstallesearch": {
+ "winget": "voidtools.Everything",
+ "choco": "everything"
+ },
+ "WPFInstalletcher": {
+ "winget": "Balena.Etcher",
+ "choco": "etcher"
+ },
+ "WPFInstallfirefox": {
+ "winget": "Mozilla.Firefox",
+ "choco": "firefox"
+ },
+ "WPFInstallflameshot": {
+ "winget": "Flameshot.Flameshot",
+ "choco": "na"
+ },
+ "WPFInstallfoobar": {
+ "winget": "PeterPawlowski.foobar2000",
+ "choco": "foobar2000"
+ },
+ "WPFInstallgimp": {
+ "winget": "GIMP.GIMP",
+ "choco": "gimp"
+ },
+ "WPFInstallgithubdesktop": {
+ "winget": "Git.Git;GitHub.GitHubDesktop",
+ "choco": "git;github-desktop"
+ },
+ "WPFInstallgog": {
+ "winget": "GOG.Galaxy",
+ "choco": "goggalaxy"
+ },
+ "WPFInstallgpuz": {
+ "winget": "TechPowerUp.GPU-Z",
+ "choco": "gpu-z"
+ },
+ "WPFInstallgreenshot": {
+ "winget": "Greenshot.Greenshot",
+ "choco": "greenshot"
+ },
+ "WPFInstallhandbrake": {
+ "winget": "HandBrake.HandBrake",
+ "choco": "handbrake"
+ },
+ "WPFInstallhexchat": {
+ "winget": "HexChat.HexChat",
+ "choco": "hexchat"
+ },
+ "WPFInstallhwinfo": {
+ "winget": "REALiX.HWiNFO",
+ "choco": "hwinfo"
+ },
+ "WPFInstallimageglass": {
+ "winget": "DuongDieuPhap.ImageGlass",
+ "choco": "imageglass"
+ },
+ "WPFInstallinkscape": {
+ "winget": "Inkscape.Inkscape",
+ "choco": "inkscape"
+ },
+ "WPFInstalljava16": {
+ "winget": "AdoptOpenJDK.OpenJDK.16",
+ "choco": "temurin16jre"
+ },
+ "WPFInstalljava18": {
+ "winget": "EclipseAdoptium.Temurin.18.JRE",
+ "choco": "temurin18jre"
+ },
+ "WPFInstalljava8": {
+ "winget": "EclipseAdoptium.Temurin.8.JRE",
+ "choco": "temurin8jre"
+ },
+ "WPFInstalljava19": {
+ "winget": "EclipseAdoptium.Temurin.19.JRE",
+ "choco": "temurin19jre"
+ },
+ "WPFInstalljava17": {
+ "winget": "EclipseAdoptium.Temurin.17.JRE",
+ "choco": "temurin17jre"
+ },
+ "WPFInstalljava11": {
+ "winget": "EclipseAdoptium.Temurin.11.JRE",
+ "choco": "javaruntime"
+ },
+ "WPFInstalljetbrains": {
+ "winget": "JetBrains.Toolbox",
+ "choco": "jetbrainstoolbox"
+ },
+ "WPFInstallkeepass": {
+ "winget": "KeePassXCTeam.KeePassXC",
+ "choco": "keepassxc"
+ },
+ "WPFInstalllibrewolf": {
+ "winget": "LibreWolf.LibreWolf",
+ "choco": "librewolf"
+ },
+ "WPFInstallmalwarebytes": {
+ "winget": "Malwarebytes.Malwarebytes",
+ "choco": "malwarebytes"
+ },
+ "WPFInstallmatrix": {
+ "winget": "Element.Element",
+ "choco": "element-desktop"
+ },
+ "WPFInstallmpc": {
+ "winget": "clsid2.mpc-hc",
+ "choco": "mpc-hc"
+ },
+ "WPFInstallmremoteng": {
+ "winget": "mRemoteNG.mRemoteNG",
+ "choco": "mremoteng"
+ },
+ "WPFInstallnodejs": {
+ "winget": "OpenJS.NodeJS",
+ "choco": "nodejs"
+ },
+ "WPFInstallnodejslts": {
+ "winget": "OpenJS.NodeJS.LTS",
+ "choco": "nodejs-lts"
+ },
+ "WPFInstallnotepadplus": {
+ "winget": "Notepad++.Notepad++",
+ "choco": "notepadplusplus"
+ },
+ "WPFInstallnvclean": {
+ "winget": "TechPowerUp.NVCleanstall",
+ "choco": "na"
+ },
+ "WPFInstallobs": {
+ "winget": "OBSProject.OBSStudio",
+ "choco": "obs-studio"
+ },
+ "WPFInstallobsidian": {
+ "winget": "Obsidian.Obsidian",
+ "choco": "obsidian"
+ },
+ "WPFInstallpowertoys": {
+ "winget": "Microsoft.PowerToys",
+ "choco": "powertoys"
+ },
+ "WPFInstallputty": {
+ "winget": "PuTTY.PuTTY",
+ "choco": "putty"
+ },
+ "WPFInstallpython3": {
+ "winget": "Python.Python.3",
+ "choco": "python"
+ },
+ "WPFInstallrevo": {
+ "winget": "RevoUnInstaller.RevoUnInstaller",
+ "choco": "revo-uninstaller"
+ },
+ "WPFInstallrufus": {
+ "winget": "Rufus.Rufus",
+ "choco": "rufus"
+ },
+ "WPFInstallsevenzip": {
+ "winget": "7zip.7zip",
+ "choco": "7zip"
+ },
+ "WPFInstallsharex": {
+ "winget": "ShareX.ShareX",
+ "choco": "sharex"
+ },
+ "WPFInstallsignal": {
+ "winget": "OpenWhisperSystems.Signal",
+ "choco": "signal"
+ },
+ "WPFInstallskype": {
+ "winget": "Microsoft.Skype",
+ "choco": "skype"
+ },
+ "WPFInstallslack": {
+ "winget": "SlackTechnologies.Slack",
+ "choco": "slack"
+ },
+ "WPFInstallsteam": {
+ "winget": "Valve.Steam",
+ "choco": "steam-client"
+ },
+ "WPFInstallsublime": {
+ "winget": "SublimeHQ.SublimeText.4",
+ "choco": "sublimetext4"
+ },
+ "WPFInstallsumatra": {
+ "winget": "SumatraPDF.SumatraPDF",
+ "choco": "sumatrapdf"
+ },
+ "WPFInstallteams": {
+ "winget": "Microsoft.Teams",
+ "choco": "microsoft-teams"
+ },
+ "WPFInstallteamviewer": {
+ "winget": "TeamViewer.TeamViewer",
+ "choco": "teamviewer9"
+ },
+ "WPFInstallterminal": {
+ "winget": "Microsoft.WindowsTerminal",
+ "choco": "microsoft-windows-terminal"
+ },
+ "WPFInstalltreesize": {
+ "winget": "JAMSoftware.TreeSize.Free",
+ "choco": "treesizefree"
+ },
+ "WPFInstallttaskbar": {
+ "winget": "TranslucentTB.TranslucentTB",
+ "choco": "translucenttb"
+ },
+ "WPFInstallvisualstudio": {
+ "winget": "Microsoft.VisualStudio.2022.Community",
+ "choco": "visualstudio2022community"
+ },
+ "WPFInstallvivaldi": {
+ "winget": "VivaldiTechnologies.Vivaldi",
+ "choco": "vivaldi"
+ },
+ "WPFInstallvlc": {
+ "winget": "VideoLAN.VLC",
+ "choco": "vlc"
+ },
+ "WPFInstallvoicemeeter": {
+ "winget": "VB-Audio.Voicemeeter",
+ "choco": "voicemeeter"
+ },
+ "WPFInstallvscode": {
+ "winget": "Git.Git;Microsoft.VisualStudioCode",
+ "choco": "vscode"
+ },
+ "WPFInstallvscodium": {
+ "winget": "Git.Git;VSCodium.VSCodium",
+ "choco": "vscodium"
+ },
+ "WPFInstallwindirstat": {
+ "winget": "WinDirStat.WinDirStat",
+ "choco": "windirstat"
+ },
+ "WPFInstallscp": {
+ "winget": "WinSCP.WinSCP",
+ "choco": "winscp"
+ },
+ "WPFInstallwireshark": {
+ "winget": "WiresharkFoundation.Wireshark",
+ "choco": "wireshark"
+ },
+ "WPFInstallzoom": {
+ "winget": "Zoom.Zoom",
+ "choco": "zoom"
+ },
+ "WPFInstalllibreoffice": {
+ "winget": "TheDocumentFoundation.LibreOffice",
+ "choco": "libreoffice-fresh"
+ },
+ "WPFInstallshell": {
+ "winget": "Nilesoft.Shell",
+ "choco": "na"
+ },
+ "WPFInstallklite": {
+ "winget": "CodecGuide.K-LiteCodecPack.Standard",
+ "choco": "k-litecodecpack-standard"
+ },
+ "WPFInstallsandboxie": {
+ "winget": "Sandboxie.Plus",
+ "choco": "sandboxie"
+ },
+ "WPFInstallprocesslasso": {
+ "winget": "BitSum.ProcessLasso",
+ "choco": "plasso"
+ },
+ "WPFInstallwinmerge": {
+ "winget": "WinMerge.WinMerge",
+ "choco": "winmerge"
+ },
+ "WPFInstalldotnet3": {
+ "winget": "Microsoft.DotNet.DesktopRuntime.3_1",
+ "choco": "dotnetcore3-desktop-runtime"
+ },
+ "WPFInstalldotnet5": {
+ "winget": "Microsoft.DotNet.DesktopRuntime.5",
+ "choco": "dotnet-5.0-runtime"
+ },
+ "WPFInstalldotnet6": {
+ "winget": "Microsoft.DotNet.DesktopRuntime.6",
+ "choco": "dotnet-6.0-runtime"
+ },
+ "WPFInstallvc2015_64": {
+ "winget": "Microsoft.VC++2015-2022Redist-x64",
+ "choco": "na"
+ },
+ "WPFInstallvc2015_32": {
+ "winget": "Microsoft.VC++2015-2022Redist-x86",
+ "choco": "na"
+ },
+ "WPFInstallfoxpdf": {
+ "winget": "Foxit.PhantomPDF",
+ "choco": "na"
+ },
+ "WPFInstallonlyoffice": {
+ "winget": "ONLYOFFICE.DesktopEditors",
+ "choco": "onlyoffice"
+ },
+ "WPFInstallflux": {
+ "winget": "flux.flux",
+ "choco": "flux"
+ },
+ "WPFInstallitunes": {
+ "winget": "Apple.iTunes",
+ "choco": "itunes"
+ },
+ "WPFInstallcider": {
+ "winget": "CiderCollective.Cider",
+ "choco": "cider"
+ },
+ "WPFInstalljoplin": {
+ "winget": "Joplin.Joplin",
+ "choco": "joplin"
+ },
+ "WPFInstallopenoffice": {
+ "winget": "Apache.OpenOffice",
+ "choco": "openoffice"
+ },
+ "WPFInstallrustdesk": {
+ "winget": "RustDesk.RustDesk",
+ "choco": "rustdesk.portable"
+ },
+ "WPFInstalljami": {
+ "winget": "SFLinux.Jami",
+ "choco": "jami"
+ },
+ "WPFInstalljdownloader": {
+ "winget": "AppWork.JDownloader",
+ "choco": "jdownloader"
+ },
+ "WPFInstallsimplewall": {
+ "Winget": "Henry++.simplewall",
+ "choco": "simplewall"
+ },
+ "WPFInstallrustlang": {
+ "Winget": "Rustlang.Rust.MSVC",
+ "choco": "rust"
+ },
+ "WPFInstallalacritty": {
+ "Winget": "Alacritty.Alacritty",
+ "choco": "alacritty"
+ },
+ "WPFInstallkdenlive": {
+ "Winget": "KDE.Kdenlive",
+ "choco": "kdenlive"
+ },
+ "WPFInstallglaryutilities": {
+ "Winget": "Glarysoft.GlaryUtilities",
+ "choco": "glaryutilities-free"
+ },
+ "WPFInstalltwinkletray": {
+ "Winget": "xanderfrangos.twinkletray",
+ "choco": "na"
+ },
+ "WPFInstallidm": {
+ "Winget": "Tonec.InternetDownloadManager",
+ "choco": "internet-download-manager"
+ },
+ "WPFInstallviber": {
+ "Winget": "Viber.Viber",
+ "choco": "viber"
+ },
+ "WPFInstallgit": {
+ "Winget": "Git.Git",
+ "choco": "git"
+ },
+ "WPFInstallwiztree": {
+ "Winget": "AntibodySoftware.WizTree",
+ "choco": "wiztree\\"
+ },
+ "WPFInstalltor": {
+ "Winget": "TorProject.TorBrowser",
+ "choco": "tor-browser"
+ },
+ "WPFInstallkrita": {
+ "winget": "KDE.Krita",
+ "choco": "krita"
+ },
+ "WPFInstallnglide": {
+ "winget": "ZeusSoftware.nGlide",
+ "choco": "na"
+ },
+ "WPFInstallkodi": {
+ "winget": "XBMCFoundation.Kodi",
+ "choco": "kodi"
+ },
+ "WPFInstalltelegram": {
+ "winget": "Telegram.TelegramDesktop",
+ "choco": "telegram"
+ },
+ "WPFInstallunity": {
+ "winget": "UnityTechnologies.UnityHub",
+ "choco": "unityhub"
+ },
+ "WPFInstallqbittorrent": {
+ "winget": "qBittorrent.qBittorrent",
+ "choco": "qbittorrent"
+ },
+ "WPFInstallorigin": {
+ "winget": "ElectronicArts.EADesktop",
+ "choco": "origin"
+ },
+ "WPFInstallopenshell": {
+ "winget": "Open-Shell.Open-Shell-Menu",
+ "choco": "open-shell"
+ },
+ "WPFInstallbluestacks": {
+ "winget": "BlueStack.BlueStacks",
+ "choco": "na"
+ },
+ "WPFInstallstrawberry": {
+ "winget": "StrawberryMusicPlayer.Strawberry",
+ "choco": "strawberrymusicplayer"
+ },
+ "WPFInstallsqlstudio": {
+ "winget": "Microsoft.SQLServerManagementStudio",
+ "choco": "sql-server-management-studio"
+ },
+ "WPFInstallwaterfox": {
+ "winget": "Waterfox.Waterfox",
+ "choco": "waterfox"
+ },
+ "WPFInstallpowershell": {
+ "winget": "Microsoft.PowerShell",
+ "choco": "powershell-core"
+ },
+ "WPFInstallprocessmonitor": {
+ "winget": "Microsoft.Sysinternals.ProcessMonitor",
+ "choco": "procexp"
+ },
+ "WPFInstallonedrive": {
+ "winget": "Microsoft.OneDrive",
+ "choco": "onedrive"
+ },
+ "WPFInstalledge": {
+ "winget": "Microsoft.Edge",
+ "choco": "microsoft-edge"
+ },
+ "WPFInstallnuget": {
+ "winget": "Microsoft.NuGet",
+ "choco": "nuget.commandline"
}
}
diff --git a/config/helperscript.ps1 b/config/helperscript.ps1
index ccd3add7..51a92624 100644
--- a/config/helperscript.ps1
+++ b/config/helperscript.ps1
@@ -3,16 +3,17 @@
<#
Applications.json
-----------------
- This file holds all the winget commands to install the applications.
- It also has the ablity to expact to other frameworks (IE Choco).
- You can also add multiple winget commands by seperating them with ;
+ This file holds all the install commands to install the applications.
+ This file has the ability to expect multiple frameworks per checkbox.
+ You can also add multiple install commands by seperating them with ;
The structure of the json is as follows
{
"install": {
"Name of Button": {
- "winget": "Winget command"
+ "winget": "Winget command"
+ "choco": "Chocolatey command"
},
}
@@ -22,9 +23,11 @@ Example:
"install": {
"WPFInstalladobe": {
"winget": "Adobe.Acrobat.Reader.64-bit"
+ "choco": "adobereader"
},
"WPFInstalladvancedip": {
"winget": "Famatech.AdvancedIPScanner"
+ "choco": "advanced-ip-scanner"
}
}
}
@@ -36,6 +39,7 @@ Example:
$NameofButton = "WPF" + ""
$WingetCommand = ""
+$ChocoCommand = ""
$ButtonToAdd = New-Object psobject
$jsonfile = Get-Content ./config/applications.json | ConvertFrom-Json
@@ -46,6 +50,7 @@ if($jsonfile.install.$NameofButton){
}
Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "Winget" -Value $WingetCommand
+Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "choco" -Value $ChocoCommand
Add-Member -InputObject $jsonfile.install -MemberType NoteProperty -Name $NameofButton -Value $ButtonToAdd
$jsonfile | ConvertTo-Json | Out-File ./config/applications.json
@@ -138,7 +143,7 @@ Example:
#Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
-$NameofButton = ""
+$NameofButton = "WPF" + ""
$commands = @(
)
diff --git a/config/preset.json b/config/preset.json
index 9abbd4d2..c545d2ec 100644
--- a/config/preset.json
+++ b/config/preset.json
@@ -1,38 +1,38 @@
{
"desktop": [
- "EssTweaksAH",
- "EssTweaksDVR",
- "EssTweaksHiber",
- "EssTweaksHome",
- "EssTweaksLoc",
- "EssTweaksOO",
- "EssTweaksRP",
- "EssTweaksServices",
- "EssTweaksStorage",
- "EssTweaksTele",
- "EssTweaksWifi",
- "MiscTweaksPower",
- "MiscTweaksNum"
+ "WPFEssTweaksAH",
+ "WPFEssTweaksDVR",
+ "WPFEssTweaksHiber",
+ "WPFEssTweaksHome",
+ "WPFEssTweaksLoc",
+ "WPFEssTweaksOO",
+ "WPFEssTweaksRP",
+ "WPFEssTweaksServices",
+ "WPFEssTweaksStorage",
+ "WPFEssTweaksTele",
+ "WPFEssTweaksWifi",
+ "WPFMiscTweaksPower",
+ "WPFMiscTweaksNum"
],
"laptop": [
- "EssTweaksAH",
- "EssTweaksDVR",
- "EssTweaksHome",
- "EssTweaksLoc",
- "EssTweaksOO",
- "EssTweaksRP",
- "EssTweaksServices",
- "EssTweaksStorage",
- "EssTweaksTele",
- "EssTweaksWifi",
- "MiscTweaksLapPower",
- "MiscTweaksLapNum"
+ "WPFEssTweaksAH",
+ "WPFEssTweaksDVR",
+ "WPFEssTweaksHome",
+ "WPFEssTweaksLoc",
+ "WPFEssTweaksOO",
+ "WPFEssTweaksRP",
+ "WPFEssTweaksServices",
+ "WPFEssTweaksStorage",
+ "WPFEssTweaksTele",
+ "WPFEssTweaksWifi",
+ "WPFMiscTweaksLapPower",
+ "WPFMiscTweaksLapNum"
],
"minimal": [
- "EssTweaksHome",
- "EssTweaksOO",
- "EssTweaksRP",
- "EssTweaksServices",
- "EssTweaksTele"
+ "WPFEssTweaksHome",
+ "WPFEssTweaksOO",
+ "WPFEssTweaksRP",
+ "WPFEssTweaksServices",
+ "WPFEssTweaksTele"
]
}
diff --git a/pester/winutil.Tests.ps1 b/pester/winutil.Tests.ps1
index ac4d27be..3f669082 100644
--- a/pester/winutil.Tests.ps1
+++ b/pester/winutil.Tests.ps1
@@ -17,10 +17,7 @@
$global:configs = @{}
(
- "applications",
- "tweaks",
- "preset",
- "feature"
+ "applications"
) | ForEach-Object {
$global:configs["$PSItem"] = Get-Content .\config\$PSItem.json | ConvertFrom-Json
}
@@ -34,99 +31,54 @@
$global:Form = [Windows.Markup.XamlReader]::Load( $global:reader )
$global:xaml.SelectNodes("//*[@Name]") | ForEach-Object { Set-Variable -Name "Global:WPF$($_.Name)" -Value $global:Form.FindName($_.Name) -Scope global }
- #Variables to compare GUI to config files
- $Global:GUIFeatureCount = ( $global:configs.feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
- $Global:GUIApplicationCount = ($global:configs.applications.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
- $Global:GUITweaksCount = ($global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
-
#dotsource original script to pull in all variables and ensure no errors
$script = Get-Content .\winutil.ps1
- $output = $script[0..($script.count - 3)] | Out-File .\pester.ps1
+ $output = $script[0..($script.count - 4)] | Out-File .\pester.ps1
+
#endregion Load Variables needed for testing
#===========================================================================
-# Tests - Config Files
+# Tests - Application Installs
#===========================================================================
-Describe "Config Files" {
+Describe "Application Installs" {
Context "Application installs" {
It "Imports with no errors" {
$global:configs.Applications | should -Not -BeNullOrEmpty
}
- It "Json should be in correct format" {
- $winget = $global:configs.applications.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
- $winget.name | should -BeLike "*Install*"
- $winget.winget | should -Not -BeNullOrEmpty
+ }
+ Context "Winget Install" {
+ $global:configs.applications.install | Get-Member -MemberType NoteProperty | ForEach-Object {
+ $TestCase = @{ name = $psitem.name }
+ It "$($psitem.name) should include Winget Install" -TestCases $TestCase{
+ param($name)
+ $null -eq $global:configs.applications.install.$name.winget | should -Befalse -because "$name Did not include a Winget Install"
+ }
+ }
+ }
+ Context "GUI Applications Checkbox" {
+ (get-variable | Where-Object {$psitem.name -like "*install*" -and $psitem.value.GetType().name -eq "CheckBox"}).name -replace 'Global:','' | ForEach-Object {
+
+ $TestCase = @{ name = $psitem }
+ It "$($psitem) should include application.json " -TestCases $TestCase{
+ param($name)
+ $null -eq $global:configs.applications.install.$name | should -Befalse -because "$name Does not have entry in applications.json"
+ }
}
}
+}
- Context "Preset" {
+#===========================================================================
+# Tests - Tweak Presets
+#===========================================================================
+
+Describe "Tweak Presets" {
+ Context "Json Import" {
It "Imports with no errors" {
$global:configs.preset | should -Not -BeNullOrEmpty
}
- It "Json should be in correct format" {
- $preset = $global:configs.preset.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
- $preset.name | should -Not -BeNullOrEmpty
- $preset.Value | should -BeLike "*Tweaks*"
- }
- }
-
- Context "feature" {
- It "Imports with no errors" {
- $global:configs.feature | should -Not -BeNullOrEmpty
- }
- It "Json should be in correct format" {
- $feature = $global:configs.feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
- $feature.name | should -BeLike "*Feature*"
- $feature.Value | should -Not -BeNullOrEmpty
- }
- }
-
- Context "tweaks" {
- It "Imports with no errors" {
- $global:configs.tweaks | should -Not -BeNullOrEmpty
- }
- It "Json should be in correct format" {
- $tweaks = $global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
- $tweaks.name | should -BeLike "*Tweaks*"
- $tweaks.Value.registry | should -Not -BeNullOrEmpty
- $tweaks.Value.Service | should -Not -BeNullOrEmpty
- $tweaks.Value.ScheduledTask | should -Not -BeNullOrEmpty
- $tweaks.Value.Appx | should -Not -BeNullOrEmpty
- $tweaks.Value.InvokeScript | should -Not -BeNullOrEmpty
- }
- It "Original Values should be set" {
- $tweaks = $global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
-
- Foreach($tweak in $tweaks){
- if($tweak.value.registry){
-
- $values = $tweak.value | Select-Object -ExpandProperty registry
-
- Foreach ($value in $values){
- $value.OriginalValue | should -Not -BeNullOrEmpty
- }
- }
- if($tweak.value.Service){
-
- $values = $tweak.value | Select-Object -ExpandProperty Service
-
- Foreach ($value in $values){
- $value.OriginalType | should -Not -BeNullOrEmpty
- }
- }
- if($tweak.value.ScheduledTask){
-
- $values = $tweak.value | Select-Object -ExpandProperty ScheduledTask
-
- Foreach ($value in $values){
- $value.OriginalState | should -Not -BeNullOrEmpty
- }
- }
- }
- }
- }
+ }
}
#===========================================================================
@@ -150,26 +102,17 @@ Describe "GUI" {
It "Title should match XML" {
$global:Form.title | should -Be $global:XAML.window.Title
}
- It "Features should be $Global:GUIFeatureCount" {
- (get-variable | Where-Object {$psitem.name -like "*feature*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUIFeatureCount
- }
- It "Applications should be $Global:GUIApplicationCount" {
- (get-variable | Where-Object {$psitem.name -like "*install*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUIApplicationCount
- }
- It "Tweaks should be $Global:GUITweaksCount" {
- (get-variable | Where-Object {$psitem.name -like "*tweaks*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUITweaksCount
- }
}
}
#===========================================================================
-# Tests - GUI
+# Tests - GUI Functions
#===========================================================================
Describe "GUI Functions" {
+ BeforeEach -Scriptblock {. ./pester.ps1}
It "GUI should load with no errors" {
- . .\pester.ps1
$WPFTab1BT | should -Not -BeNullOrEmpty
$WPFundoall | should -Not -BeNullOrEmpty
$WPFPanelDISM | should -Not -BeNullOrEmpty
@@ -190,8 +133,9 @@ Describe "GUI Functions" {
$WPFinstall | should -Not -BeNullOrEmpty
}
- It "Get-CheckBoxes Install should return data" {
- . .\pester.ps1
+ Context "Get-CheckBoxes" {
+ It "Get-CheckBoxes Install should return data" {
+ . .\pester.ps1
$TestCheckBoxes = @(
"WPFInstallvc2015_32"
@@ -215,4 +159,15 @@ Describe "GUI Functions" {
$Output | Should -Be $($OutputResult | Select-Object -Unique | Sort-Object) -Because "Output doesn't match"
$TestCheckBoxes | ForEach-Object {(Get-Variable $PSItem).value.ischecked | should -be $false}
}
-}
\ No newline at end of file
+
+ Context "Set-Presets" {
+ $global:configs.preset | Get-Member -MemberType NoteProperty | ForEach-Object {
+ $TestCase = @{ name = $psitem.name }
+ It "preset $($psitem.name) should modify the correct values" -TestCases $TestCase {
+ param($name)
+ Set-Presets $name
+ get-variable $global:configs.preset.$name | Select-Object -ExpandProperty value | Select-Object -ExpandProperty ischecked | Where-Object {$psitem -eq $false} | should -BeNullOrEmpty
+ }
+ }
+ }
+}
diff --git a/runspace.ps1 b/runspace.ps1
index fa0ce36d..6ffbb41e 100644
--- a/runspace.ps1
+++ b/runspace.ps1
@@ -1,5 +1,5 @@
#for CI/CD
-$BranchToUse = 'hotfix/applications'
+$BranchToUse = 'test'
<#
.NOTES
diff --git a/winutil.ps1 b/winutil.ps1
index 2e69b8e2..e49671c0 100644
--- a/winutil.ps1
+++ b/winutil.ps1
@@ -1,24 +1,26 @@
#for CI/CD
-$BranchToUse = 'hotfix/applications'
+$BranchToUse = 'test'
+
<#
.NOTES
Author : Chris Titus @christitustech
GitHub : https://github.com/ChrisTitusTech
Version 0.0.1
#>
+
+Start-Transcript $ENV:TEMP\Winutil.log -Append
+
# $inputXML = Get-Content "MainWindow.xaml" #uncomment for development
$inputXML = (new-object Net.WebClient).DownloadString("https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/MainWindow.xaml") #uncomment for Production
-# Choco install
-$testchoco = powershell choco -v
-if(-not($testchoco)){
+# Check if chocolatey is installed and get its version
+if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)) {
+ Write-Output "Chocolatey Version $chocoVersion is already installed"
+}else {
Write-Output "Seems Chocolatey is not installed, installing now"
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
powershell choco feature enable -n allowGlobalConfirmation
}
-else{
- Write-Output "Chocolatey Version $testchoco is already installed"
-}
#Load config files to hashtable
$configs = @{}
@@ -130,6 +132,30 @@ Function Get-CheckBoxes {
Write-Output $($Output | Select-Object -Unique)
}
+function Set-Presets {
+ <#
+
+ .DESCRIPTION
+ Meant to make settings presets easier in the tweaks tab. Will pull the data from config/preset.json
+
+ #>
+
+ param($preset)
+ $CheckBoxesToCheck = $configs.preset.$preset
+
+ #Uncheck all
+ get-variable | Where-Object {$_.name -like "*tweaks*"} | ForEach-Object {
+ if ($psitem.value.gettype().name -eq "CheckBox"){
+ $CheckBox = Get-Variable $psitem.Name
+ if ($CheckBoxesToCheck -contains $CheckBox.name){
+ $checkbox.value.ischecked = $true
+ }
+ else{$checkbox.value.ischecked = $false}
+ }
+ }
+
+}
+
#===========================================================================
# Global Variables
#===========================================================================
@@ -196,7 +222,7 @@ $WPFinstall.Add_Click({
# Switching to winget-install from PSGallery from asheroto
# Source: https://github.com/asheroto/winget-installer
- Start-Process powershell.exe -Verb RunAs -ArgumentList "-command irm https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/winget.ps1 | iex | Out-Host" -WindowStyle Normal
+ Start-Process powershell.exe -Verb RunAs -ArgumentList "-command irm https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/winget.ps1 | iex | Out-Host" -WindowStyle Normal
}
elseif (((Get-ComputerInfo).WindowsVersion) -lt "1809") {
@@ -225,7 +251,7 @@ $WPFinstall.Add_Click({
$wingetResult = New-Object System.Collections.Generic.List[System.Object]
foreach ( $node in $wingetinstall ) {
try {
- Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -WindowStyle Normal
+ Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript $ENV:TEMP\winget-$node.log -Append; winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -WindowStyle Normal
$wingetResult.Add("$node`n")
Start-Sleep -s 6
Wait-Process winget -Timeout 90 -ErrorAction SilentlyContinue
@@ -281,85 +307,16 @@ $WPFInstallUpgrade.Add_Click({
# Tab 2 - Tweak Buttons
#===========================================================================
$WPFdesktop.Add_Click({
-
- $WPFEssTweaksAH.IsChecked = $true
- $WPFEssTweaksDeleteTempFiles.IsChecked = $true
- $WPFEssTweaksDeBloat.IsChecked = $false
- $WPFEssTweaksRemoveCortana.IsChecked = $false
- $WPFEssTweaksRemoveEdge.IsChecked = $false
- $WPFEssTweaksDiskCleanup.IsChecked = $false
- $WPFEssTweaksDVR.IsChecked = $true
- $WPFEssTweaksHiber.IsChecked = $true
- $WPFEssTweaksHome.IsChecked = $true
- $WPFEssTweaksLoc.IsChecked = $true
- $WPFEssTweaksOO.IsChecked = $true
- $WPFEssTweaksRP.IsChecked = $true
- $WPFEssTweaksServices.IsChecked = $true
- $WPFEssTweaksStorage.IsChecked = $true
- $WPFEssTweaksTele.IsChecked = $true
- $WPFEssTweaksWifi.IsChecked = $true
- $WPFMiscTweaksDisableUAC.IsChecked = $false
- $WPFMiscTweaksDisableNotifications.IsChecked = $false
- $WPFMiscTweaksRightClickMenu.IsChecked = $false
- $WPFMiscTweaksPower.IsChecked = $true
- $WPFMiscTweaksNum.IsChecked = $true
- $WPFMiscTweaksLapPower.IsChecked = $false
- $WPFMiscTweaksLapNum.IsChecked = $false
- })
+ Set-Presets "Desktop"
+})
$WPFlaptop.Add_Click({
-
- $WPFEssTweaksAH.IsChecked = $true
- $WPFEssTweaksDeleteTempFiles.IsChecked = $true
- $WPFEssTweaksDeBloat.IsChecked = $false
- $WPFEssTweaksRemoveCortana.IsChecked = $false
- $WPFEssTweaksRemoveEdge.IsChecked = $false
- $WPFEssTweaksDiskCleanup.IsChecked = $false
- $WPFEssTweaksDVR.IsChecked = $true
- $WPFEssTweaksHiber.IsChecked = $false
- $WPFEssTweaksHome.IsChecked = $true
- $WPFEssTweaksLoc.IsChecked = $true
- $WPFEssTweaksOO.IsChecked = $true
- $WPFEssTweaksRP.IsChecked = $true
- $WPFEssTweaksServices.IsChecked = $true
- $WPFEssTweaksStorage.IsChecked = $true
- $WPFEssTweaksTele.IsChecked = $true
- $WPFEssTweaksWifi.IsChecked = $true
- $WPFMiscTweaksDisableUAC.IsChecked = $false
- $WPFMiscTweaksDisableNotifications.IsChecked = $false
- $WPFMiscTweaksRightClickMenu.IsChecked = $false
- $WPFMiscTweaksLapPower.IsChecked = $true
- $WPFMiscTweaksLapNum.IsChecked = $true
- $WPFMiscTweaksPower.IsChecked = $false
- $WPFMiscTweaksNum.IsChecked = $false
- })
+ Set-Presets "laptop"
+})
$WPFminimal.Add_Click({
-
- $WPFEssTweaksAH.IsChecked = $false
- $WPFEssTweaksDeleteTempFiles.IsChecked = $false
- $WPFEssTweaksDeBloat.IsChecked = $false
- $WPFEssTweaksRemoveCortana.IsChecked = $false
- $WPFEssTweaksRemoveEdge.IsChecked = $false
- $WPFEssTweaksDiskCleanup.IsChecked = $false
- $WPFEssTweaksDVR.IsChecked = $false
- $WPFEssTweaksHiber.IsChecked = $false
- $WPFEssTweaksHome.IsChecked = $true
- $WPFEssTweaksLoc.IsChecked = $false
- $WPFEssTweaksOO.IsChecked = $true
- $WPFEssTweaksRP.IsChecked = $true
- $WPFEssTweaksServices.IsChecked = $true
- $WPFEssTweaksStorage.IsChecked = $false
- $WPFEssTweaksTele.IsChecked = $true
- $WPFEssTweaksWifi.IsChecked = $false
- $WPFMiscTweaksDisableUAC.IsChecked = $false
- $WPFMiscTweaksDisableNotifications.IsChecked = $false
- $WPFMiscTweaksRightClickMenu.IsChecked = $false
- $WPFMiscTweaksPower.IsChecked = $false
- $WPFMiscTweaksNum.IsChecked = $false
- $WPFMiscTweaksLapPower.IsChecked = $false
- $WPFMiscTweaksLapNum.IsChecked = $false
- })
+ Set-Presets "minimal"
+})
$WPFtweaksbutton.Add_Click({
@@ -465,32 +422,32 @@ $WPFtweaksbutton.Add_Click({
$DC = "8.8.8.8"
$Internet = "8.8.4.4"
$dns = "$DC", "$Internet"
- $Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
- $Interface.SetDNSServerSearchOrder($dns) | Out-Null
+ $Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
+ $Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFchangedns.text -eq 'Cloud Flare' ) {
Write-Host "Setting DNS to Cloud Flare for all connections..."
$DC = "1.1.1.1"
$Internet = "1.0.0.1"
$dns = "$DC", "$Internet"
- $Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
- $Interface.SetDNSServerSearchOrder($dns) | Out-Null
+ $Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
+ $Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFchangedns.text -eq 'Level3' ) {
Write-Host "Setting DNS to Level3 for all connections..."
$DC = "4.2.2.2"
$Internet = "4.2.2.1"
$dns = "$DC", "$Internet"
- $Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
- $Interface.SetDNSServerSearchOrder($dns) | Out-Null
+ $Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
+ $Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFchangedns.text -eq 'Open DNS' ) {
Write-Host "Setting DNS to Open DNS for all connections..."
$DC = "208.67.222.222"
$Internet = "208.67.220.220"
$dns = "$DC", "$Internet"
- $Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
- $Interface.SetDNSServerSearchOrder($dns) | Out-Null
+ $Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
+ $Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFEssTweaksOO.IsChecked -eq $true ) {
If (!(Test-Path .\ooshutup10.cfg)) {
@@ -738,7 +695,7 @@ $WPFtweaksbutton.Add_Click({
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games" -Name "Scheduling Category" -Type String -Value "High"
# Group svchost.exe processes
- $ram = (Get-CimInstance -ClassName Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum / 1kb
+ $ram = (Get-CimInstance -ClassName "Win32_PhysicalMemory" | Measure-Object -Property Capacity -Sum).Sum / 1kb
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control" -Name "SvcHostSplitThresholdInKB" -Type DWord -Value $ram -Force
Write-Host "Disable News and Interests"
@@ -767,8 +724,9 @@ $WPFtweaksbutton.Add_Click({
Write-Host "Stopping and disabling Diagnostics Tracking Service..."
Stop-Service "DiagTrack"
Set-Service "DiagTrack" -StartupType Disabled
+
Write-Host "Doing Security checks for Administrator Account and Group Policy"
- if (($(Get-WMIObject -class Win32_ComputerSystem | Select-Object username).username).IndexOf('Administrator') -eq -1) {
+ if (([System.Security.Principal.WindowsIdentity]::GetCurrent().Name).IndexOf('Administrator') -eq -1) {
net user administrator /active:no
}
@@ -1066,24 +1024,35 @@ $WPFRemoveUltPerf.Add_Click({
Write-Host "Profile Removed"
}
)
-
-$WPFEnableDarkMode.Add_Click({
- Write-Host "Enabling Dark Mode"
- $Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
- Set-ItemProperty $Theme AppsUseLightTheme -Value 0
- Set-ItemProperty $Theme SystemUsesLightTheme -Value 0
- Write-Host "Enabled"
+
+function Get-AppsUseLightTheme{
+ return (Get-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize').AppsUseLightTheme
+}
+
+function Get-SystemUsesLightTheme{
+ return (Get-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize').SystemUsesLightTheme
+}
+
+$WPFToggleDarkMode.IsChecked = $(If ($(Get-AppsUseLightTheme) -eq 0 -And $(Get-SystemUsesLightTheme) -eq 0) {$true} Else {$false})
+
+$WPFToggleDarkMode.Add_Click({
+ $EnableDarkMode = $WPFToggleDarkMode.IsChecked
+ $DarkMoveValue = $(If ( $EnableDarkMode ) {0} Else {1})
+ Write-Host $(If ( $EnableDarkMode ) {"Enabling Dark Mode"} Else {"Disabling Dark Mode"})
+ $Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
+ If ($DarkMoveValue -ne $(Get-AppsUseLightTheme))
+ {
+ Set-ItemProperty $Theme AppsUseLightTheme -Value $DarkMoveValue
+ }
+ If ($DarkMoveValue -ne $(Get-SystemUsesLightTheme))
+ {
+ Set-ItemProperty $Theme SystemUsesLightTheme -Value $DarkMoveValue
+ }
+ Write-Host $(If ( $EnableDarkMode ) {"Enabled"} Else {"Disabled"})
+
}
)
-$WPFDisableDarkMode.Add_Click({
- Write-Host "Disabling Dark Mode"
- $Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
- Set-ItemProperty $Theme AppsUseLightTheme -Value 1
- Set-ItemProperty $Theme SystemUsesLightTheme -Value 1
- Write-Host "Disabled"
- }
-)
#===========================================================================
# Undo All
#===========================================================================
@@ -1440,7 +1409,7 @@ $WPFFixesUpdate.Add_Click({
Get-BitsTransfer | Remove-BitsTransfer
Write-Host "10) Attempting to install the Windows Update Agent..."
- If (!((wmic OS get OSArchitecture | Out-String).IndexOf("64") -eq -1)) {
+ If ([System.Environment]::Is64BitOperatingSystem) {
wusa Windows8-RT-KB2937636-x64 /quiet
}
else {
@@ -1538,3 +1507,4 @@ $WPFUpdatessecurity.Add_Click({
#===========================================================================
Get-FormVariables
$Form.ShowDialog() | out-null
+Stop-Transcript