Private/Orbit/Get-ITFOrbitNodeKey.ps1
|
function Get-ITFOrbitNodeKey { [CmdletBinding()] param( [Parameter()] [string]$OrbitNodeKeyPath ) $candidates = @() if ($OrbitNodeKeyPath) { $candidates += $OrbitNodeKeyPath } # Observed on systems using Orbit update root directory (ProgramFiles\Orbit) if ($env:ProgramFiles) { $candidates += (Join-Path (Join-Path $env:ProgramFiles 'Orbit') 'secret-orbit-node-key.txt') } # Fallbacks (best-effort) if ($env:ProgramData) { $candidates += (Join-Path (Join-Path $env:ProgramData 'Orbit') 'secret-orbit-node-key.txt') } $candidates += 'C:\Program Files\Orbit\secret-orbit-node-key.txt' $candidates += 'C:\ProgramData\Orbit\secret-orbit-node-key.txt' foreach ($p in ($candidates | Select-Object -Unique)) { try { if (-not (Test-Path $p)) { continue } $k = (Get-Content -Path $p -Raw -ErrorAction Stop).Trim() if ($k) { return [pscustomobject]@{ Path = $p OrbitNodeKey = $k } } } catch { } } return $null } |