mirror of
https://dev.azure.com/effectory/Survey%20Software/_git/Cloud%20Engineering
synced 2026-02-27 18:52:18 +01:00
55 lines
2.6 KiB
PowerShell
55 lines
2.6 KiB
PowerShell
|
|
class ServiceConnection {
|
|
[string] $Id = ""
|
|
[string] $Name = ""
|
|
[string] $OperationStatus = ""
|
|
[string] $AuthorizationScheme = ""
|
|
[string] $ServicePrincipalApplicationId = ""
|
|
[string] $ServicePrincipalObjectId = ""
|
|
[string] $ServicePrincipalName = ""
|
|
[string] $ServicePrincipalEndDateTime = ""
|
|
}
|
|
|
|
[string] $date = Get-Date -Format "yyyy-MM-dd HHmm"
|
|
$fileName = ".\$date serviceconnections.csv"
|
|
|
|
Write-Host "========================================================================================================================================================================"
|
|
Write-Host "Creating service connection overview."
|
|
Write-Host "========================================================================================================================================================================"
|
|
|
|
$token = "{INSERT_PERSONAL_ACCESS_TOKEN}"
|
|
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
|
|
$organization = "effectory"
|
|
$project = "Survey%20Software"
|
|
|
|
$url="https://dev.azure.com/$organization/$project/_apis/serviceendpoint/endpoints?api-version=6.0-preview.4"
|
|
$head = @{ Authorization =" Basic $token" }
|
|
$response = Invoke-RestMethod -Uri $url -Method GET -Headers $head
|
|
|
|
[ServiceConnection[]]$Result = @()
|
|
$response.value | ForEach-Object {
|
|
[ServiceConnection] $serviceConnection = [ServiceConnection]::new()
|
|
$serviceConnection.Id = $_.id
|
|
$serviceConnection.Name = $_.name
|
|
$serviceConnection.OperationStatus = $_.operationStatus
|
|
$serviceConnection.AuthorizationScheme = $_.authorization.scheme
|
|
|
|
$principalid = $_.authorization.parameters.serviceprincipalid
|
|
if ($null -ne $principalid) {
|
|
$principal = Get-AzADServicePrincipal -ApplicationId $principalid
|
|
$credential = Get-AzADAppCredential -ApplicationId $principalid
|
|
|
|
$serviceConnection.ServicePrincipalApplicationId = $principalid
|
|
$serviceConnection.ServicePrincipalObjectId = $principal.Id
|
|
$serviceConnection.ServicePrincipalName = $principal.DisplayName
|
|
$serviceConnection.ServicePrincipalEndDateTime = $credential.EndDateTime
|
|
}
|
|
$Result += $serviceConnection
|
|
}
|
|
|
|
$Result | Export-Csv -Path $fileName -Append -NoTypeInformation
|
|
|
|
Write-Host "========================================================================================================================================================================"
|
|
Write-Host "Done."
|
|
|
|
|