我正在编写一些执行 PowerShell 脚本的 C# 程序。
我有以下行
Get-Mailbox -ResultSize:unlimited |
Get-MailboxPermission |
Where {($_.IsInherited -eq $false) -and !($_.user -like "S-1*") -and !($_.user -like "NT A*") } |
select identity,user,@{n="objectid";e={(get-recipient -identity $_.user).ExternalDirectoryObjectId}}
基本上它会找到所有邮箱权限并检索相应ExternalDirectoryObjectId
的(与 Azure ObjectID 相同)
这里的问题是返回的结果与不同的机器不同。我将获得所有身份、用户值,但对于上面以粗体显示的表达式值,只会在执行的中途开始显示。
例如在计算机 x 上
Identity|User|objectid
user1 |userA|
user2 |userA|
user2 |userB|
... |... |
user10|userC|
user11|userC|<objectID1>
user11|userD|<objectID2>
我注意到在快速计算机上 objectID 开始出现较晚,在较慢计算机上它开始较早出现,但是执行时间不同。
如何修改它以便为所有条目检索 objectGuid?为什么流水线不等到objectID
正确检索计算的属性?
如果我编写一个简短的 PowerShell 脚本并为每个 mbox 权限使用 for 循环并一一检索它们,则所有这些 objectGuid 都是可检索的。但它很慢。
感谢您的帮助,请给我任何建议!