我正在尝试将所有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}}
1条答案
按热度按时间2vuwiymt1#
我建议你不要每次都使用
Add-Member
,最好用Select-Object
重新创建对象。也根本不需要首先查询所有用户:然后在循环中再次查询它们:
所有这些都可以简单地归结为:
如果你想排除任何没有设置
manager
属性的用户,不幸的是过滤必须在PowerShell端完成,manager ne null
在用户图API的过滤器中无效。