diff --git a/Winget-AllinOne.ps1 b/Winget-AllinOne.ps1 deleted file mode 100644 index 7e3fa85..0000000 --- a/Winget-AllinOne.ps1 +++ /dev/null @@ -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 \ No newline at end of file