mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 06:35:51 -06:00
a56aeefc7f
* Remove Edge from Start Menu and Desktop (#898) * Update edgeremoval.bat * Fix Edge not being deleted from Desktop * Compile Winutil * fix yubikey users service * Compile Winutil * AJRouter and Kiosk Disable * Compile Winutil * TermService enable This service will hang when applying tweaks. Changing to Auto from Manual * Compile Winutil * Fix bug with Telemetry Tweak services should NOT be tweaked here * dupe tweak removal * hibernate off and delete * Compile Winutil * Cleaning Windows Update Folder * Compile Winutil * GameDVR Fix * Compile Winutil * Fixed consistency in variable names and values inside edgeremoval.bat (#902) * Compile Winutil * add spdx license * Compile Winutil * Updated Dark mode check (#904) * Compile Winutil * Update Dark Mode Check updated the theme check to use the existing function * Description update Updated Description --------- Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> * Compile Winutil * fixes #569 * Compile Winutil * Added Bing Search toggle plus some support functions (#908) * Compile Winutil * Update winget.ps1 * Compile Winutil * Fix Winget Install * Compile Winutil * Update Install-WinUtilWinget.ps1 * Compile Winutil * Update Install-WinUtilWinget.ps1 * Compile Winutil * Update Install-WinUtilWinget.ps1 * Compile Winutil * Winget fixes * Compile Winutil --------- Co-authored-by: Antun Nitraj <antnitraj@gmail.com> Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com> Co-authored-by: DeveloperDurp <developerdurp@durp.info> Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>
103 lines
4.1 KiB
PowerShell
103 lines
4.1 KiB
PowerShell
function Get-LatestHash {
|
|
$shaUrl = ((Invoke-WebRequest $apiLatestUrl -UseBasicParsing | ConvertFrom-Json).assets | Where-Object { $_.name -match '^Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.txt$' }).browser_download_url
|
|
|
|
$shaFile = Join-Path -Path $tempFolder -ChildPath 'Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.txt'
|
|
$WebClient.DownloadFile($shaUrl, $shaFile)
|
|
|
|
Get-Content $shaFile
|
|
}
|
|
|
|
function Install-WinUtilWinget {
|
|
|
|
<#
|
|
|
|
.DESCRIPTION
|
|
Function is meant to ensure winget is installed
|
|
|
|
#>
|
|
Try{
|
|
Write-Host "Checking if Winget is Installed..."
|
|
if (Test-WinUtilPackageManager -winget) {
|
|
#Checks if winget executable exists and if the Windows Version is 1809 or higher
|
|
Write-Host "Winget Already Installed"
|
|
return
|
|
}
|
|
|
|
#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)"
|
|
return
|
|
}
|
|
|
|
Write-Host "Running Alternative Installer and Direct Installing"
|
|
$ErrorActionPreference = "Stop"
|
|
$apiLatestUrl = 'https://api.github.com/repos/microsoft/winget-cli/releases/latest'
|
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
|
|
# Hide the progress bar of Invoke-WebRequest
|
|
$oldProgressPreference = $ProgressPreference
|
|
$ProgressPreference = 'SilentlyContinue'
|
|
|
|
$desktopAppInstaller = @{
|
|
fileName = 'Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle'
|
|
url = $(((Invoke-WebRequest $apiLatestUrl -UseBasicParsing | ConvertFrom-Json).assets | Where-Object { $_.name -match '^Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle$' }).browser_download_url)
|
|
hash = $(Get-LatestHash)
|
|
}
|
|
|
|
$vcLibsUwp = @{
|
|
fileName = 'Microsoft.VCLibs.x64.14.00.Desktop.appx'
|
|
url = 'https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx'
|
|
hash = '6602159c341bafea747d0edf15669ac72df8817299fbfaa90469909e06794256'
|
|
}
|
|
$uiLibs = @{
|
|
nupkg = @{
|
|
fileName = 'microsoft.ui.xaml.2.7.0.nupkg'
|
|
url = 'https://www.nuget.org/api/v2/package/Microsoft.UI.Xaml/2.7.0'
|
|
hash = "422FD24B231E87A842C4DAEABC6A335112E0D35B86FAC91F5CE7CF327E36A591"
|
|
}
|
|
uwp = @{
|
|
fileName = 'Microsoft.UI.Xaml.2.7.appx'
|
|
}
|
|
}
|
|
$uiLibs.uwp.file = $PWD.Path + '\' + $uiLibs.uwp.fileName
|
|
$uiLibs.uwp.zipPath = '*/x64/*/' + $uiLibs.uwp.fileName
|
|
|
|
$dependencies = @($desktopAppInstaller, $vcLibsUwp, $uiLibs.nupkg)
|
|
|
|
foreach ($dependency in $dependencies) {
|
|
$dependency.file = $dependency.fileName
|
|
Invoke-WebRequest $dependency.url -OutFile $dependency.file
|
|
}
|
|
|
|
$uiLibs.nupkg.file = $PSScriptRoot + '\' + $uiLibs.nupkg.fileName
|
|
Add-Type -Assembly System.IO.Compression.FileSystem
|
|
$uiLibs.nupkg.zip = [IO.Compression.ZipFile]::OpenRead($uiLibs.nupkg.file)
|
|
$uiLibs.nupkg.zipUwp = $uiLibs.nupkg.zip.Entries | Where-Object { $_.FullName -like $uiLibs.uwp.zipPath }
|
|
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($uiLibs.nupkg.zipUwp, $uiLibs.uwp.file, $true)
|
|
$uiLibs.nupkg.zip.Dispose()
|
|
|
|
Add-AppxPackage -Path $desktopAppInstaller.file -DependencyPath $vcLibsUwp.file,$uiLibs.uwp.file
|
|
|
|
Remove-Item $desktopAppInstaller.file
|
|
Remove-Item $vcLibsUwp.file
|
|
Remove-Item $uiLibs.nupkg.file
|
|
Remove-Item $uiLibs.uwp.file
|
|
Write-Host "WinGet installed!" -ForegroundColor Green
|
|
$ProgressPreference = $oldProgressPreference
|
|
Update-EnvironmentVariables
|
|
|
|
Write-Host "Winget Installed"
|
|
}
|
|
Catch{
|
|
throw [WingetFailedInstall]::new('Failed to install')
|
|
}
|
|
}
|