请耐心等待。我没有使用AAD / PS的经验。
我正在试图生成一个用户及其经理列表。
我所做的是这样的事情:
$UserId = (Get-AzureADUser -All $true).ObjectId
$bla = foreach ($User in $UserId)
{
write-output $User
Get-AzureADUserManager -ObjectId $User
}
$bla | Out-File "C:\Temp\Test.txt"
我使用用户ObjectId填充$ UserId,然后为该用户用户搜索管理器Get-AzureADUserManager。
如何更改它以生成包含以下数据的列表:
UsersObjectId UserUPN UserType ManagersObjectId ManagerUPN ManagerUserType
我还希望它包含所有没有任何管理器集的UserObjectIds(包括null)。
任何想法如何实现这一目标?
答案 0 :(得分:4)
这应该做你想要的:
$output = @()
$users = Get-AzureADUser -All $true
foreach ($user in $users) {
$manager = Get-AzureADUserManager -ObjectId $user.ObjectId
$data = New-Object -TypeName psobject
$data | Add-Member -MemberType NoteProperty -Name UsersObjectId -Value $user.ObjectId
$data | Add-Member -MemberType NoteProperty -Name UserUPN -Value $user.UserPrincipalName
$data | Add-Member -MemberType NoteProperty -Name UserType -Value $user.UserType
$data | Add-Member -MemberType NoteProperty -Name ManagersObjectId -Value $manager.ObjectId
$data | Add-Member -MemberType NoteProperty -Name ManagerUPN -Value $manager.UserPrincipalName
$data | Add-Member -MemberType NoteProperty -Name ManagerUserType -Value $manager.UserType
$output += $data
}
$output | Export-Csv -Path output.csv -NoTypeInformation
它将创建一个CSV文件,其列数等于您要查找的数据,其中每行代表原始查询中的用户。
如果Get-AzureADUserManager
返回null,这也有效。