首页 > 解决方案 > 尝试使用 Powershell 从全局地址列表中删除所有未经许可的用户

问题描述

我正在尝试从全局地址列表中删除所有未经许可的用户。

到目前为止,我发现...

$mboxes = Get-MsolUser -All -UnlicensedUsersOnly

... 会让我获得所有未经许可的用户,并将它们放在一个名为 的变量中$mboxes,但是这里似乎没有 Identity。

当我尝试运行类似的东西时:

foreach ($mbox in $mboxes) { Set-Mailbox -HiddenFromAddressListsEnabled $true -Identity $mbox }

我得到以下错误。

Cannot process argument transformation on parameter 'Identity'.

我尝试将该数据导出到 CSV 并创建一个“身份”标头,但是在将数据重新导入 PowerShell 后,我遇到了同样的问题。

标签: powershelloffice365

解决方案


您的解决方案非常接近。从Set-Mail文档:

-Identity参数指定要修改的邮箱。您可以使用任何唯一标识邮箱的值。

用于$mbox.UserPrincipalName传递用户主体名称。

$mboxes = Get-MsolUser -All -UnlicensedUsersOnly
foreach ($mbox in $mboxes) { Set-Mailbox -HiddenFromAddressListsEnabled $true -Identity $mbox.UserPrincipalName }

推荐阅读