mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-01-16 01:40:35 -06:00
add description feature
This commit is contained in:
parent
73973d7101
commit
790e0b22a5
@ -13,9 +13,9 @@
|
|||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
Set-WinUtilTaskbaritem -value 0.5 -state "Normal"
|
Set-WinUtilTaskbaritem -value 0.5 -state "Normal"
|
||||||
Set-WinUtilTaskbaritem -state "Error"
|
Set-WinUtilTaskbaritem -state "Error"
|
||||||
Set-WinUtilTaskbaritem -state "None"
|
|
||||||
Set-WinUtilTaskbaritem -state "Indeterminate"
|
Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||||
Set-WinUtilTaskbaritem -overlay "C:\path\to\icon.ico"
|
Set-WinUtilTaskbaritem -description "This is a description"
|
||||||
|
Set-WinUtilTaskbaritem -overlay "C:\path\to\icon.png"
|
||||||
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
@ -24,8 +24,8 @@ function Set-WinUtilTaskbaritem {
|
|||||||
param (
|
param (
|
||||||
[double]$value,
|
[double]$value,
|
||||||
$state,
|
$state,
|
||||||
$overlay
|
$overlay,
|
||||||
#[string]$description
|
$description
|
||||||
)
|
)
|
||||||
|
|
||||||
if ($value) {
|
if ($value) {
|
||||||
@ -60,4 +60,8 @@ function Set-WinUtilTaskbaritem {
|
|||||||
|
|
||||||
$sync["Form"].taskbarItemInfo.Overlay = $bitmapImage
|
$sync["Form"].taskbarItemInfo.Overlay = $bitmapImage
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($description) {
|
||||||
|
$sync["Form"].taskbarItemInfo.Description = $description
|
||||||
|
}
|
||||||
}
|
}
|
293
winutil.ps1
293
winutil.ps1
@ -8,7 +8,7 @@
|
|||||||
Author : Chris Titus @christitustech
|
Author : Chris Titus @christitustech
|
||||||
Runspace Author: @DeveloperDurp
|
Runspace Author: @DeveloperDurp
|
||||||
GitHub : https://github.com/ChrisTitusTech
|
GitHub : https://github.com/ChrisTitusTech
|
||||||
Version : 24.06.29
|
Version : 24.07.12
|
||||||
#>
|
#>
|
||||||
param (
|
param (
|
||||||
[switch]$Debug,
|
[switch]$Debug,
|
||||||
@ -45,7 +45,7 @@ Add-Type -AssemblyName System.Windows.Forms
|
|||||||
# Variable to sync between runspaces
|
# Variable to sync between runspaces
|
||||||
$sync = [Hashtable]::Synchronized(@{})
|
$sync = [Hashtable]::Synchronized(@{})
|
||||||
$sync.PSScriptRoot = $PSScriptRoot
|
$sync.PSScriptRoot = $PSScriptRoot
|
||||||
$sync.version = "24.06.29"
|
$sync.version = "24.07.12"
|
||||||
$sync.configs = @{}
|
$sync.configs = @{}
|
||||||
$sync.ProcessRunning = $false
|
$sync.ProcessRunning = $false
|
||||||
|
|
||||||
@ -702,15 +702,19 @@ function Install-WinUtilChoco {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||||
|
|
||||||
Write-Host "Seems Chocolatey is not installed, installing now."
|
Write-Host "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')) -ErrorAction Stop
|
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) -ErrorAction Stop
|
||||||
powershell choco feature enable -n allowGlobalConfirmation
|
powershell choco feature enable -n allowGlobalConfirmation
|
||||||
|
Set-WinUtilTaskbaritem -state "None"
|
||||||
|
|
||||||
}
|
}
|
||||||
Catch {
|
Catch {
|
||||||
Write-Host "===========================================" -Foregroundcolor Red
|
Write-Host "===========================================" -Foregroundcolor Red
|
||||||
Write-Host "-- Chocolatey failed to install ---" -Foregroundcolor Red
|
Write-Host "-- Chocolatey failed to install ---" -Foregroundcolor Red
|
||||||
Write-Host "===========================================" -Foregroundcolor Red
|
Write-Host "===========================================" -Foregroundcolor Red
|
||||||
|
Set-WinUtilTaskbaritem -state "Error"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -796,6 +800,7 @@ function Install-WinUtilProgramChoco {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$x++
|
$x++
|
||||||
|
# Set-WinUtilTaskbaritem -state "Normal" -value $x/$count
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed
|
Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed
|
||||||
|
|
||||||
@ -904,6 +909,7 @@ Function Install-WinUtilProgramWinget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$X++
|
$X++
|
||||||
|
# Set-WinUtilTaskbaritem -state "Normal" -value $x/$count
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed
|
Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed
|
||||||
return $failedPackages;
|
return $failedPackages;
|
||||||
@ -929,6 +935,8 @@ function Install-WinUtilWinget {
|
|||||||
Write-Host "`nWinget is not Installed. Continuing with install.`r" -ForegroundColor Red
|
Write-Host "`nWinget is not Installed. Continuing with install.`r" -ForegroundColor Red
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||||
|
|
||||||
# Gets the computer's information
|
# Gets the computer's information
|
||||||
if ($null -eq $sync.ComputerInfo){
|
if ($null -eq $sync.ComputerInfo){
|
||||||
$ComputerInfo = Get-ComputerInfo -ErrorAction Stop
|
$ComputerInfo = Get-ComputerInfo -ErrorAction Stop
|
||||||
@ -973,6 +981,8 @@ function Install-WinUtilWinget {
|
|||||||
throw [WingetFailedInstall]::new('Failed to install!')
|
throw [WingetFailedInstall]::new('Failed to install!')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Set-WinUtilTaskbaritem -state "None"
|
||||||
|
|
||||||
}
|
}
|
||||||
function Test-CompatibleImage() {
|
function Test-CompatibleImage() {
|
||||||
<#
|
<#
|
||||||
@ -1809,6 +1819,8 @@ function Invoke-WinUtilFeatureInstall {
|
|||||||
$CheckBox
|
$CheckBox
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Normal" -value 1
|
||||||
|
|
||||||
$CheckBox | ForEach-Object {
|
$CheckBox | ForEach-Object {
|
||||||
if($sync.configs.feature.$psitem.feature){
|
if($sync.configs.feature.$psitem.feature){
|
||||||
Foreach( $feature in $sync.configs.feature.$psitem.feature ){
|
Foreach( $feature in $sync.configs.feature.$psitem.feature ){
|
||||||
@ -1822,6 +1834,7 @@ function Invoke-WinUtilFeatureInstall {
|
|||||||
}
|
}
|
||||||
|
|
||||||
else{
|
else{
|
||||||
|
Set-WinUtilTaskbaritem -state "Error"
|
||||||
Write-Warning "Unable to Install $feature due to unhandled exception"
|
Write-Warning "Unable to Install $feature due to unhandled exception"
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
Write-Warning $psitem.Exception.StackTrace
|
||||||
}
|
}
|
||||||
@ -1842,6 +1855,7 @@ function Invoke-WinUtilFeatureInstall {
|
|||||||
}
|
}
|
||||||
|
|
||||||
else{
|
else{
|
||||||
|
Set-WinUtilTaskbaritem -state "Error"
|
||||||
Write-Warning "Unable to Install $feature due to unhandled exception"
|
Write-Warning "Unable to Install $feature due to unhandled exception"
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
Write-Warning $psitem.Exception.StackTrace
|
||||||
}
|
}
|
||||||
@ -1849,6 +1863,9 @@ function Invoke-WinUtilFeatureInstall {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($sync["Form"].taskbarItemInfo.ProgressState -ne "Error"){
|
||||||
|
Set-WinUtilTaskbaritem -state "None"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function Invoke-WinUtilGPU {
|
function Invoke-WinUtilGPU {
|
||||||
$gpuInfo = Get-CimInstance Win32_VideoController
|
$gpuInfo = Get-CimInstance Win32_VideoController
|
||||||
@ -2589,6 +2606,73 @@ Function Set-WinUtilService {
|
|||||||
Write-Warning $_.Exception.Message
|
Write-Warning $_.Exception.Message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
<#
|
||||||
|
|
||||||
|
.SYNOPSIS
|
||||||
|
Modifies the Taskbaritem of the WPF Form
|
||||||
|
|
||||||
|
.PARAMETER state & value
|
||||||
|
Value can be between 0 and 1, 0 being no progress done yet and 1 being fully completed
|
||||||
|
State can be 'None' > No progress, 'Indeterminate' > Without value, 'Normal' > when using value, 'Error' > Red (when using value), 'Paused' > Yellow (when using value)
|
||||||
|
|
||||||
|
.PARAMETER overlay
|
||||||
|
Overlay icon to display on the taskbar item
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Set-WinUtilTaskbaritem -value 0.5 -state "Normal"
|
||||||
|
Set-WinUtilTaskbaritem -state "Error"
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||||
|
Set-WinUtilTaskbaritem -description "This is a description"
|
||||||
|
Set-WinUtilTaskbaritem -overlay "C:\path\to\icon.png"
|
||||||
|
|
||||||
|
#>
|
||||||
|
|
||||||
|
|
||||||
|
function Set-WinUtilTaskbaritem {
|
||||||
|
param (
|
||||||
|
[double]$value,
|
||||||
|
$state,
|
||||||
|
$overlay,
|
||||||
|
$description
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($value) {
|
||||||
|
$sync["Form"].taskbarItemInfo.ProgressValue = $value
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($state) {
|
||||||
|
$sync["Form"].taskbarItemInfo.ProgressState = $state
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($overlay -and (Test-Path $overlay)) {
|
||||||
|
# Read the image file as a byte array
|
||||||
|
$imageBytes = [System.IO.File]::ReadAllBytes($overlay)
|
||||||
|
|
||||||
|
# Convert the byte array to a Base64 string
|
||||||
|
[System.Convert]::ToBase64String($imageBytes)
|
||||||
|
|
||||||
|
# Load the image file as a bitmap
|
||||||
|
$bitmap = [System.Drawing.Bitmap]::new($overlay)
|
||||||
|
|
||||||
|
# Create a streaming image by streaming the bitmap to a memory stream
|
||||||
|
$memoryStream = [System.IO.MemoryStream]::new()
|
||||||
|
$bitmap.Save($memoryStream, [System.Drawing.Imaging.ImageFormat]::Png)
|
||||||
|
$memoryStream.Position = 0
|
||||||
|
|
||||||
|
# Create a bitmap image from the memory stream
|
||||||
|
$bitmapImage = [System.Windows.Media.Imaging.BitmapImage]::new()
|
||||||
|
$bitmapImage.BeginInit()
|
||||||
|
$bitmapImage.StreamSource = $memoryStream
|
||||||
|
$bitmapImage.EndInit()
|
||||||
|
$bitmapImage.Freeze()
|
||||||
|
|
||||||
|
$sync["Form"].taskbarItemInfo.Overlay = $bitmapImage
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($description) {
|
||||||
|
$sync["Form"].taskbarItemInfo.Description = $description
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function Set-WinUtilUITheme {
|
function Set-WinUtilUITheme {
|
||||||
<#
|
<#
|
||||||
@ -3580,6 +3664,7 @@ function Invoke-WPFGetInstalled {
|
|||||||
param($checkbox, $DebugPreference)
|
param($checkbox, $DebugPreference)
|
||||||
|
|
||||||
$sync.ProcessRunning = $true
|
$sync.ProcessRunning = $true
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||||
|
|
||||||
if($checkbox -eq "winget"){
|
if($checkbox -eq "winget"){
|
||||||
Write-Host "Getting Installed Programs..."
|
Write-Host "Getting Installed Programs..."
|
||||||
@ -3598,6 +3683,7 @@ function Invoke-WPFGetInstalled {
|
|||||||
|
|
||||||
Write-Host "Done..."
|
Write-Host "Done..."
|
||||||
$sync.ProcessRunning = $false
|
$sync.ProcessRunning = $false
|
||||||
|
Set-WinUtilTaskbaritem -state "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function Invoke-WPFGetIso {
|
function Invoke-WPFGetIso {
|
||||||
@ -3618,6 +3704,7 @@ function Invoke-WPFGetIso {
|
|||||||
$sync.BusyText.Text="N Busy"
|
$sync.BusyText.Text="N Busy"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Write-Host " _ __ __ _ "
|
Write-Host " _ __ __ _ "
|
||||||
Write-Host " /\/\ (_) ___ _ __ ___ / / /\ \ \(_) _ __ "
|
Write-Host " /\/\ (_) ___ _ __ ___ / / /\ \ \(_) _ __ "
|
||||||
Write-Host " / \ | | / __|| '__| / _ \ \ \/ \/ /| || '_ \ "
|
Write-Host " / \ | | / __|| '__| / _ \ \ \/ \/ /| || '_ \ "
|
||||||
@ -3690,6 +3777,8 @@ function Invoke-WPFGetIso {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||||
|
|
||||||
# Detect the file size of the ISO and compare it with the free space of the system drive
|
# Detect the file size of the ISO and compare it with the free space of the system drive
|
||||||
$isoSize = (Get-Item -Path $filePath).Length
|
$isoSize = (Get-Item -Path $filePath).Length
|
||||||
Write-Debug "Size of ISO file: $($isoSize) bytes"
|
Write-Debug "Size of ISO file: $($isoSize) bytes"
|
||||||
@ -3841,6 +3930,7 @@ function Invoke-WPFGetIso {
|
|||||||
|
|
||||||
$sync.BusyMessage.Visibility="Hidden"
|
$sync.BusyMessage.Visibility="Hidden"
|
||||||
$sync.ProcessRunning = $false
|
$sync.ProcessRunning = $false
|
||||||
|
Set-WinUtilTaskbaritem -state "None"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3927,8 +4017,10 @@ function Invoke-WPFInstall {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Invoke-WPFRunspace -ArgumentList $PackagesToInstall -DebugPreference $DebugPreference -ScriptBlock {
|
Invoke-WPFRunspace -ArgumentList $PackagesToInstall -DebugPreference $DebugPreference -ScriptBlock {
|
||||||
param($PackagesToInstall, $DebugPreference)
|
param($PackagesToInstall, $DebugPreference)
|
||||||
|
Set-WinUtilTaskbaritem -state "Normal" -value 1/$PackagesToInstall.Count
|
||||||
$packagesWinget, $packagesChoco = {
|
$packagesWinget, $packagesChoco = {
|
||||||
$packagesWinget = [System.Collections.Generic.List`1[System.Object]]::new()
|
$packagesWinget = [System.Collections.Generic.List`1[System.Object]]::new()
|
||||||
$packagesChoco = [System.Collections.Generic.List`1[System.Object]]::new()
|
$packagesChoco = [System.Collections.Generic.List`1[System.Object]]::new()
|
||||||
@ -3959,11 +4051,13 @@ function Invoke-WPFInstall {
|
|||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
Write-Host "-- Installs have finished ---"
|
Write-Host "-- Installs have finished ---"
|
||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
|
# Set-WinUtilTaskbaritem -state "None"
|
||||||
}
|
}
|
||||||
Catch {
|
Catch {
|
||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
Write-Host "Error: $_"
|
Write-Host "Error: $_"
|
||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
|
# Set-WinUtilTaskbaritem -state "Error"
|
||||||
}
|
}
|
||||||
Start-Sleep -Seconds 5
|
Start-Sleep -Seconds 5
|
||||||
$sync.ProcessRunning = $False
|
$sync.ProcessRunning = $False
|
||||||
@ -3999,6 +4093,7 @@ function Invoke-WPFMicrowin {
|
|||||||
Invoke MicroWin routines...
|
Invoke MicroWin routines...
|
||||||
#>
|
#>
|
||||||
|
|
||||||
|
|
||||||
if($sync.ProcessRunning) {
|
if($sync.ProcessRunning) {
|
||||||
$msg = "GetIso process is currently running."
|
$msg = "GetIso process is currently running."
|
||||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||||
@ -4037,6 +4132,8 @@ public class PowerManagement {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||||
|
|
||||||
Write-Host "Target ISO location: $($SaveDialog.FileName)"
|
Write-Host "Target ISO location: $($SaveDialog.FileName)"
|
||||||
|
|
||||||
$index = $sync.MicrowinWindowsFlavors.SelectedValue.Split(":")[0].Trim()
|
$index = $sync.MicrowinWindowsFlavors.SelectedValue.Split(":")[0].Trim()
|
||||||
@ -4472,6 +4569,7 @@ public class PowerManagement {
|
|||||||
# Allow the machine to sleep again (optional)
|
# Allow the machine to sleep again (optional)
|
||||||
[PowerManagement]::SetThreadExecutionState(0)
|
[PowerManagement]::SetThreadExecutionState(0)
|
||||||
$sync.ProcessRunning = $false
|
$sync.ProcessRunning = $false
|
||||||
|
Set-WinUtilTaskbaritem -state "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function Invoke-WPFOOSU {
|
function Invoke-WPFOOSU {
|
||||||
@ -5211,6 +5309,8 @@ function Invoke-WPFUnInstall {
|
|||||||
|
|
||||||
if($confirm -eq "No"){return}
|
if($confirm -eq "No"){return}
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Normal" -value 1/$PackagesToInstall.Count
|
||||||
|
|
||||||
Invoke-WPFRunspace -ArgumentList $PackagesToInstall -DebugPreference $DebugPreference -ScriptBlock {
|
Invoke-WPFRunspace -ArgumentList $PackagesToInstall -DebugPreference $DebugPreference -ScriptBlock {
|
||||||
param($PackagesToInstall, $DebugPreference)
|
param($PackagesToInstall, $DebugPreference)
|
||||||
$packagesWinget, $packagesChoco = {
|
$packagesWinget, $packagesChoco = {
|
||||||
@ -5248,11 +5348,13 @@ function Invoke-WPFUnInstall {
|
|||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
Write-Host "-- Uninstalls have finished ---"
|
Write-Host "-- Uninstalls have finished ---"
|
||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
|
# Set-WinUtilTaskbaritem -state "None"
|
||||||
}
|
}
|
||||||
Catch {
|
Catch {
|
||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
Write-Host "Error: $_"
|
Write-Host "Error: $_"
|
||||||
Write-Host "==========================================="
|
Write-Host "==========================================="
|
||||||
|
# Set-WinUtilTaskbaritem -state "Error"
|
||||||
}
|
}
|
||||||
$sync.ProcessRunning = $False
|
$sync.ProcessRunning = $False
|
||||||
}
|
}
|
||||||
@ -5399,6 +5501,7 @@ $sync.configs.applications = '{
|
|||||||
"link": "https://1password.com/",
|
"link": "https://1password.com/",
|
||||||
"winget": "AgileBits.1Password"
|
"winget": "AgileBits.1Password"
|
||||||
},
|
},
|
||||||
|
"WPFInstall": null,
|
||||||
"WPFInstall7zip": {
|
"WPFInstall7zip": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "7zip",
|
"choco": "7zip",
|
||||||
@ -5651,7 +5754,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Browsers",
|
"category": "Browsers",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "Arc",
|
"content": "Arc",
|
||||||
"description": "Arc is a Chromium based browser, known for it's clean and modern design.",
|
"description": "Arc is a Chromium based browser, known for it\u0026#39;s clean and modern design.",
|
||||||
"link": "https://arc.net/",
|
"link": "https://arc.net/",
|
||||||
"winget": "TheBrowserCompany.Arc"
|
"winget": "TheBrowserCompany.Arc"
|
||||||
},
|
},
|
||||||
@ -5699,7 +5802,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "cpu-z",
|
"choco": "cpu-z",
|
||||||
"content": "CPU-Z",
|
"content": "CPU-Z",
|
||||||
"description": "CPU-Z is a system monitoring and diagnostic tool for Windows. It provides detailed information about the computer's hardware components, including the CPU, memory, and motherboard.",
|
"description": "CPU-Z is a system monitoring and diagnostic tool for Windows. It provides detailed information about the computer\u0026#39;s hardware components, including the CPU, memory, and motherboard.",
|
||||||
"link": "https://www.cpuid.com/softwares/cpu-z.html",
|
"link": "https://www.cpuid.com/softwares/cpu-z.html",
|
||||||
"winget": "CPUID.CPU-Z"
|
"winget": "CPUID.CPU-Z"
|
||||||
},
|
},
|
||||||
@ -5715,7 +5818,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "CapFrameX",
|
"content": "CapFrameX",
|
||||||
"description": "Frametimes capture and analysis tool based on Intel's PresentMon. Overlay provided by Rivatuner Statistics Server.",
|
"description": "Frametimes capture and analysis tool based on Intel\u0026#39;s PresentMon. Overlay provided by Rivatuner Statistics Server.",
|
||||||
"link": "https://www.capframex.com/",
|
"link": "https://www.capframex.com/",
|
||||||
"winget": "CXWorld.CapFrameX"
|
"winget": "CXWorld.CapFrameX"
|
||||||
},
|
},
|
||||||
@ -6595,7 +6698,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Communications",
|
"category": "Communications",
|
||||||
"choco": "element-desktop",
|
"choco": "element-desktop",
|
||||||
"content": "Element",
|
"content": "Element",
|
||||||
"description": "Element is a client for Matrix—an open network for secure, decentralized communication.",
|
"description": "Element is a client for Matrix\u0026#8212;an open network for secure, decentralized communication.",
|
||||||
"link": "https://element.io/",
|
"link": "https://element.io/",
|
||||||
"winget": "Element.Element"
|
"winget": "Element.Element"
|
||||||
},
|
},
|
||||||
@ -6811,7 +6914,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Development",
|
"category": "Development",
|
||||||
"choco": "nodejs",
|
"choco": "nodejs",
|
||||||
"content": "NodeJS",
|
"content": "NodeJS",
|
||||||
"description": "NodeJS is a JavaScript runtime built on Chrome's V8 JavaScript engine for building server-side and networking applications.",
|
"description": "NodeJS is a JavaScript runtime built on Chrome\u0026#39;s V8 JavaScript engine for building server-side and networking applications.",
|
||||||
"link": "https://nodejs.org/",
|
"link": "https://nodejs.org/",
|
||||||
"winget": "OpenJS.NodeJS"
|
"winget": "OpenJS.NodeJS"
|
||||||
},
|
},
|
||||||
@ -7219,7 +7322,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "quicklook",
|
"choco": "quicklook",
|
||||||
"content": "Quicklook",
|
"content": "Quicklook",
|
||||||
"description": "Bring macOS “Quick Look” feature to Windows",
|
"description": "Bring macOS \u0026#8220;Quick Look\u0026#8221; feature to Windows",
|
||||||
"link": "https://github.com/QL-Win/QuickLook",
|
"link": "https://github.com/QL-Win/QuickLook",
|
||||||
"winget": "QL-Win.QuickLook"
|
"winget": "QL-Win.QuickLook"
|
||||||
},
|
},
|
||||||
@ -7419,7 +7522,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
"choco": "spotube",
|
"choco": "spotube",
|
||||||
"content": "Spotube",
|
"content": "Spotube",
|
||||||
"description": "Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile! ",
|
"description": "Open source Spotify client that doesn\u0026#39;t require Premium nor uses Electron! Available for both desktop \u0026#38; mobile! ",
|
||||||
"link": "https://github.com/KRTirtho/spotube",
|
"link": "https://github.com/KRTirtho/spotube",
|
||||||
"winget": "KRTirtho.Spotube"
|
"winget": "KRTirtho.Spotube"
|
||||||
},
|
},
|
||||||
@ -7483,7 +7586,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Document",
|
"category": "Document",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "PDFgear",
|
"content": "PDFgear",
|
||||||
"description": "PDFgear is a piece of full-featured PDF management software for Windows, Mac, and mobile, and it's completely free to use.",
|
"description": "PDFgear is a piece of full-featured PDF management software for Windows, Mac, and mobile, and it\u0026#39;s completely free to use.",
|
||||||
"link": "https://www.pdfgear.com/",
|
"link": "https://www.pdfgear.com/",
|
||||||
"winget": "PDFgear.PDFgear"
|
"winget": "PDFgear.PDFgear"
|
||||||
},
|
},
|
||||||
@ -7507,7 +7610,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Development",
|
"category": "Development",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "Swift toolchain",
|
"content": "Swift toolchain",
|
||||||
"description": "Swift is a general-purpose programming language that's approachable for newcomers and powerful for experts.",
|
"description": "Swift is a general-purpose programming language that\u0026#39;s approachable for newcomers and powerful for experts.",
|
||||||
"link": "https://www.swift.org/",
|
"link": "https://www.swift.org/",
|
||||||
"winget": "Swift.Toolchain"
|
"winget": "Swift.Toolchain"
|
||||||
},
|
},
|
||||||
@ -7691,7 +7794,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Games",
|
"category": "Games",
|
||||||
"choco": "ubisoft-connect",
|
"choco": "ubisoft-connect",
|
||||||
"content": "Ubisoft Connect",
|
"content": "Ubisoft Connect",
|
||||||
"description": "Ubisoft Connect is Ubisoft's digital distribution and online gaming service, providing access to Ubisoft's games and services.",
|
"description": "Ubisoft Connect is Ubisoft\u0026#39;s digital distribution and online gaming service, providing access to Ubisoft\u0026#39;s games and services.",
|
||||||
"link": "https://ubisoftconnect.com/",
|
"link": "https://ubisoftconnect.com/",
|
||||||
"winget": "Ubisoft.Connect"
|
"winget": "Ubisoft.Connect"
|
||||||
},
|
},
|
||||||
@ -7699,7 +7802,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Browsers",
|
"category": "Browsers",
|
||||||
"choco": "ungoogled-chromium",
|
"choco": "ungoogled-chromium",
|
||||||
"content": "Ungoogled",
|
"content": "Ungoogled",
|
||||||
"description": "Ungoogled Chromium is a version of Chromium without Google's integration for enhanced privacy and control.",
|
"description": "Ungoogled Chromium is a version of Chromium without Google\u0026#39;s integration for enhanced privacy and control.",
|
||||||
"link": "https://github.com/Eloston/ungoogled-chromium",
|
"link": "https://github.com/Eloston/ungoogled-chromium",
|
||||||
"winget": "eloston.ungoogled-chromium"
|
"winget": "eloston.ungoogled-chromium"
|
||||||
},
|
},
|
||||||
@ -7827,7 +7930,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Development",
|
"category": "Development",
|
||||||
"choco": "vscodium",
|
"choco": "vscodium",
|
||||||
"content": "VS Codium",
|
"content": "VS Codium",
|
||||||
"description": "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's VS Code.",
|
"description": "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft\u0026#39;s VS Code.",
|
||||||
"link": "https://vscodium.com/",
|
"link": "https://vscodium.com/",
|
||||||
"winget": "VSCodium.VSCodium"
|
"winget": "VSCodium.VSCodium"
|
||||||
},
|
},
|
||||||
@ -7875,7 +7978,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "wingetui",
|
"choco": "wingetui",
|
||||||
"content": "WingetUI",
|
"content": "WingetUI",
|
||||||
"description": "WingetUI is a graphical user interface for Microsoft's Windows Package Manager (winget).",
|
"description": "WingetUI is a graphical user interface for Microsoft\u0026#39;s Windows Package Manager (winget).",
|
||||||
"link": "https://www.marticliment.com/wingetui/",
|
"link": "https://www.marticliment.com/wingetui/",
|
||||||
"winget": "SomePythonThings.WingetUIStore"
|
"winget": "SomePythonThings.WingetUIStore"
|
||||||
},
|
},
|
||||||
@ -8267,7 +8370,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Pro Tools",
|
"category": "Pro Tools",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "Kicad",
|
"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.",
|
"description": "Kicad is an open-source EDA tool. It\u0026#39;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/",
|
"link": "https://www.kicad.org/",
|
||||||
"winget": "KiCad.KiCad"
|
"winget": "KiCad.KiCad"
|
||||||
},
|
},
|
||||||
@ -8283,7 +8386,7 @@ $sync.configs.applications = '{
|
|||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "Dropbox",
|
"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.",
|
"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",
|
"link": "https://www.dropbox.com/en_GB/desktop",
|
||||||
"winget": "Dropbox.Dropbox"
|
"winget": "Dropbox.Dropbox"
|
||||||
},
|
},
|
||||||
@ -8294,7 +8397,8 @@ $sync.configs.applications = '{
|
|||||||
"description": "GUI Tool To Removes Ads From Various Places Around Windows 11",
|
"description": "GUI Tool To Removes Ads From Various Places Around Windows 11",
|
||||||
"link": "https://github.com/xM4ddy/OFGB",
|
"link": "https://github.com/xM4ddy/OFGB",
|
||||||
"winget": "xM4ddy.OFGB"
|
"winget": "xM4ddy.OFGB"
|
||||||
}
|
},
|
||||||
|
"WPFInstall}": null
|
||||||
}' | convertfrom-json
|
}' | convertfrom-json
|
||||||
$sync.configs.dns = '{
|
$sync.configs.dns = '{
|
||||||
"Google": {
|
"Google": {
|
||||||
@ -8337,7 +8441,9 @@ $sync.configs.feature = '{
|
|||||||
"NetFx4-AdvSrvs",
|
"NetFx4-AdvSrvs",
|
||||||
"NetFx3"
|
"NetFx3"
|
||||||
],
|
],
|
||||||
"InvokeScript": []
|
"InvokeScript": [
|
||||||
|
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"WPFFeatureshyperv": {
|
"WPFFeatureshyperv": {
|
||||||
"Content": "HyperV Virtualization",
|
"Content": "HyperV Virtualization",
|
||||||
@ -8356,7 +8462,7 @@ $sync.configs.feature = '{
|
|||||||
"Microsoft-Hyper-V-Management-Clients"
|
"Microsoft-Hyper-V-Management-Clients"
|
||||||
],
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"Start-Process -FilePath cmd.exe -ArgumentList ''/c bcdedit /set hypervisorschedulertype classic'' -Wait"
|
"Start-Process -FilePath cmd.exe -ArgumentList \u0027\u0027/c bcdedit /set hypervisorschedulertype classic\u0027\u0027 -Wait"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"WPFFeatureslegacymedia": {
|
"WPFFeatureslegacymedia": {
|
||||||
@ -8371,7 +8477,9 @@ $sync.configs.feature = '{
|
|||||||
"DirectPlay",
|
"DirectPlay",
|
||||||
"LegacyComponents"
|
"LegacyComponents"
|
||||||
],
|
],
|
||||||
"InvokeScript": []
|
"InvokeScript": [
|
||||||
|
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"WPFFeaturewsl": {
|
"WPFFeaturewsl": {
|
||||||
"Content": "Windows Subsystem for Linux",
|
"Content": "Windows Subsystem for Linux",
|
||||||
@ -8383,7 +8491,9 @@ $sync.configs.feature = '{
|
|||||||
"VirtualMachinePlatform",
|
"VirtualMachinePlatform",
|
||||||
"Microsoft-Windows-Subsystem-Linux"
|
"Microsoft-Windows-Subsystem-Linux"
|
||||||
],
|
],
|
||||||
"InvokeScript": []
|
"InvokeScript": [
|
||||||
|
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"WPFFeaturenfs": {
|
"WPFFeaturenfs": {
|
||||||
"Content": "NFS - Network File System",
|
"Content": "NFS - Network File System",
|
||||||
@ -8398,8 +8508,8 @@ $sync.configs.feature = '{
|
|||||||
],
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"nfsadmin client stop",
|
"nfsadmin client stop",
|
||||||
"Set-ItemProperty -Path ''HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default'' -Name ''AnonymousUID'' -Type DWord -Value 0",
|
"Set-ItemProperty -Path \u0027\u0027HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default\u0027\u0027 -Name \u0027\u0027AnonymousUID\u0027\u0027 -Type DWord -Value 0",
|
||||||
"Set-ItemProperty -Path ''HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default'' -Name ''AnonymousGID'' -Type DWord -Value 0",
|
"Set-ItemProperty -Path \u0027\u0027HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default\u0027\u0027 -Name \u0027\u0027AnonymousGID\u0027\u0027 -Type DWord -Value 0",
|
||||||
"nfsadmin client start",
|
"nfsadmin client start",
|
||||||
"nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i"
|
"nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i"
|
||||||
]
|
]
|
||||||
@ -8410,13 +8520,15 @@ $sync.configs.feature = '{
|
|||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a015_",
|
"Order": "a015_",
|
||||||
"feature": [],
|
"feature": [
|
||||||
|
|
||||||
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
If (!(Test-Path ''HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer'')) {
|
If (!(Test-Path \u0027\u0027HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer\u0027\u0027)) {
|
||||||
New-Item -Path ''HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer'' -Force | Out-Null
|
New-Item -Path \u0027\u0027HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer\u0027\u0027 -Force | Out-Null
|
||||||
}
|
}
|
||||||
New-ItemProperty -Path ''HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer'' -Name ''DisableSearchBoxSuggestions'' -Type DWord -Value 0 -Force
|
New-ItemProperty -Path \u0027\u0027HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer\u0027\u0027 -Name \u0027\u0027DisableSearchBoxSuggestions\u0027\u0027 -Type DWord -Value 0 -Force
|
||||||
Stop-Process -name explorer -force
|
Stop-Process -name explorer -force
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
@ -8427,13 +8539,15 @@ $sync.configs.feature = '{
|
|||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a016_",
|
"Order": "a016_",
|
||||||
"feature": [],
|
"feature": [
|
||||||
|
|
||||||
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
If (!(Test-Path ''HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer'')) {
|
If (!(Test-Path \u0027\u0027HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer\u0027\u0027)) {
|
||||||
New-Item -Path ''HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer'' -Force | Out-Null
|
New-Item -Path \u0027\u0027HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer\u0027\u0027 -Force | Out-Null
|
||||||
}
|
}
|
||||||
New-ItemProperty -Path ''HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer'' -Name ''DisableSearchBoxSuggestions'' -Type DWord -Value 1 -Force
|
New-ItemProperty -Path \u0027\u0027HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer\u0027\u0027 -Name \u0027\u0027DisableSearchBoxSuggestions\u0027\u0027 -Type DWord -Value 1 -Force
|
||||||
Stop-Process -name explorer -force
|
Stop-Process -name explorer -force
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
@ -8444,14 +8558,16 @@ $sync.configs.feature = '{
|
|||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a017_",
|
"Order": "a017_",
|
||||||
"feature": [],
|
"feature": [
|
||||||
|
|
||||||
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
New-ItemProperty -Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager'' -Name ''EnablePeriodicBackup'' -Type DWord -Value 1 -Force
|
New-ItemProperty -Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\u0027\u0027 -Name \u0027\u0027EnablePeriodicBackup\u0027\u0027 -Type DWord -Value 1 -Force
|
||||||
New-ItemProperty -Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager'' -Name ''BackupCount'' -Type DWord -Value 2 -Force
|
New-ItemProperty -Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\u0027\u0027 -Name \u0027\u0027BackupCount\u0027\u0027 -Type DWord -Value 2 -Force
|
||||||
$action = New-ScheduledTaskAction -Execute ''schtasks'' -Argument ''/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"''
|
$action = New-ScheduledTaskAction -Execute \u0027\u0027schtasks\u0027\u0027 -Argument \u0027\u0027/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"\u0027\u0027
|
||||||
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
|
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
|
||||||
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName ''AutoRegBackup'' -Description ''Create System Registry Backups'' -User ''System''
|
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName \u0027\u0027AutoRegBackup\u0027\u0027 -Description \u0027\u0027Create System Registry Backups\u0027\u0027 -User \u0027\u0027System\u0027\u0027
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -8461,14 +8577,16 @@ $sync.configs.feature = '{
|
|||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a018_",
|
"Order": "a018_",
|
||||||
"feature": [],
|
"feature": [
|
||||||
|
|
||||||
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
If (!(Test-Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood'')) {
|
If (!(Test-Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood\u0027\u0027)) {
|
||||||
New-Item -Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood'' -Force | Out-Null
|
New-Item -Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood\u0027\u0027 -Force | Out-Null
|
||||||
}
|
}
|
||||||
New-ItemProperty -Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood'' -Name ''Enabled'' -Type DWord -Value 1 -Force
|
New-ItemProperty -Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood\u0027\u0027 -Name \u0027\u0027Enabled\u0027\u0027 -Type DWord -Value 1 -Force
|
||||||
Start-Process -FilePath cmd.exe -ArgumentList ''/c bcdedit /Set {Current} BootMenuPolicy Legacy'' -Wait
|
Start-Process -FilePath cmd.exe -ArgumentList \u0027\u0027/c bcdedit /Set {Current} BootMenuPolicy Legacy\u0027\u0027 -Wait
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -8478,14 +8596,16 @@ $sync.configs.feature = '{
|
|||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a019_",
|
"Order": "a019_",
|
||||||
"feature": [],
|
"feature": [
|
||||||
|
|
||||||
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
If (!(Test-Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood'')) {
|
If (!(Test-Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood\u0027\u0027)) {
|
||||||
New-Item -Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood'' -Force | Out-Null
|
New-Item -Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood\u0027\u0027 -Force | Out-Null
|
||||||
}
|
}
|
||||||
New-ItemProperty -Path ''HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood'' -Name ''Enabled'' -Type DWord -Value 0 -Force
|
New-ItemProperty -Path \u0027\u0027HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood\u0027\u0027 -Name \u0027\u0027Enabled\u0027\u0027 -Type DWord -Value 0 -Force
|
||||||
Start-Process -FilePath cmd.exe -ArgumentList ''/c bcdedit /Set {Current} BootMenuPolicy Standard'' -Wait
|
Start-Process -FilePath cmd.exe -ArgumentList \u0027\u0027/c bcdedit /Set {Current} BootMenuPolicy Standard\u0027\u0027 -Wait
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -8743,7 +8863,7 @@ $sync.configs.tweaks = '{
|
|||||||
},
|
},
|
||||||
"WPFTweaksHiber": {
|
"WPFTweaksHiber": {
|
||||||
"Content": "Disable Hibernation",
|
"Content": "Disable Hibernation",
|
||||||
"Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.",
|
"Description": "Hibernation is really meant for laptops as it saves what\u0026#39;s in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don\u0026#39;t be like Bob. Bob likes hibernation.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a005_",
|
"Order": "a005_",
|
||||||
@ -8875,7 +8995,7 @@ $sync.configs.tweaks = '{
|
|||||||
},
|
},
|
||||||
"WPFTweaksServices": {
|
"WPFTweaksServices": {
|
||||||
"Content": "Set Services to Manual",
|
"Content": "Set Services to Manual",
|
||||||
"Description": "Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand.",
|
"Description": "Turns a bunch of system services to manual that don\u0026#39;t need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a014_",
|
"Order": "a014_",
|
||||||
@ -10908,8 +11028,8 @@ $sync.configs.tweaks = '{
|
|||||||
],
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
$TeamsPath = [System.IO.Path]::Combine($env:LOCALAPPDATA, ''Microsoft'', ''Teams'')
|
$TeamsPath = [System.IO.Path]::Combine($env:LOCALAPPDATA, \u0027\u0027Microsoft\u0027\u0027, \u0027\u0027Teams\u0027\u0027)
|
||||||
$TeamsUpdateExePath = [System.IO.Path]::Combine($TeamsPath, ''Update.exe'')
|
$TeamsUpdateExePath = [System.IO.Path]::Combine($TeamsPath, \u0027\u0027Update.exe\u0027\u0027)
|
||||||
|
|
||||||
Write-Host \"Stopping Teams process...\"
|
Write-Host \"Stopping Teams process...\"
|
||||||
Stop-Process -Name \"*teams*\" -Force -ErrorAction SilentlyContinue
|
Stop-Process -Name \"*teams*\" -Force -ErrorAction SilentlyContinue
|
||||||
@ -10932,11 +11052,11 @@ $sync.configs.tweaks = '{
|
|||||||
|
|
||||||
Write-Host \"Deleting Teams uninstall registry key\"
|
Write-Host \"Deleting Teams uninstall registry key\"
|
||||||
# Uninstall from Uninstall registry key UninstallString
|
# Uninstall from Uninstall registry key UninstallString
|
||||||
$us = (Get-ChildItem -Path HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall, HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall | Get-ItemProperty | Where-Object { $_.DisplayName -like ''*Teams*''}).UninstallString
|
$us = (Get-ChildItem -Path HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall, HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall | Get-ItemProperty | Where-Object { $_.DisplayName -like \u0027\u0027*Teams*\u0027\u0027}).UninstallString
|
||||||
if ($us.Length -gt 0) {
|
if ($us.Length -gt 0) {
|
||||||
$us = ($us.Replace(''/I'', ''/uninstall '') + '' /quiet'').Replace('' '', '' '')
|
$us = ($us.Replace(\u0027\u0027/I\u0027\u0027, \u0027\u0027/uninstall \u0027\u0027) + \u0027\u0027 /quiet\u0027\u0027).Replace(\u0027\u0027 \u0027\u0027, \u0027\u0027 \u0027\u0027)
|
||||||
$FilePath = ($us.Substring(0, $us.IndexOf(''.exe'') + 4).Trim())
|
$FilePath = ($us.Substring(0, $us.IndexOf(\u0027\u0027.exe\u0027\u0027) + 4).Trim())
|
||||||
$ProcessArgs = ($us.Substring($us.IndexOf(''.exe'') + 5).Trim().replace('' '', '' ''))
|
$ProcessArgs = ($us.Substring($us.IndexOf(\u0027\u0027.exe\u0027\u0027) + 5).Trim().replace(\u0027\u0027 \u0027\u0027, \u0027\u0027 \u0027\u0027))
|
||||||
$proc = Start-Process -FilePath $FilePath -Args $ProcessArgs -PassThru
|
$proc = Start-Process -FilePath $FilePath -Args $ProcessArgs -PassThru
|
||||||
$proc.WaitForExit()
|
$proc.WaitForExit()
|
||||||
}
|
}
|
||||||
@ -10969,7 +11089,7 @@ $sync.configs.tweaks = '{
|
|||||||
# Check if the SystemRestorePointCreationFrequency value exists
|
# Check if the SystemRestorePointCreationFrequency value exists
|
||||||
$exists = Get-ItemProperty -path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore\" -Name \"SystemRestorePointCreationFrequency\" -ErrorAction SilentlyContinue
|
$exists = Get-ItemProperty -path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore\" -Name \"SystemRestorePointCreationFrequency\" -ErrorAction SilentlyContinue
|
||||||
if($null -eq $exists){
|
if($null -eq $exists){
|
||||||
write-host ''Changing system to allow multiple restore points per day''
|
write-host \u0027\u0027Changing system to allow multiple restore points per day\u0027\u0027
|
||||||
Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore\" -Name \"SystemRestorePointCreationFrequency\" -Value \"0\" -Type DWord -Force -ErrorAction Stop | Out-Null
|
Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore\" -Name \"SystemRestorePointCreationFrequency\" -Value \"0\" -Type DWord -Force -ErrorAction Stop | Out-Null
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11141,8 +11261,8 @@ $sync.configs.tweaks = '{
|
|||||||
}
|
}
|
||||||
foreach ($file in $lmsFiles) {
|
foreach ($file in $lmsFiles) {
|
||||||
Write-Host \"Taking ownership of file: $($file.FullName)\";
|
Write-Host \"Taking ownership of file: $($file.FullName)\";
|
||||||
& icacls $($file.FullName) /grant Administrators:F /T /C /Q;
|
\u0026 icacls $($file.FullName) /grant Administrators:F /T /C /Q;
|
||||||
& takeown /F $($file.FullName) /A /R /D Y;
|
\u0026 takeown /F $($file.FullName) /A /R /D Y;
|
||||||
Write-Host \"Deleting file: $($file.FullName)\";
|
Write-Host \"Deleting file: $($file.FullName)\";
|
||||||
Remove-Item $($file.FullName) -Force -ErrorAction SilentlyContinue;
|
Remove-Item $($file.FullName) -Force -ErrorAction SilentlyContinue;
|
||||||
}
|
}
|
||||||
@ -11151,7 +11271,7 @@ $sync.configs.tweaks = '{
|
|||||||
} else {
|
} else {
|
||||||
Write-Host \"All found LMS.exe files have been deleted.\";
|
Write-Host \"All found LMS.exe files have been deleted.\";
|
||||||
}
|
}
|
||||||
Write-Host ''Intel LMS vPro service has been disabled, removed, and blocked.'';
|
Write-Host \u0027\u0027Intel LMS vPro service has been disabled, removed, and blocked.\u0027\u0027;
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
@ -11178,13 +11298,13 @@ $sync.configs.tweaks = '{
|
|||||||
Start-Process -FilePath $OneDriveExe -ArgumentList \"$OneDriveArgs /silent\" -NoNewWindow -Wait
|
Start-Process -FilePath $OneDriveExe -ArgumentList \"$OneDriveArgs /silent\" -NoNewWindow -Wait
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
Write-Host \"Onedrive dosn''t seem to be installed anymore\" -ForegroundColor Red
|
Write-Host \"Onedrive dosn\u0027\u0027t seem to be installed anymore\" -ForegroundColor Red
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
# Check if OneDrive got Uninstalled
|
# Check if OneDrive got Uninstalled
|
||||||
if (-not (Test-Path $regPath)){
|
if (-not (Test-Path $regPath)){
|
||||||
Write-Host \"Copy downloaded Files from the OneDrive Folder to Root UserProfile\"
|
Write-Host \"Copy downloaded Files from the OneDrive Folder to Root UserProfile\"
|
||||||
Start-Process -FilePath powershell -ArgumentList \"robocopy ''$($OneDrivePath)'' ''$($env:USERPROFILE.TrimEnd())\\'' /mov /e /xj\" -NoNewWindow -Wait
|
Start-Process -FilePath powershell -ArgumentList \"robocopy \u0027\u0027$($OneDrivePath)\u0027\u0027 \u0027\u0027$($env:USERPROFILE.TrimEnd())\\\u0027\u0027 /mov /e /xj\" -NoNewWindow -Wait
|
||||||
|
|
||||||
Write-Host \"Removing OneDrive leftovers\"
|
Write-Host \"Removing OneDrive leftovers\"
|
||||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\"
|
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\"
|
||||||
@ -11210,7 +11330,7 @@ $sync.configs.tweaks = '{
|
|||||||
Remove-Item -Force -ErrorAction SilentlyContinue \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\OneDrive.lnk\"
|
Remove-Item -Force -ErrorAction SilentlyContinue \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\OneDrive.lnk\"
|
||||||
|
|
||||||
Write-Host \"Removing scheduled task\"
|
Write-Host \"Removing scheduled task\"
|
||||||
Get-ScheduledTask -TaskPath ''\\'' -TaskName ''OneDrive*'' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
|
Get-ScheduledTask -TaskPath \u0027\u0027\\\u0027\u0027 -TaskName \u0027\u0027OneDrive*\u0027\u0027 -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
|
||||||
|
|
||||||
# Add Shell folders restoring default locations
|
# Add Shell folders restoring default locations
|
||||||
Write-Host \"Shell Fixing\"
|
Write-Host \"Shell Fixing\"
|
||||||
@ -11311,7 +11431,7 @@ $sync.configs.tweaks = '{
|
|||||||
# 0 = Do not download or install updates automatically
|
# 0 = Do not download or install updates automatically
|
||||||
# 2 = Automatically download updates but let the user choose when to install them
|
# 2 = Automatically download updates but let the user choose when to install them
|
||||||
# 3 = Automatically download and install updates (default value)
|
# 3 = Automatically download and install updates (default value)
|
||||||
# 4 = Notify the user when an update is available but don''t download or install it automatically
|
# 4 = Notify the user when an update is available but don\u0027\u0027t download or install it automatically
|
||||||
# = It notifies the user using Windows Notifications. It runs on startup without having to have a Service/Acrobat/Reader running, therefore 0 is the next best thing.
|
# = It notifies the user using Windows Notifications. It runs on startup without having to have a Service/Acrobat/Reader running, therefore 0 is the next best thing.
|
||||||
|
|
||||||
$rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\"
|
$rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\"
|
||||||
@ -11430,7 +11550,7 @@ $sync.configs.tweaks = '{
|
|||||||
},
|
},
|
||||||
"WPFTweaksBlockAdobeNet": {
|
"WPFTweaksBlockAdobeNet": {
|
||||||
"Content": "Adobe Network Block",
|
"Content": "Adobe Network Block",
|
||||||
"Description": "Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. Credit: Ruddernation-Designs",
|
"Description": "Reduce user interruptions by selectively blocking connections to Adobe\u0026#39;s activation and telemetry servers. Credit: Ruddernation-Designs",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a021_",
|
"Order": "a021_",
|
||||||
@ -11591,7 +11711,7 @@ $sync.configs.tweaks = '{
|
|||||||
},
|
},
|
||||||
"WPFTweaksDVR": {
|
"WPFTweaksDVR": {
|
||||||
"Content": "Disable GameDVR",
|
"Content": "Disable GameDVR",
|
||||||
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
|
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I\u0026#39;ve never met someone that likes it, but it\u0026#39;s there for the XBOX crowd.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a005_",
|
"Order": "a005_",
|
||||||
@ -13379,7 +13499,7 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<CheckBox Name="WPFInstalldmt" Content="Dual Monitor Tools" ToolTip="Dual Monitor Tools (DMT) is a FOSS app that customize handling multiple monitors and even lock the mouse on specific monitor. Useful for full screen games and apps that does not handle well a second monitor or helps the workflow." Margin="0,0,2,0"/><TextBlock Name="WPFInstalldmtLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://dualmonitortool.sourceforge.net/" />
|
<CheckBox Name="WPFInstalldmt" Content="Dual Monitor Tools" ToolTip="Dual Monitor Tools (DMT) is a FOSS app that customize handling multiple monitors and even lock the mouse on specific monitor. Useful for full screen games and apps that does not handle well a second monitor or helps the workflow." Margin="0,0,2,0"/><TextBlock Name="WPFInstalldmtLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://dualmonitortool.sourceforge.net/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstalldropox" Content="Dropbox" ToolTip="The Dropbox desktop app! Save hard drive space, share and edit files and send for signature ? all without the distraction of countless browser tabs." Margin="0,0,2,0"/><TextBlock Name="WPFInstalldropoxLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.dropbox.com/en_GB/desktop" />
|
<CheckBox Name="WPFInstalldropox" Content="Dropbox" ToolTip="The Dropbox desktop app! Save hard drive space, share and edit files and send for signature ??? all without the distraction of countless browser tabs." Margin="0,0,2,0"/><TextBlock Name="WPFInstalldropoxLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.dropbox.com/en_GB/desktop" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallduplicati" Content="Duplicati" ToolTip="Duplicati is an open-source backup solution that supports encrypted, compressed, and incremental backups. It is designed to securely store data on cloud storage services." Margin="0,0,2,0"/><TextBlock Name="WPFInstallduplicatiLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.duplicati.com/" />
|
<CheckBox Name="WPFInstallduplicati" Content="Duplicati" ToolTip="Duplicati is an open-source backup solution that supports encrypted, compressed, and incremental backups. It is designed to securely store data on cloud storage services." Margin="0,0,2,0"/><TextBlock Name="WPFInstallduplicatiLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.duplicati.com/" />
|
||||||
@ -14274,6 +14394,16 @@ Invoke-WPFRunspace -ScriptBlock {
|
|||||||
# Print the logo
|
# Print the logo
|
||||||
Invoke-WPFFormVariables
|
Invoke-WPFFormVariables
|
||||||
|
|
||||||
|
# download the logo
|
||||||
|
$logoUrl = "https://christitus.com/images/logo-full.png"
|
||||||
|
# Download the image
|
||||||
|
$logoPath = "$env:TEMP\cttlogo.png"
|
||||||
|
Invoke-WebRequest -Uri $logoUrl -OutFile $logoPath
|
||||||
|
|
||||||
|
# Progress bar in taskbaritem > Set-WinUtilProgressbar
|
||||||
|
$sync["Form"].TaskbarItemInfo = New-Object System.Windows.Shell.TaskbarItemInfo
|
||||||
|
Set-WinUtilTaskbaritem -state "None"
|
||||||
|
|
||||||
# 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
|
||||||
@ -14408,37 +14538,8 @@ Add-Type @"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Using a TaskbarItem Overlay until someone figures out how to replace the icon correctly
|
|
||||||
|
|
||||||
# URL of the image
|
|
||||||
$imageUrl = "https://christitus.com/images/logo-full.png"
|
|
||||||
|
|
||||||
# Download the image
|
|
||||||
$imagePath = "$env:TEMP\logo-full.png"
|
|
||||||
Invoke-WebRequest -Uri $imageUrl -OutFile $imagePath
|
|
||||||
|
|
||||||
# Read the image file as a byte array
|
|
||||||
$imageBytes = [System.IO.File]::ReadAllBytes($imagePath)
|
|
||||||
|
|
||||||
# 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
|
# Set the overlay icon for the taskbar
|
||||||
$sync["Form"].TaskbarItemInfo.Overlay = $bitmap
|
Set-WinUtilTaskbaritem -overlay $logoPath
|
||||||
|
|
||||||
|
|
||||||
$rect = New-Object RECT
|
$rect = New-Object RECT
|
||||||
[Window]::GetWindowRect($windowHandle, [ref]$rect)
|
[Window]::GetWindowRect($windowHandle, [ref]$rect)
|
||||||
|
Loading…
Reference in New Issue
Block a user