mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 06:35:51 -06:00
4a7c8a35bf
* Remove the Non-existing 'WPFMiscTweaksPower' found in the 'preset.json' File (#1763) * Compile Winutil * Update of Test-WinUtilPackageManager and Install-WinUtilWinget (#1757) * Updated Install-WinUtilWinget and Test-WinUtilPackageManager - Updated Test-WinUtilPackageManager to better handle the -Winget param and return a more verbose status. - Moved many of the "is installed"/"is not installed" outputs to the Test-WinUtilPackageManager function. - Changed Install-WinUtilWinget to use the GitHub install method as the primary method, and on error use the Chocolatey install method. - Updated various functions to use the Test-WinUtilPackageManager function. * Update Install-WinUtilWinget.ps1 - Changed handling of Test-WinUtilPackageManager in Install-WinUtilWinget, to prevent Test-WinUtilPackageManager from printing out to terminal twice. * Compile Winutil * Update Paint.NET Winget name. (#1758) Paint.NET's winget package name changed. * Compile Winutil * Fixed Programms names and urls and github actions (#1759) * Compile Winutil * trying to fix github actions * Update applications.json * Compile Winutil * updated winget package PaintDotNet * Compile Winutil * Update functions.Tests.ps1 * fixing typos in unittesting * fixed the issue that made pester not to work * Compile Winutil * found a bug and fixed it * Compile Winutil --------- Co-authored-by: YusufKhalifadev <YusufKhalifadev@users.noreply.github.com> * Detect free space of installation drive and compare it with the ISO size and delete temporary MicroWin files from previous runs (#1761) * Detect free space of installation drive Compare the size of the ISO file with the free space of the installation drive (or the drive containing the User files) and, if the free size is below a certain threshold, the script will throw either a warning or an error * Delete temporary files from previous runs * Add Simple Feature to keep the Service Startup upon Applying Service Tweaks, but not when Undoing it (#1760) Added a new parameter that gives freedom of control on whether to disable this feature or not, and of course the simple feature in question. The way it works is by Getting the service using its name, and see if the Startup Value of this service is equal to the default type that Windows comes with it, if not (The User has changed it in the past), then WinUtil won't change it by default (The KeepServiceStartup is true by default), this is a more desirable behaviour when compared to how it previously worked. These changes were tested by the Author of this commit, Please read the commit patches for exact details on the changes. * Compile Winutil * Sacrifice to the AV Gods Remove Self Elevation and Disable UAC --------- Co-authored-by: Mr.k <mineshtine28546271@gmail.com> Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com> Co-authored-by: Rux <jonathan.e.rux@ruxunderscore.com> Co-authored-by: YusufKhalifadev <yusufkhalifadev@gmail.com> Co-authored-by: YusufKhalifadev <YusufKhalifadev@users.noreply.github.com> Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
60 lines
2.9 KiB
PowerShell
60 lines
2.9 KiB
PowerShell
function Install-WinUtilWinget {
|
|
<#
|
|
|
|
.SYNOPSIS
|
|
Installs Winget if it is not already installed.
|
|
|
|
.DESCRIPTION
|
|
This function will download the latest version of Winget and install it. If Winget is already installed, it will do nothing.
|
|
#>
|
|
$isWingetInstalled = Test-WinUtilPackageManager -winget
|
|
|
|
Try {
|
|
if ($isWingetInstalled -eq "installed") {
|
|
Write-Host "`nWinget is already installed.`r" -ForegroundColor Green
|
|
return
|
|
} elseif ($isWingetInstalled -eq "outdated") {
|
|
Write-Host "`nWinget is Outdated. Continuing with install.`r" -ForegroundColor Yellow
|
|
} else {
|
|
Write-Host "`nWinget is not Installed. Continuing with install.`r" -ForegroundColor Red
|
|
}
|
|
|
|
# Gets the computer's information
|
|
if ($null -eq $sync.ComputerInfo){
|
|
$ComputerInfo = Get-ComputerInfo -ErrorAction Stop
|
|
} else {
|
|
$ComputerInfo = $sync.ComputerInfo
|
|
}
|
|
|
|
if (($ComputerInfo.WindowsVersion) -lt "1809") {
|
|
# Checks if Windows Version is too old for Winget
|
|
Write-Host "Winget is not supported on this version of Windows (Pre-1809)" -ForegroundColor Red
|
|
return
|
|
}
|
|
|
|
# Install Winget via GitHub method.
|
|
# Used part of my own script with some modification: ruxunderscore/windows-initialization
|
|
Write-Host "Downloading Winget Prerequsites`n"
|
|
Get-WinUtilWingetPrerequisites
|
|
Write-Host "Downloading Winget and License File`r"
|
|
Get-WinUtilWingetLatest
|
|
Write-Host "Installing Winget w/ Prerequsites`r"
|
|
Add-AppxProvisionedPackage -Online -PackagePath $ENV:TEMP\Microsoft.DesktopAppInstaller.msixbundle -DependencyPackagePath $ENV:TEMP\Microsoft.VCLibs.x64.Desktop.appx, $ENV:TEMP\Microsoft.UI.Xaml.x64.appx -LicensePath $ENV:TEMP\License1.xml
|
|
Write-Host "Winget Installed" -ForegroundColor Green
|
|
# Winget only needs a refresh of the environment variables to be used.
|
|
Write-Output "Refreshing Environment Variables...`n"
|
|
$ENV:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
|
|
} Catch {
|
|
Write-Host "Failure detected while installing via GitHub method. Continuing with Chocolatey method as fallback." -ForegroundColor Red
|
|
# In case install fails via GitHub method.
|
|
Try {
|
|
Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "choco install winget-cli"
|
|
Write-Host "Winget Installed" -ForegroundColor Green
|
|
Write-Output "Refreshing Environment Variables...`n"
|
|
$ENV:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
|
|
} Catch {
|
|
throw [WingetFailedInstall]::new('Failed to install!')
|
|
}
|
|
}
|
|
}
|