Quería automatizar el cambio de estado en Teams y buscando maneras de hacerlo con una API encontré esta respuesta en SO donde muestran que existen los siguientes flags

--set-presence-to-available
--set-presence-to-dnd
--set-presence-to-be-right-back
--set-presence-to-away
--set-presence-to-offline
--reset-presence

Y queria ver si podia encontrar las demas flags, para eso busque el .exe de ms-teams

src_sh{(get-command ms-teams.exe).Source}

ls -l (get-command ms-teams).Source

    Directory: C:\Users\abc\AppData\Local\Microsoft\WindowsApps

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
la---            8/6/2024  8:15 PM              0 ms-teams.exe ->

Sorpresivamente es un archivo de 0Bytes

encontre en un comentario que podia usar src_sh{fsutil reparsepoint query} para seguir el symlink

Pero me tiraba un output compilado, pero se puede ver usando este script

function Resolve-AppXExePath {
<#
.SYNOPSIS
  Resolves AppX execution aliases to their app IDs and target paths.
.EXAMPLE
  Get-ChildItem -File $env:LOCALAPPDATA\Microsoft\WindowsApps | Resolve-AppXExePath
 .NOTES
  This command is slow, because a call to fsutil.exe is made for each input path.
  #>
  param(
    [Parameter(ValueFromPipeline)]
    [Alias('PSPath')]
    [string] $LiteralPath
  )

  process {
    $fullName = Convert-Path -LiteralPath $LiteralPath
    if (-not $?) { return }

    # Get a hex-dump representation of the reparse-point data via fsutil reparsepoint query $fullName
    $hexDump = fsutil reparsepoint query $fullName 2>&1
    if ($LASTEXITCODE) { Write-Error $hexDump; return }

    # Extract the raw bytes that make up the reparse-point data.
    [byte[]] $bytes = -split (-join ($hexDump -match '^[a-f0-9]+:' -replace '^[a-f0-9]+:\s+(((?:[a-f0-9]{2}) +){1,16}).+$', '$1')) -replace '^', '0x'

    # Convert the data to a UTF-16 string and split into fields by NUL bytes.
    $props = [System.Text.Encoding]::Unicode.GetString($bytes) -split "`0"

    # Output a custom object with the App ID (Package ID + entry-point name)
    # and the target path (which may just be the universal UWP launcher)
    [PSCustomObject] @{
      AppId = $props[2]
      Target = $props[3]
    }

  }
}

src_sh{Get-ChildItem -File $env:LOCALAPPDATA\Microsoft\WindowsApps | Resolve-AppXExePath}

que me llevo a C:\Program Files\WindowsApps pero es una carpeta que no se ve, y si se la pone en la barra de navegacion salta una notificacion de permisos que se soluciona siguiendo pasos y con eso finalmente se puede llegar a los ejecutables de las aplicaciones instaladas con WinGet