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