internal/functions/Split-ScopeId.ps1
function Split-ScopeId { [CmdletBinding()] param ( [string] $scopeId, [switch] $asSplat, [string] $parameterNameForManagementGroup = "ManagementGroupName", [string] $parameterNameForSubscription = "SubscriptionId" ) $argName = "" $argValue = $null if ($scopeId.StartsWith("/providers/Microsoft.Management/managementGroups/")) { $argName = $parameterNameForManagementGroup $argValue = $scopeId -replace "/providers/Microsoft.Management/managementGroups/" } elseif ($scopeId.StartsWith("/subscriptions/")) { $argName = $parameterNameForSubscription $argValue = $scopeId -replace "/subscriptions/" } else { Write-Error "'$scopeId' is not a valid scope." -ErrorAction Stop } if ($asSplat) { return @{ $argName = $argValue } } else { return $argName, $argValue } } |