BrownField/Auto-assessment/scripts/Test-TenantElibility-For-PIM.ps1 (48 lines of code) (raw):
. .\Get-AVS-SDDC-Details.ps1
function Test-TenantElibility-For-PIM {
param (
[string]$tenant
)
try{
$token = (Get-AzAccessToken -TenantId $tenant -ResourceUrl "https://graph.microsoft.com" -AsSecureString).Token
Connect-MgGraph -AccessToken $token -Environment Global
$response = Get-MgSubscribedSku -All | Format-List
if ($null -eq $response) {
Write-Error "Failed to get tenant licenses."
return
}
}
catch {
Write-Error "Tenant eligibility for PIM Test failed: $_"
return
}
}
function Check-TenantLicenses {
param (
[string]$AccessToken
)
$headers = @{
Authorization = "Bearer $AccessToken"
}
# Make the API request
$response = Invoke-RestMethod -Method Get -Uri "https://graph.microsoft.com/v1.0/subscribedSkus" -Headers $headers
# Output the raw response for debugging purposes
Write-Output "Raw Response: $($response | ConvertTo-Json -Depth 10)"
if ($null -eq $response) {
Write-Output "No response received."
return $false
}
if ($response.value.Count -eq 0) {
Write-Output "No subscribed SKUs found."
return $false
}
$requiredLicenses = @("AAD_PREMIUM_P2", "ENTERPRISE_MOBILITY_SECURITY_E5")
$hasRequiredLicenses = $false
foreach ($sku in $response.value) {
if ($sku.skuPartNumber -in $requiredLicenses) {
$hasRequiredLicenses = $true
Write-Output "Found required license: $($sku.skuPartNumber)"
}
}
return $hasRequiredLicenses
}