WingetBatch
2.2.0
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) 2025 Matthew Bubb. All rights reserved.
Package Details
Author(s)
- Matthew Bubb
Tags
winget package-manager windows batch-install utility github-api interactive cache updates PwshSpectreConsole
Functions
Install-WingetAll Get-WingetNewPackages Get-WingetUpdates Enable-WingetUpdateNotifications Disable-WingetUpdateNotifications Set-WingetBatchGitHubToken New-WingetBatchGitHubToken Remove-WingetRecent Export-WingetBatchConfig Import-WingetBatchConfig Invoke-WingetBatchCleanup Update-WingetBatch
Dependencies
This module has no dependencies.
Release Notes
v2.0.0 - Major Feature Release
- NEW: Get-WingetNewPackages - Discover recently added packages from winget-pkgs GitHub repository
* GitHub API integration with pagination support
* Parallel background job system (max 10 concurrent) for fetching package details
* Smart job waiting - only waits for jobs with selected packages
* 30-day package details caching system for faster repeat searches
* Comprehensive package info: Version, Publisher, GitHub links, License, Pricing, Release Notes, and 20+ fields
* Interactive re-selection with preserved package information
* Exclusion filter support to hide specific packages/publishers
* API rate limit tracking with hourly rollover
* GitHub token support for 5,000 req/hour (vs 60 unauthenticated)
- NEW: Remove-WingetRecent - Uninstall recently installed packages by date
* Reads from Windows Registry (HKLM/HKCU Uninstall keys)
* Filter by installation date (e.g., -Days 7 for last week)
* Interactive selection of packages to remove
- ENHANCED: Install-WingetAll
* Now uses --silent flag for cleaner output
* Improved error handling and reporting
- ENHANCED: Profile Integration
* Background update checks with cached results
* 30-minute cache TTL for update notifications
- NEW: Token Management
* Set-WingetBatchGitHubToken - Store GitHub PAT securely (AES encrypted CliXml)
* New-WingetBatchGitHubToken - Interactive token creation wizard with masked input
- FIXED: Date parsing bug in API rate limit tracking (timezone handling)
- FIXED: Package selection workflow when going back to change selections
Configuration stored in: ~/.wingetbatch/
- config.json - Update notification settings
- github_token.clixml - Secure GitHub Personal Access Token
- github_ratelimit.json - API usage tracking
- package_cache.json - 30-day package details cache
- update_cache.json - Cached update results
Requires: PowerShell 5.1+, winget CLI, PwshSpectreConsole (auto-installs if missing)
FileList
- WingetBatch.nuspec
- .Jules\bolt.md
- .Jules\palette.md
- .github\workflows\publish.yml
- .history\.github\copilot-instructions_20251105190908.md
- .history\.github\copilot-instructions_20251105210423.md
- .history\.github\copilot-instructions_20251105210425.md
- .history\.github\copilot-instructions_20251105210642.md
- .history\.github\copilot-instructions_20251105210653.md
- .history\.github\copilot-instructions_20251105210723.md
- .history\.github\copilot-instructions_20251105210740.md
- .history\.github\copilot-instructions_20251105215229.md
- .history\CHECKLIST_20251106025607.md
- .history\Create-ITDistributionGroup_20251107152246.ps1
- .history\Create-ITDistributionGroup_20251107152420.ps1
- .history\Create-ITDistributionGroup_20251107152520.ps1
- .history\Create-ITDistributionGroup_20251107152546.ps1
- .history\Install-WingetBatch_20251110105048.ps1
- .history\Install-WingetBatch_20251110105602.ps1
- .history\Install-WingetBatch_20251110105718.ps1
- .history\Install-WingetBatch_20251110105722.ps1
- .history\Install-WingetBatch_20251110105724.ps1
- .history\Install-WingetBatch_20251110105726.ps1
- .history\Install-WingetBatch_20251110110130.ps1
- .history\Install-WingetBatch_20251110110142.ps1
- .history\Install-WingetBatch_20251110110414.ps1
- .history\Install-WingetBatch_20251110110509.ps1
- .history\Install-WingetBatch_20251110110534.ps1
- .history\Install-WingetBatch_20251110110551.ps1
- .history\Install-WingetBatch_20251110110609.ps1
- .history\Install-WingetBatch_20251110110636.ps1
- .history\Install-WingetBatch_20251110112512.ps1
- .history\Install-WingetBatch_20251110113158.ps1
- .history\Install-WingetBatch_20251110125540.ps1
- .history\Install-WingetBatch_20251110125558.ps1
- .history\Install-WingetBatch_20251110125611.ps1
- .history\Install-WingetBatch_20251110150725.ps1
- .history\LICENSE_20251106025506
- .history\LICENSE_20251107055725
- .history\PUBLISHING_20251106025532.md
- .history\README_20251105181104.md
- .history\README_20251106030225.md
- .history\README_20251107055725.md
- .history\WingetBatch_20251105181523.psd1
- .history\WingetBatch_20251105190419.psm1
- .history\WingetBatch_20251105191221.psm1
- .history\WingetBatch_20251105191223.psm1
- .history\WingetBatch_20251105191651.psm1
- .history\WingetBatch_20251105191859.psm1
- .history\WingetBatch_20251105192828.psm1
- .history\WingetBatch_20251105192838.psd1
- .history\WingetBatch_20251105193134.psm1
- .history\WingetBatch_20251105193215.psm1
- .history\WingetBatch_20251105193349.psm1
- .history\WingetBatch_20251105193558.psm1
- .history\WingetBatch_20251105193618.psm1
- .history\WingetBatch_20251105193656.psm1
- .history\WingetBatch_20251105195452.psm1
- .history\WingetBatch_20251105195509.psm1
- .history\WingetBatch_20251105195521.psm1
- .history\WingetBatch_20251105195533.psm1
- .history\WingetBatch_20251105195603.psm1
- .history\WingetBatch_20251105195621.psm1
- .history\WingetBatch_20251105195837.psm1
- .history\WingetBatch_20251105200704.psm1
- .history\WingetBatch_20251105200738.psm1
- .history\WingetBatch_20251105200806.psm1
- .history\WingetBatch_20251105200951.psm1
- .history\WingetBatch_20251105201022.psm1
- .history\WingetBatch_20251105201235.psm1
- .history\WingetBatch_20251105201306.psm1
- .history\WingetBatch_20251105201404.psm1
- .history\WingetBatch_20251105201417.psm1
- .history\WingetBatch_20251105201724.psm1
- .history\WingetBatch_20251105201736.psm1
- .history\WingetBatch_20251105202107.psm1
- .history\WingetBatch_20251105202217.psm1
- .history\WingetBatch_20251105202237.psm1
- .history\WingetBatch_20251105203600.psm1
- .history\WingetBatch_20251105203621.psm1
- .history\WingetBatch_20251105203649.psm1
- .history\WingetBatch_20251105204026.psm1
- .history\WingetBatch_20251105204036.psm1
- .history\WingetBatch_20251105204224.psm1
- .history\WingetBatch_20251105204246.psm1
- .history\WingetBatch_20251105204330.psm1
- .history\WingetBatch_20251105204441.psm1
- .history\WingetBatch_20251105204503.psm1
- .history\WingetBatch_20251105204516.psm1
- .history\WingetBatch_20251105204853.psm1
- .history\WingetBatch_20251105204936.psm1
- .history\WingetBatch_20251105205921.psm1
- .history\WingetBatch_20251105205946.psm1
- .history\WingetBatch_20251105210423.psd1
- .history\WingetBatch_20251105210423.psm1
- .history\WingetBatch_20251105210625.psm1
- .history\WingetBatch_20251105210626.psm1
- .history\WingetBatch_20251105212144.psm1
- .history\WingetBatch_20251105212248.psm1
- .history\WingetBatch_20251105212441.psm1
- .history\WingetBatch_20251105212451.psm1
- .history\WingetBatch_20251105214002.psm1
- .history\WingetBatch_20251105214005.psm1
- .history\WingetBatch_20251105214402.psm1
- .history\WingetBatch_20251105214429.psm1
- .history\WingetBatch_20251105214448.psm1
- .history\WingetBatch_20251105215229.psd1
- .history\WingetBatch_20251105215229.psm1
- .history\WingetBatch_20251105222518.psm1
- .history\WingetBatch_20251105223546.psm1
- .history\WingetBatch_20251105223753.psm1
- .history\WingetBatch_20251105223810.psm1
- .history\WingetBatch_20251105223833.psm1
- .history\WingetBatch_20251105223858.psm1
- .history\WingetBatch_20251106025116.psm1
- .history\WingetBatch_20251106025421.psd1
- .history\WingetBatch_20251106025449.psd1
- .history\WingetBatch_20251106025507.psd1
- .history\WingetBatch_20251106025508.psd1
- .history\WingetBatch_20251106025510.psd1
- .history\WingetBatch_20251106025515.psd1
- .history\WingetBatch_20251106025541.psd1
- .history\WingetBatch_20251106025542.psd1
- .history\WingetBatch_20251106030141.psd1
- .history\WingetBatch_20251106030637.psm1
- .history\WingetBatch_20251106035209.psm1
- .history\WingetBatch_20251106035627.psm1
- .history\WingetBatch_20251106035637.psm1
- .history\WingetBatch_20251106035701.psm1
- .history\WingetBatch_20251106035717.psm1
- .history\WingetBatch_20251106035742.psm1
- .history\WingetBatch_20251106035918.psm1
- .history\WingetBatch_20251106035940.psm1
- .history\WingetBatch_20251106035959.psm1
- .history\WingetBatch_20251106040731.psm1
- .history\WingetBatch_20251106040749.psm1
- .history\WingetBatch_20251106040804.psm1
- .history\WingetBatch_20251106040822.psm1
- .history\WingetBatch_20251106040849.psm1
- .history\WingetBatch_20251106040904.psm1
- .history\WingetBatch_20251106040948.psm1
- .history\WingetBatch_20251106041334.psm1
- .history\WingetBatch_20251106041344.psm1
- .history\WingetBatch_20251106041521.psm1
- .history\WingetBatch_20251106041712.psm1
- .history\WingetBatch_20251106041831.psm1
- .history\WingetBatch_20251106041841.psm1
- .history\WingetBatch_20251106041852.psm1
- .history\WingetBatch_20251106042140.psm1
- .history\WingetBatch_20251106042230.psm1
- .history\WingetBatch_20251106042249.psd1
- .history\WingetBatch_20251106042316.psm1
- .history\WingetBatch_20251106072428.psm1
- .history\WingetBatch_20251106072937.psm1
- .history\WingetBatch_20251106072952.psm1
- .history\WingetBatch_20251106073003.psd1
- .history\WingetBatch_20251106073243.psm1
- .history\WingetBatch_20251106073254.psd1
- .history\WingetBatch_20251106073325.psm1
- .history\WingetBatch_20251106073446.psm1
- .history\WingetBatch_20251106074356.psm1
- .history\WingetBatch_20251106074409.psm1
- .history\WingetBatch_20251106074608.psm1
- .history\WingetBatch_20251106074620.psm1
- .history\WingetBatch_20251106074635.psd1
- .history\WingetBatch_20251107055723.psd1
- .history\WingetBatch_20251107055723.psm1
- .history\WingetBatch_20251107060412.psm1
- .history\WingetBatch_20251107060422.psm1
- .history\WingetBatch_20251107060432.psm1
- .history\WingetBatch_20251107152137.psm1
- .history\WingetBatch_20251110110203.psm1
- .history\WingetBatch_20251110113158.psm1
- .history\iChris-API-Pricing-Analysis_20251107184448.md
- .history\iChris-API-Pricing-Analysis_20251107184917.md
- .history\iChris-API-Pricing-Analysis_20251107185041.md
- .history\iChris-API-Pricing-Analysis_20251110105603.md
- LICENSE
- Private\ConvertTo-SpectreEscaped.ps1
- Private\Export-WingetHtmlReport.ps1
- Private\Get-GitHubApiRequestCount.ps1
- Private\Get-PackageDetailsCache.ps1
- Private\Get-WingetBatchConfigDir.ps1
- Private\Get-WingetBatchGitHubToken.ps1
- Private\Parse-WingetShowOutput.ps1
- Private\Set-PackageDetailsCache.ps1
- Private\Show-WingetPackageDetails.ps1
- Private\Start-PackageDetailJobs.ps1
- Private\Start-WingetBatchJob.ps1
- Private\Start-WingetUpdateCheck.ps1
- Private\Update-GitHubApiRequestCount.ps1
- Public\Disable-WingetUpdateNotifications.ps1
- Public\Enable-WingetUpdateNotifications.ps1
- Public\Export-WingetBatchConfig.ps1
- Public\Get-WingetNewPackages.ps1
- Public\Get-WingetUpdates.ps1
- Public\Import-WingetBatchConfig.ps1
- Public\Install-WingetAll.ps1
- Public\Invoke-WingetBatchCleanup.ps1
- Public\New-WingetBatchGitHubToken.ps1
- Public\Remove-WingetRecent.ps1
- Public\Set-WingetBatchGitHubToken.ps1
- Public\Update-WingetBatch.ps1
- README.md
- WingetBatch.exe
- WingetBatch.psd1
- WingetBatch.psm1
- WingetBatch_Standalone.ps1
- benchmark.ps1
- benchmark_parser.ps1
- build.ps1
- fix_trailing_spaces.ps1
- measure_group.ps1
- measure_install.ps1
- publish.ps1
- test_hashset.ps1
- test_ux.ps1
- tests\ConvertTo-SpectreEscaped.Tests.ps1
- tests\Get-WingetBatchConfigDir.Tests.ps1
- tests\Parse-WingetShowOutput.Tests.ps1
- tests\Show-WingetPackageDetails.Tests.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 2.2.1 | 7 | 5/8/2026 |
| 2.2.0 (current version) | 29 | 5/4/2026 |
| 2.1.2 | 17 | 5/2/2026 |
| 2.0.0 | 120 | 11/5/2025 |