From fab91a6e3e9c65394e911bcf24b7e9bf72004407 Mon Sep 17 00:00:00 2001 From: "Mr.k" Date: Fri, 26 Apr 2024 05:03:01 +0300 Subject: [PATCH] Fix Winget Detection by doing Proper Error Handling using a Try-Catch --- functions/private/Test-WinUtilPackageManager.ps1 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/functions/private/Test-WinUtilPackageManager.ps1 b/functions/private/Test-WinUtilPackageManager.ps1 index ca269fc3..e0736907 100644 --- a/functions/private/Test-WinUtilPackageManager.ps1 +++ b/functions/private/Test-WinUtilPackageManager.ps1 @@ -20,13 +20,16 @@ function Test-WinUtilPackageManager { $status = "not-installed" if ($winget) { - # Install Winget if not detected - $wingetExists = Get-Command -Name winget -ErrorAction SilentlyContinue + # Get Winget Version and Install it if not detected + $wingetVersionFull = "" + $wingetExists = $true + try { + $wingetVersionFull = winget --version + } catch [System.Management.Automation.CommandNotFoundException], [System.Management.Automation.ApplicationFailedException] { + $wingetExists = $false + } if ($wingetExists) { - # Check Winget Version - $wingetVersionFull = (winget --version) # Full Version without 'v'. - # Check if Preview Version if ($wingetVersionFull.Contains("-preview")) { $wingetVersion = $wingetVersionFull.Trim("-preview")