gpt4 book ai didi

azure - 使用 Get-MgUser 查找用户管理器 UPN

转载 作者:行者123 更新时间:2023-12-03 03:22:57 26 4
gpt4 key购买 nike

我正在尝试将所有 AzureAD cmdlet 转换为 Graph cmdlet。

我们有一个脚本可以获取所有帐户并找到其管理员 UPN。

$allUsers = Get-MgUser -all -select SignInActivity -filter "Usertype eq 'Member'"

foreach ($user in $allUsers){
$mgr = Get-AzureADUserManager -objectId $user.Id

if ($mgr){
$user | add-member -membertype NoteProperty -Name Manager -Value $mgr.userPrincipalName -force
}

else {
$user | add-member -membertype NoteProperty -Name Manager -Value "NULL" -force

到目前为止,我所得到的是:

$allUsers = get-mguser -all -filter "Usertype eq 'Member'"

foreach ($user in $allUsers){

$mgr = get-mguser -userId $user.Id -expandProperty Manager

if ($user.Manager) {
$mgrUPN = $mgr.AdditionalProperties.userPrincipalName
$user | add-member -membertype NoteProperty -Name Manager -Value $managerUPN -Force
}

else {
$user | add-member -membertype NoteProperty -Name Manager -Value "NULL" -Force
}

}

我希望这会返回经理的 UPN,但它没有给出任何结果。

如果我用下面的行“手动”执行它,它就可以工作。 Get-MgUser -UserId XX -ExpandProperty Manager | Select @{Name = 'Manager'; Expression {$_.Manager.AdditionalProperties.userPrincipalName}}

最佳答案

我建议您不要每次都使用Add-Member,最好使用Select-Object重新创建对象。也根本不需要先查询所有用户:

$allUsers = Get-MgUser -All -Filter "Usertype eq 'Member'"

然后在循环中再次查询它们:

$mgr = Get-MgUser -UserId $user.Id -ExpandProperty Manager

所有这些都可以简单地简化为:

Get-MgUser -Filter "UserType eq 'Member'" -ExpandProperty Manager -All |
Select-Object @(
# You can include more properties of interest here
'DisplayName'
'Mail'
'UserPrincipalName'
@{
Name = 'Manager'
Expression = {
if($manager = $_.Manager.AdditionalProperties['userPrincipalName']) {
return $manager
}
'NULL'
}
}
)

如果您想排除任何未设置 manager 属性的用户,不幸的是,过滤必须在 PowerShell 端完成,manager ne null 在过滤到 Users Graph API。

Get-MgUser -Filter "UserType eq 'Member'" -ExpandProperty Manager -All |
Where-Object { $_.Manager.AdditionalProperties.userPrincipalName } |
Select-Object @(
# You can include more properties of interest here
'DisplayName'
'Mail'
'UserPrincipalName'
@{
Name = 'Manager'
Expression = $_.Manager.AdditionalProperties.userPrincipalName
}
)

关于azure - 使用 Get-MgUser 查找用户管理器 UPN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76482998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com