winget-install
5.0.5
Downloads and installs the latest version of winget and its dependencies.
This script is designed to be straightforward and easy to use, removing the hassle of manually downloading, installing, and configuring winget. This function should be run with administrative privileges.
Installation Options
Owners
Package Details
Author(s)
- asheroto
Tags
PowerShell Windows winget win get install installer fix script setup
Functions
Get-OSInfo Get-GitHubRelease CheckForUpdate UpdateSelf Write-Section Get-WingetDownloadUrl Get-WingetStatus Handle-Error Get-CurrentProcess ExitWithDelay Import-GlobalVariable Test-AdminPrivileges New-TemporaryFile2 Path-ExistsInEnvironment Add-ToEnvironmentPath Set-PathPermissions Test-VCRedistInstalled TryRemove Install-NuGetIfRequired
Dependencies
This script has no dependencies.
Release Notes
[Version 0.0.1] - Initial Release.
[Version 0.0.2] - Implemented function to get the latest version of winget and its license.
[Version 0.0.3] - Signed file for PSGallery.
[Version 0.0.4] - Changed URI to grab latest release instead of releases and preleases.
[Version 0.0.5] - Updated version number of dependencies.
[Version 1.0.0] - Major refactor code, see release notes for more information.
[Version 1.0.1] - Fixed minor bug where version 2.8 was hardcoded in URL.
[Version 1.0.2] - Hardcoded UI Xaml version 2.8.4 as a failsafe in case the API fails. Added CheckForUpdates, Version, Help functions. Various bug fixes.
[Version 1.0.3] - Added error message to catch block. Fixed bug where appx package was not being installed.
[Version 1.0.4] - MisterZeus optimized code for readability.
[Version 2.0.0] - Major refactor. Reverted to UI.Xaml 2.7.3 for stability. Adjusted script to fix install issues due to winget changes (thank you ChrisTitusTech). Added in all architecture support.
[Version 2.0.1] - Renamed repo and URL references from winget-installer to winget-install. Added extra space after the last line of output.
[Version 2.0.2] - Adjusted CheckForUpdates to include Install-Script instructions and extra spacing.
[Version 2.1.0] - Added alternate method/URL for dependencies in case the main URL is down. Fixed licensing issue when winget is installed on Server 2022.
[Version 2.1.1] - Switched primary/alternate methods. Added Cleanup function to avoid errors when cleaning up temp files. Added output of URL for alternate method. Suppressed Add-AppxProvisionedPackage output. Improved success message. Improved verbiage. Improve PS script comments. Added check if the URL is empty. Moved display of URL beneath the check.
[Version 3.0.0] - Major changes. Added OS version detection checks - detects OS version, release ID, ensures compatibility. Forces older file installation for Server 2022 to avoid issues after installing. Added DebugMode, DisableCleanup, Force. Renamed CheckForUpdates to CheckForUpdate. Improved output. Improved error handling. Improved comments. Improved code readability. Moved CheckForUpdate into function. Added PowerShellGalleryName. Renamed Get-OSVersion to Get-OSInfo. Moved architecture detection into Get-OSInfo. Renamed Get-NewestLink to Get-WingetDownloadUrl. Have Get-WingetDownloadUrl not get preview releases.
[Version 3.0.1] - Updated Get-OSInfo function to fix issues when used on non-English systems. Improved error handling of "resources in use" error.
[Version 3.0.2] - Added winget registration command for Windows 10 machines.
[Version 3.1.0] - Added support for one-line installation with irm and iex compatible with $Force session variable. Added UpdateSelf command to automatically update the script to the latest version. Created short URL asheroto.com/winget.
[Version 3.1.1] - Changed winget register command to run on all OS versions.
[Version 3.2.0] - Added -ForceClose logic to relaunch the script in conhost.exe and automatically end active processes associated with winget that could interfere with the installation. Improved verbiage on winget already installed.
[Version 3.2.1] - Fixed minor glitch when using -Version or -Help parameters.
[Version 3.2.2] - Improved script exit functionality.
[Version 3.2.3] - Improved -ForceClose window handling with x86 PowerShell process.
[Version 3.2.4] - Improved verbiage for incompatible systems. Added importing Appx module on Windows Server with PowerShell 7+ systems to avoid error message.
[Version 3.2.5] - Removed pause after script completion. Added optional Wait parameter to force script to wait several seconds for script output.
[Version 3.2.6] - Improved ExitWithDelay function. Sometimes PowerShell will close the window accidentally, even when using the proper 'exit' command. Adjusted several closures for improved readability. Improved error code checking. Fixed glitch with -Wait param.
[Version 3.2.7] - Addded ability to install for all users. Added checks for Windows Sandbox and administrative privileges.
[Version 4.0.0] - Microsoft created some short URLs for winget. Removed a large portion of the script to use short URLs instead. Simplified and refactored. Switched debug param from DebugMode to Debug.
[Version 4.0.1] - Fixed PowerShell help information.
[Version 4.0.2] - Adjusted UpdateSelf function to reset PSGallery to original state if it was not trusted. Improved comments.
[Version 4.0.3] - Updated UI.Xaml package as per winget-cli issue #4208.
[Version 4.0.4] - Fixed detection for Windows multi-session.
[Version 4.0.5] - Improved error handling when registering winget.
[Version 4.1.0] - Support for Windows Server 2019 added by installing Visual C++ Redistributable.
[Version 4.1.1] - Minor revisions to comments & debug output.
[Version 4.1.2] - Implemented Visual C++ Redistributable version detection to ensure compatibility with winget.
[Version 4.1.3] - Added additional debug output for Visual C++ Redistributable version detection.
[Version 5.0.0] - Completely changed method to use winget-cli Repair-WingetPackageManager. Added environment path detection and addition if needed. Added NoExit parameter to prevent script from exiting after completion. Adjusted permissions of winget folder path for Server 2019. Improved exit handling to avoid PowerShell window closing.
[Version 5.0.1] - Fixed typo in variable name.
[Version 5.0.2] - Added detection of NuGet and PowerShell version to determine if package provider installation is needed.
[Version 5.0.3] - Fixed missing argument in call to Add-ToEnvironmentPath.
[Version 5.0.4] - Fixed bug with UpdateSelf function. Fixed bug when installing that may cause NuGet prompt to not be suppressed. Introduced Install-NuGetIfRequired function.
[Version 5.0.5] - Fixed exit code issue. Fixes #52.
FileList
- winget-install.nuspec
- winget-install.ps1
Version History
Version | Downloads | Last updated |
---|---|---|
5.0.5 (current version) | 7,979 | 11/18/2024 |
5.0.4 | 9,003 | 11/9/2024 |
5.0.3 | 333 | 11/8/2024 |
5.0.2 | 41 | 11/8/2024 |
5.0.1 | 2,036 | 11/7/2024 |
5.0.0 | 26 | 11/7/2024 |
4.1.2 | 101,142 | 6/5/2024 |
4.1.1 | 40 | 6/5/2024 |
4.1.0 | 1,827 | 5/31/2024 |
4.0.5 | 29,139 | 4/29/2024 |
4.0.4 | 29,814 | 3/6/2024 |
4.0.3 | 1,763 | 2/29/2024 |
4.0.2 | 5,216 | 2/15/2024 |
4.0.1 | 12,068 | 1/30/2024 |
4.0.0 | 60 | 1/30/2024 |
3.2.6 | 119,440 | 1/4/2024 |
3.2.5 | 124,108 | 12/15/2023 |
3.2.4 | 301,448 | 11/6/2023 |
3.2.3 | 120,584 | 10/29/2023 |
3.2.2 | 14,617 | 10/23/2023 |
3.2.1 | 11 | 10/23/2023 |
3.2.0 | 13 | 10/23/2023 |
3.1.1 | 10,495 | 10/16/2023 |
3.1.0 | 13 | 10/16/2023 |
3.0.2 | 69 | 10/16/2023 |
3.0.1 | 8,084 | 9/25/2023 |
3.0.0 | 16,087 | 8/23/2023 |
2.1.0 | 37,954 | 8/17/2023 |
2.0.2 | 5,515 | 8/1/2023 |
2.0.1 | 20 | 8/1/2023 |
2.0.0 | 21 | 8/1/2023 |
1.0.4 | 17,468 | 6/28/2023 |
1.0.3 | 4,079 | 6/20/2023 |
1.0.2 | 106 | 6/20/2023 |
1.0.1 | 1,312 | 6/17/2023 |
1.0.0 | 31 | 6/17/2023 |
0.0.4 | 73,879 | 7/2/2022 |
0.0.3 | 29 | 7/1/2022 |
0.0.2 | 27 | 7/1/2022 |