Delete Winget-AllinOne.ps1
parent
7afaafe300
commit
554647b2cd
|
@ -1,133 +0,0 @@
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Install apps with Winget-Install and configure Winget-AutoUpdate
|
|
||||||
|
|
||||||
.DESCRIPTION
|
|
||||||
Install apps with Winget from a list file (apps.txt).
|
|
||||||
Install Winget-AutoUpdate to get apps daily updated
|
|
||||||
https://github.com/Romanitho/Winget-AllinOne
|
|
||||||
#>
|
|
||||||
|
|
||||||
|
|
||||||
<# FUNCTIONS #>
|
|
||||||
|
|
||||||
function Download-GitHubRepository {
|
|
||||||
param(
|
|
||||||
[Parameter()] [string] $Url,
|
|
||||||
[Parameter()] [string] $Location
|
|
||||||
)
|
|
||||||
|
|
||||||
# Force to create a zip file
|
|
||||||
$ZipFile = "$location\temp.zip"
|
|
||||||
New-Item $ZipFile -ItemType File -Force | Out-Null
|
|
||||||
|
|
||||||
# download the zip
|
|
||||||
Write-Host 'Starting downloading the GitHub Repository'
|
|
||||||
Invoke-RestMethod -Uri $Url -OutFile $ZipFile
|
|
||||||
Write-Host 'Download finished'
|
|
||||||
|
|
||||||
#Extract Zip File
|
|
||||||
Write-Host 'Starting unzipping the GitHub Repository locally'
|
|
||||||
Expand-Archive -Path $ZipFile -DestinationPath $Location -Force
|
|
||||||
Get-ChildItem -Path $Location -Recurse | Unblock-File
|
|
||||||
Write-Host 'Unzip finished'
|
|
||||||
|
|
||||||
# remove the zip file
|
|
||||||
Remove-Item -Path $ZipFile -Force
|
|
||||||
}
|
|
||||||
|
|
||||||
function Get-WingetStatus{
|
|
||||||
$hasAppInstaller = Get-AppXPackage -name 'Microsoft.DesktopAppInstaller'
|
|
||||||
if (!($hasAppInstaller)){
|
|
||||||
Write-Host -ForegroundColor Yellow "Installing WinGet..."
|
|
||||||
Add-AppxPackage -Path https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx
|
|
||||||
$releases_url = "https://api.github.com/repos/microsoft/winget-cli/releases/latest"
|
|
||||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
||||||
$releases = Invoke-RestMethod -uri "$($releases_url)"
|
|
||||||
$latestRelease = $releases.assets | Where-Object { $_.browser_download_url.EndsWith("msixbundle") } | Select-Object -First 1
|
|
||||||
Add-AppxPackage -Path $latestRelease.browser_download_url
|
|
||||||
Write-Host -ForegroundColor Green "WinGet successfully installed."
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host -ForegroundColor Green "WinGet is already installed."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Get-WingetCmd {
|
|
||||||
#Get WinGet Location in User context
|
|
||||||
$WingetCmd = Get-Command winget.exe -ErrorAction SilentlyContinue
|
|
||||||
if ($WingetCmd){
|
|
||||||
$Script:winget = $WingetCmd.Source
|
|
||||||
}
|
|
||||||
#Get WinGet Location in System context (WinGet < 1.17)
|
|
||||||
elseif (Test-Path "C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\AppInstallerCLI.exe"){
|
|
||||||
$Script:winget = Resolve-Path "C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\AppInstallerCLI.exe" | Select-Object -ExpandProperty Path
|
|
||||||
}
|
|
||||||
#Get WinGet Location in System context (WinGet > 1.17)
|
|
||||||
elseif (Test-Path "C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\winget.exe"){
|
|
||||||
$Script:winget = Resolve-Path "C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\winget.exe" | Select-Object -ExpandProperty Path
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Get-AppList{
|
|
||||||
if (Test-Path "$PSScriptRoot\apps.txt"){
|
|
||||||
$AppList = Get-Content -Path "$PSScriptRoot\apps_to_install.txt"
|
|
||||||
return $AppList -join ","
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Get-ExcludedApps{
|
|
||||||
if (Test-Path "$PSScriptRoot\excluded_apps.txt"){
|
|
||||||
Write-Host "Installing Custom 'excluded_apps.txt' file"
|
|
||||||
Copy-Item -Path "$PSScriptRoot\excluded_apps.txt" -Destination "$env:ProgramData\winget-update" -Recurse -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
Write-Host "Keeping default 'excluded_apps.txt' file"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
<# MAIN #>
|
|
||||||
|
|
||||||
Write-host "###################################"
|
|
||||||
Write-host "# #"
|
|
||||||
Write-host "# Winget AllinOne #"
|
|
||||||
Write-host "# #"
|
|
||||||
Write-host "###################################`n"
|
|
||||||
|
|
||||||
#Temp folder
|
|
||||||
$Location = "$env:ProgramData\Winget"
|
|
||||||
|
|
||||||
#Download Winget-AutoUpdate
|
|
||||||
Download-GitHubRepository "https://github.com/Romanitho/Winget-AutoUpdate/archive/refs/heads/main.zip" $Location
|
|
||||||
|
|
||||||
#Download Winget-Install
|
|
||||||
Download-GitHubRepository "https://github.com/Romanitho/Winget-Install/archive/refs/heads/main.zip" $Location
|
|
||||||
|
|
||||||
#Check Winget is installed, and install if not
|
|
||||||
Get-WingetStatus
|
|
||||||
|
|
||||||
#Get App List
|
|
||||||
$AppToInstall = Get-AppList
|
|
||||||
|
|
||||||
#Install Winget-Autoupdate
|
|
||||||
Write-Host 'Installing Winget-AutoUpdate...'
|
|
||||||
Start-Process "powershell.exe" -Argument "-executionpolicy bypass -file `"$Location\Winget-AutoUpdate-main\winget-install-and-update.ps1`" -Silent -DoNotUpdate" -Wait
|
|
||||||
|
|
||||||
#Run Winget-Install
|
|
||||||
Write-Host 'Running Winget-Install...'
|
|
||||||
Start-Process "powershell.exe" -Argument "-executionpolicy bypass -command `"$Location\Winget-Install-main\winget-install.ps1 -AppIDs $AppToInstall`"" -Wait
|
|
||||||
|
|
||||||
#Configure ExcludedApps
|
|
||||||
Get-ExcludedApps
|
|
||||||
|
|
||||||
#Run WAU
|
|
||||||
Write-Host "Running Winget-AutoUpdate"
|
|
||||||
Get-ScheduledTask -TaskName "Winget Update" -ErrorAction SilentlyContinue | Start-ScheduledTask -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
Remove-Item -Path $Location -Force -Recurse
|
|
||||||
Write-Host "End." -ForegroundColor Cyan
|
|
||||||
Start-Sleep 3
|
|
Loading…
Reference in New Issue