使用PowerShell通过Manager生成所有AD用户的报告

时间:2018-02-13 15:30:49

标签: azure azure-active-directory azure-powershell

请耐心等待。我没有使用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)。

任何想法如何实现这一目标?

1 个答案:

答案 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,这也有效。