internal/tepp/tenant.details.fields.tepp.ps1
|
$scbTenantDetailUpn = { param ( $commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter ) try { $stored = @(Get-BapTenantDetail -ErrorAction SilentlyContinue | Select-Object -ExpandProperty User -Unique | Where-Object { $_ }) $provider = Get-PSFConfigValue -FullName 'd365bap.tools.auth.provider' -Fallback 'AzAccount' $live = @() if ($provider -eq 'AzCli') { try { $raw = az account list --query '[].user.name' -o tsv 2>$null if ($LASTEXITCODE -eq 0 -and $raw) { $live = @($raw | Where-Object { $_ } | Sort-Object -Unique) } } catch { } } else { $live = @(Get-AzContext -ListAvailable -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Account | Select-Object -ExpandProperty Id -Unique | Where-Object { $_ }) } $merged = @($stored + $live) | Sort-Object -Unique | Where-Object { $_ -like "$wordToComplete*" } foreach ($v in $merged) { [System.Management.Automation.CompletionResult]::new($v, $v, 'ParameterValue', $v) } } catch { } } Register-PSFTeppScriptblock -Name "d365bap.tools.tepp.tenant.details.upn" -ScriptBlock $scbTenantDetailUpn -Mode Full $scbTenantDetailTenantId = { param ( $commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter ) try { $stored = @(Get-BapTenantDetail -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Tenant -Unique | Where-Object { $_ }) $provider = Get-PSFConfigValue -FullName 'd365bap.tools.auth.provider' -Fallback 'AzAccount' $live = @() if ($provider -eq 'AzCli') { try { $raw = az account list --query '[].tenantId' -o tsv 2>$null if ($LASTEXITCODE -eq 0 -and $raw) { $live = @($raw | Where-Object { $_ } | Sort-Object -Unique) } } catch { } if ($live.Count -eq 0) { try { $rawTenants = az account tenant list --query '[].tenantId' -o tsv 2>$null if ($LASTEXITCODE -eq 0 -and $rawTenants) { $live = @($rawTenants | Where-Object { $_ } | Sort-Object -Unique) } } catch { } } } else { $live = @(Get-AzContext -ListAvailable -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Tenant | Select-Object -ExpandProperty Id -Unique | Where-Object { $_ }) } $merged = @($stored + $live) | Sort-Object -Unique | Where-Object { $_ -like "$wordToComplete*" } foreach ($v in $merged) { [System.Management.Automation.CompletionResult]::new($v, $v, 'ParameterValue', $v) } } catch { } } Register-PSFTeppScriptblock -Name "d365bap.tools.tepp.tenant.details.tenantid" -ScriptBlock $scbTenantDetailTenantId -Mode Full $scbTenantDetailFriendly = { param ( $commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter ) try { $stored = @(Get-BapTenantDetail -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FriendlyName -Unique | Where-Object { $_ }) $provider = Get-PSFConfigValue -FullName 'd365bap.tools.auth.provider' -Fallback 'AzAccount' $liveNames = @() if ($provider -eq 'AzCli') { try { $raw = az account tenant list --query '[].[tenantId, displayName]' -o tsv 2>$null if ($LASTEXITCODE -eq 0 -and $raw) { $liveNames = @($raw | ForEach-Object { $parts = "$_".Split("`t") if ($parts.Count -ge 2) { $parts[1].Trim() } } | Where-Object { $_ } | Sort-Object -Unique) } } catch { } } else { $liveNames = @(Get-AzTenant -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Name -Unique | Where-Object { $_ }) } $filterWord = $wordToComplete -replace "^['\""]", "" $merged = @($stored + $liveNames) | Sort-Object -Unique | Where-Object { $_ -like "$filterWord*" } foreach ($v in $merged) { $escaped = $v -replace "'", "''" $quoted = "'$escaped'" [System.Management.Automation.CompletionResult]::new($quoted, $v, 'ParameterValue', $v) } } catch { } } Register-PSFTeppScriptblock -Name "d365bap.tools.tepp.tenant.details.friendly" -ScriptBlock $scbTenantDetailFriendly -Mode Full |