# --- Sync-WinApps --- # $ErrorActionPreference = 0 # --- Request Administrator Rights --- # if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)) { start powershell.exe '-nop -ep bypass -c "iex (irm winapps.pages.dev)"' -v runas return } # --- Sync CLI Vars --- # iex (irm -useb sync-clivars.pages.dev) UI.Box "Sync-WinApps: Package Installer" "Cyan" $appCategories = [ordered]@{ "Development & Runtimes" = @( "Microsoft.DotNet.Runtime.Preview", "Microsoft.DotNet.SDK.Preview", "Microsoft.VCRedist.2015+.x64", "Microsoft.VCRedist.2015+.x86", "Microsoft.OpenSSH.Preview", "Git.Git", "NodeJS.NodeJS", "Python.Python.3.14", "GoLang.Go", "Oracle.JDK.25" ) "Utilities & System" = @( "voidtools.Everything.Alpha", "ShutUp10", "DISM++", "Ventoy" ) "Communication & Media" = @( "Ayugram", "Zoom.Zoom", "OBSProject.OBSStudio", "9WZDNCRFJ3B4" # JW Library ) "Security & Privacy" = @( "TorBrowser", "ProtonVPN.ProtonVPN" ) "Games & Extras" = @( "CurseForge.CurseForge", "Google.Antigravity" ) } $catNames = @($appCategories.Keys) $picked = UI.Menu $catNames "Выберите категории для установки" -Multi if (!$picked -or $picked.Count -eq 0) { UI.Status "Ни одной категории не выбрано." "warn" UI.Pause return } $apps = @() foreach ($cat in $picked) { $apps += $appCategories[$cat] } UI.Status "Выбрано приложений для установки: $($apps.Count)" "ok" Write-Host "" $total = $apps.Count $i = 1 foreach ($app in $apps) { UI.Status "[$i/$total] Installing $app ..." "proc" winget install ` --id $app ` --silent ` --accept-package-agreements ` --accept-source-agreements ` --disable-interactivity ` -e if ($LASTEXITCODE -eq 0) {UI.Status "Installed: $app" "ok"; Write-Host ""} else {UI.Status "Failed or already installed: $app" "warn"; Write-Host ""} $i++ } UI.Box "Установка пакетов завершена." "Green" UI.Pause