Last active
September 25, 2023 16:50
-
-
Save davlgd/29693f3d725e7834ad5e76a2f1cf922b to your computer and use it in GitHub Desktop.
PowerShell scripts to make WinGet great again
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# Script to install multiple applications in one command line through WinGet | |
You can modify bootstrapArray value and use "--bootstrap" argument to bootstrap a new machine | |
Don't forget to change ExecutionPolicy to execute this script | |
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser #> | |
$bootstrapArray = @("vlc", "7zip", "cpu-z", "coretemp") | |
if ((New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) | |
{ | |
if ($args[0] -ne "--bootstrap") { $bootstrapArray = $args } | |
$bootstrapArray | ForEach-Object { winget install -h $_ } | |
} | |
else { Write-Output "You need elevated privileges to run WinGet install script."} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# Script to check what's new or modified in public WinGet's manifests list | |
Don't forget to change ExecutionPolicy to execute this script | |
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser #> | |
$url = "https://api.github.com/repos/microsoft/winget-pkgs/contents/manifests" | |
$fileName = "WinGetApps.txt" | |
$storedList = @() | |
$response = Invoke-WebRequest $url | |
$init = Test-Path($fileName) | |
if ($init){ $storedList = Get-Content -Raw -Path $fileName | ConvertFrom-Json } | |
$response.Content | Out-File $fileName | |
if (-Not $init) { | |
Write-Output "WinGet public manifests list initialized." | |
return | |
} | |
$apps = $response.Content | ConvertFrom-JSON | |
Write-Output "" | |
Write-Output "WinGet public manifests list modifications :" | |
Write-Output "============================================" | |
Compare-Object $storedList $apps -Property name, path, sha, html_url |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment