functions/Get-WingetPath.ps1
Function Get-WGPath { [cmdletbinding()] [OutputType("String")] Param() Write-Verbose "[$((Get-Date).TimeofDay)] Starting $($myinvocation.mycommand)" $currentUser = whoami # get account running function Write-Verbose "[$((Get-Date).TimeofDay)] Running as $currentUser" if ($currentUser -eq "nt authority\system") { Write-Verbose "[$((Get-Date).TimeofDay)] Running in SYSTEM context. Set path to WINGET executable" $winget = Get-ChildItem -Path "$env:ProgramFiles\WindowsApps" -Recurse -File | Where-Object { $_.name -like "AppInstallerCLI.exe" -or $_.name -like "WinGet.exe" } | Select-Object -ExpandProperty fullname # If there are multiple versions, select latest if ($winget.count -gt 1) { $winget = $winget[-1] } } else { Write-Verbose "[$((Get-Date).TimeofDay)] Using user default location" # 9/20/2022 use source path from Get-0Command $winget = (Get-Command winget.exe).source #"$env:localappdata\Microsoft\WindowsApps\Winget.exe" } $winget Write-Verbose "[$((Get-Date).TimeofDay)] Ending $($myinvocation.mycommand)" } |