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

Using PowerShell to generate report of all AD users with Manager

请多多包涵。我没有使用 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

我还希望它包括所有未设置任何管理器的 UserObjectId(包括 null)。

有什么实现方法吗?

这应该可以满足您的要求:

$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 returns null.