WinGetLookup
2.0.0
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2025 Mark Ringo. MIT License.
Package Details
Author(s)
- Ringo
Tags
WinGet WindowsPackageManager PackageManager PackageLookup Windows Automation DevOps Intune SCCM ConfigMgr AppDeployment
Functions
Test-WinGetPackage Get-WinGetPackageInfo Compare-WinGetVersion Get-WinGetLatestVersion Test-WinGet64BitAvailable Get-WinGet64BitPackageId Find-WinGetPackageByProductCode Clear-WinGetCache Get-WinGetCacheStatistics Initialize-WinGetPackageCache
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## Version 2.0.0 (December 28, 2025) - STABLE RELEASE
### Summary
Major release with true WinGet manifest fidelity, PowerShell 7.0+ only.
## Version 2.0.0-alpha3 (December 28, 2025)
### Breaking Change
- Now requires PowerShell 7.0+ (dropped Windows PowerShell 5.1 support)
- Simplified codebase by removing PS 5.1 compatibility code
## Version 2.0.0-alpha2 (December 28, 2025)
### Bug Fixes
- Fixed PowerShell 7+ JSON parsing issue with case-sensitive keys (API returned CreatedAt vs createdAt)
- Fixed primary word extraction bug where single-item arrays were incorrectly indexed as strings
## Version 2.0.0-alpha1 (December 28, 2025)
### Major Refactor for WinGet Schema Fidelity (ALPHA RELEASE)
**⚠️ ALPHA RELEASE** - This is a pre-release version for testing. APIs may change before final 2.0.0 release.
This release significantly improves accuracy by using actual WinGet manifest data instead of heuristics.
### New Features
- **True Architecture Detection**: Queries actual manifest `Installers` array for x86/x64/arm/arm64 data
- **InstallerType Exposure**: Returns installer types (msi, exe, msix, inno, nullsoft, portable, etc.)
- **Scope Detection**: Shows available installation scopes (user, machine)
- **Version Comparison**: New `Compare-WinGetVersion` and `Get-WinGetLatestVersion` functions
- **ProductCode Search**: New `Find-WinGetPackageByProductCode` for MSI correlation
- **API Retry Logic**: Exponential backoff for transient failures (429, 5xx errors)
- **Enhanced Caching**: Separate manifest cache, full parameter-aware cache keys
### Improvements
- API queries now use `preferContains` and `splitQuery` for better multi-word matching
- Publisher filter applied at API level (server-side) for efficiency
- Hybrid scoring uses API's SearchScore combined with client-side validation
- `Get-WinGetPackageInfo` returns rich installer metadata
### Breaking Changes
- `Has64BitIndicator` property renamed to `Has64BitInstaller` (now boolean from manifest data)
- Cache statistics now include `ManifestCacheEntries` count
### New Exported Functions
- `Compare-WinGetVersion` - Compare two WinGet-style version strings
- `Get-WinGetLatestVersion` - Get highest version from array
- `Find-WinGetPackageByProductCode` - Search by MSI ProductCode GUID
### Enhanced Output Properties (Get-WinGetPackageInfo)
- `Architectures` - Available architectures (x86, x64, arm, arm64)
- `InstallerTypes` - Available installer types (msi, exe, msix, etc.)
- `AvailableScopes` - Installation scopes (user, machine)
- `LatestVersion` - Computed latest version from Versions array
- `Has64BitInstaller` - Boolean from actual manifest data
## Version 1.8.0 (December 28, 2025)
### Bug Fixes
- Fixed smart matching algorithm to prevent false positives
- Packages must now contain the primary search word to be considered a match
- Added minimum score threshold to filter out low-quality matches
- Example: "TeamViewer 15" no longer incorrectly matches "115Chrome"
### Improvements
- Improved scoring for exact name matches
- Better handling of search terms with version numbers
- More accurate matching for common software names
## Version 1.7.1 (December 28, 2025)
### Updates
- Added MIT License file to module package
- Added module icon for PSGallery display
- Added comprehensive README documentation
- Published to GitHub: https://github.com/Ringosystems/WinGetLookup
- Updated ProjectUri and IconUri for PSGallery
## Version 1.7.0 (December 27, 2025)
### New Features
- Added Initialize-WinGetPackageCache function for cache pre-warming
- Performance improvements for batch operations
## Version 1.6.0 (December 26, 2025)
### New Features
- Added Get-WinGet64BitPackageId function to handle separate 64-bit packages
- Automatically detects when 32-bit and 64-bit versions are separate packages
- Converts package IDs like Adobe.Acrobat.Reader.32-bit to .64-bit variants
- Handles multiple naming patterns: .32-bit/.64-bit, -32-bit/-64-bit, .x86/.x64
- Returns correct package ID for installation (same package or 64-bit variant)
## Version 1.5.0 (December 26, 2025)
### New Features
- Added Test-WinGet64BitAvailable function for CLI-based 64-bit verification
- Uses local WinGet CLI (winget show --architecture x64) for definitive results
- More accurate than heuristic detection for packages without 64-bit metadata
- Supports packages like WinRAR that have x64 installers but no 64-bit indicators
- Includes timeout handling and proper process management
## Version 1.4.0 (December 26, 2025)
### New Features
- Get-WinGetPackageInfo now includes Has64BitIndicator property in output
- Has64BitIndicator indicates if the package appears to have a 64-bit version
- Based on package ID, name, and tags analysis (no additional API calls)
- Useful for determining if an upgrade from 32-bit to 64-bit is available
## Version 1.3.0 (December 26, 2025)
### New Features
- Added session-level caching to minimize redundant API calls
- New Clear-WinGetCache function to reset the cache
- New Get-WinGetCacheStatistics function to view cache performance
- Cache tracks hits, misses, and efficiency percentage
- Significantly improves performance when querying multiple similar applications
## Version 1.2.0 (December 26, 2025)
### New Features
- Added smart matching algorithm for better package selection from API results
- Added -Publisher parameter to filter results by publisher name
- Added -PackageId parameter for exact package ID matching
- Now fetches multiple results (10) from API and scores them to find best match
- Scoring considers: exact ID match, publisher match, name similarity, and ID patterns
- This resolves edge cases like "PuTTY" incorrectly returning "MTPuTTY"
## Version 1.1.0 (December 26, 2025)
### New Features
- Added -Require64Bit switch parameter to Test-WinGetPackage
- When specified, returns 1 only if a 64-bit version of the package is available
- Added helper functions for 64-bit detection based on package ID, name, and tags
## Version 1.0.0 (December 26, 2025)
### Initial Release
- Added Test-WinGetPackage function to check if a package exists in WinGet
- Added Get-WinGetPackageInfo function to retrieve detailed package information
- Uses winget.run API for package lookups (no local WinGet installation required)
- Full pipeline support for batch operations
- Comprehensive comment-based help documentation
FileList
- WinGetLookup.nuspec
- coverage.xml
- icon.png
- LICENSE
- README.md
- WinGetLookup.psd1
- WinGetLookup.psm1
- WinGetLookup.Tests.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 2.0.0 (current version) | 29 | 12/29/2025 |
| 1.8.0 | 7 | 12/28/2025 |
| 1.7.1 | 6 | 12/28/2025 |
| 1.7.0 | 13 | 12/27/2025 |