functions/azure/Get-KnownResourceAppId.ps1
function Get-KnownResourceAppId { [CmdletBinding(DefaultParameterSetName = 'All')] param ( [Parameter(ParameterSetName = 'Single')] [switch]$MicrosoftGraph, [Parameter(ParameterSetName = 'Single')] [switch]$ExchangeOnline, [Parameter(ParameterSetName = 'Single')] [switch]$SharePoint, [Parameter(ParameterSetName = 'Single')] [switch]$AzureKeyVault, [Parameter(ParameterSetName = 'Single')] [switch]$AzureStorage, [Parameter(ParameterSetName = 'Single')] [switch]$AzureResourceManager, [Parameter(ParameterSetName = 'Single')] [switch]$AzureServiceManagement, [Parameter(ParameterSetName = 'Single')] [switch]$Intune, [Parameter(ParameterSetName = 'Single')] [switch]$PowerBI, [Parameter(ParameterSetName = 'Single')] [switch]$PowerApps, [Parameter(ParameterSetName = 'Single')] [switch]$DynamicsCRM, [Parameter(ParameterSetName = 'Single')] [switch]$DynamicsERP, [Parameter(ParameterSetName = 'Single')] [switch]$SkypeForBusiness, [Parameter(ParameterSetName = 'Single')] [switch]$Yammer, [Parameter(ParameterSetName = 'Single')] [string]$Name, [Parameter(ParameterSetName = 'All')] [switch]$All ) $knownAppIds = @{ # Microsoft Graph 'MicrosoftGraph' = [guid]'00000003-0000-0000-c000-000000000000' # Microsoft APIs 'ExchangeOnline' = [guid]'00000002-0000-0ff1-ce00-000000000000' 'SharePoint' = [guid]'00000003-0000-0ff1-ce00-000000000000' 'SkypeForBusiness' = [guid]'00000004-0000-0ff1-ce00-000000000000' # Dynamics 365 'DynamicsCRM' = [guid]'00000007-0000-0000-c000-000000000000' 'DynamicsERP' = [guid]'00000015-0000-0000-c000-000000000000' # Power Platform 'PowerBI' = [guid]'00000009-0000-0000-c000-000000000000' 'PowerApps' = [guid]'475225e7-5e1f-426f-8b1c-1c0c38d4e7f4' # Azure Services (GUID-basiert) 'AzureResourceManager' = [guid]'797f4846-ba00-4fd7-ba43-dac1f8f63013' 'AzureServiceManagement' = [guid]'aa7e904c-e6a5-4e2b-9f8f-b7e3f90b31c1' # classic (wenn explizit) 'AzureDataLake' = [guid]'abf4847e-9378-4c52-a58e-a8ff5e4a29d1' # URL-basierte Ressourcen 'AzureKeyVault' = [uri]'https://vault.azure.net' 'AzureStorage' = [uri]'https://storage.azure.com/' 'AzureServiceBus' = [uri]'https://servicebus.azure.net/' 'AzureSQL' = [uri]'https://database.windows.net/' 'AzureBatch' = [uri]'https://batch.core.windows.net/' 'AzureAutomation' = [uri]'https://management.core.windows.net/' 'AzureManagement' = [uri]'https://management.core.windows.net/' # Spezialfälle / Legacy 'Intune' = [guid]'d4ebce55-015a-49b5-a083-c84d1797ae8c' 'Yammer' = [guid]'00000005-0000-0000-c000-000000000000' 'Office365ManagementAPI' = [guid]'c5393580-f805-4401-95e8-94b7a6ef2fc2' } switch ($PSCmdlet.ParameterSetName) { 'Single' { if ($MicrosoftGraph) { return $knownAppIds['MicrosoftGraph'] } elseif ($ExchangeOnline) { return $knownAppIds['ExchangeOnline'] } elseif ($SharePoint) { return $knownAppIds['SharePoint'] } elseif ($AzureKeyVault) { return $knownAppIds['AzureKeyVault'] } elseif ($AzureStorage) { return $knownAppIds['AzureStorage'] } elseif ($AzureResourceManager){ return $knownAppIds['AzureResourceManager'] } elseif ($AzureServiceManagement){ return $knownAppIds['AzureServiceManagement'] } elseif ($Intune) { return $knownAppIds['Intune'] } elseif ($PowerBI) { return $knownAppIds['PowerBI'] } elseif ($PowerApps) { return $knownAppIds['PowerApps'] } elseif ($DynamicsCRM) { return $knownAppIds['DynamicsCRM'] } elseif ($DynamicsERP) { return $knownAppIds['DynamicsERP'] } elseif ($SkypeForBusiness) { return $knownAppIds['SkypeForBusiness'] } elseif ($Yammer) { return $knownAppIds['Yammer'] } elseif ($Name) { return $knownAppIds[$Name] } } 'All' { return $knownAppIds } } Write-Warning "Keine bekannte Ressource ausgewählt oder Name nicht gefunden." return $null } |