Ниже мне удалось найти сценарий AzureAD, который поможет мне экспортировать пользователей Azure в файл CSV с помощью Powershell. Я надеялся, что кто-нибудь поможет мне настроить его, чтобы он также фильтровался по стране или региону в профиле Azure = США или Канада. Я также хотел бы заменить объект License на City, если это возможно:
param(
[string] $path = "C:\Temp\ADUsers-$(Get-Date -format "MM-dd-yyyy").csv"
)
& {
foreach($azuser in Get-AzureADUser -All $true -Filter 'accountEnabled eq true') {
[pscustomobject]@{
"Employee ID" = $azuser.ExtensionProperty["employeeId"]
"First Name" = $azuser.surname
"Last Name" = $azuser.givenName
"Work Email" = $azuser.UserPrincipalName
"Job Title" = $azuser.JobTitle
"Department" = $azuser.CompanyName
"Manager Email" = (Get-AzureADUserManager -ObjectId $azuser.ObjectId).UserPrincipalName
"License" = $azuser.ExtensionProperty["extension_a92a_msDS_cloudExtensionAttribute1"]
}
}
} | Export-CSV -Path $path -NoTypeInformation
Спасибо!
В настоящее время я использую сценарий как есть, но он привлекает множество дополнительных пользователей из регионов, подробности о которых мне не нужны.





Для фильтрации идентификатора Azure-Entra и профиля User-ID на основе страны/региона я использовал приведенный ниже модифицированный сценарий:
param(
[string] $path = "C:\Users\XXXX\YYYY\ZZZZ\CanadaUSAUser-$(Get-Date -format 'MM-dd-yyyy').csv"
)
Connect-AzureAD
$userData = @()
foreach ($azuser in Get-AzureADUser -All $true -Filter "accountEnabled eq true" | Where-Object { $_.Country -eq "United States" -or $_.Country -eq "Canada" }) {
$manager = Get-AzureADUserManager -ObjectId $azuser.ObjectId -ErrorAction SilentlyContinue
$managerEmail = if ($manager) { $manager.UserPrincipalName } else { "" }
$userData += [pscustomobject]@{
"Employee ID" = $azuser.ExtensionProperty["employeeId"]
"First Name" = $azuser.surname
"Last Name" = $azuser.givenName
"Work Email" = $azuser.UserPrincipalName
"Job Title" = $azuser.JobTitle
"Department" = $azuser.CompanyName
"Manager Email" = $managerEmail
"City" = $azuser.City
"Country" = $azuser.Country
}
}
$userData | Export-Csv -Path $path -NoTypeInformation
Выход:

Я также попытался просто заменить оператор «accountEnabled eq true» на «CountryOrRegion eq US» вместе с другими вариантами с скобками или без них eq vs. -eq , и я просто столкнулся с синтаксическими ошибками.