从MSOL组中删除用户

时间:2018-07-24 20:11:03

标签: powershell

我正在尝试从公司内的MSOL组中删除所有禁用的用户。大约有50个用户,我已经从共享邮箱的所有DL中删除了它们,但是我仍然需要将它们从MSOL组中删除。我写的东西很简单。

$import = Import-Csv "C:\Users\Person\Desktop\DisabledMSOL.csv"

foreach($user in $import) {

$DisabledUserParams = @{

PersonID = $user.GroupID
ObjectId = $user.ObjectId
}

Remove-MsolGroupMember -GroupObjectId $DisabledUserParams.ObjectId -GroupMemberType User -GroupmemberObjectId $DisabledUserParams.PersonID}

问题是当我运行此命令时,出现此错误:

Remove-MsolGroupMember : Cannot bind parameter 'GroupMemberObjectId'. Cannot convert value "" to type "System.Guid"
Error: "Unrecognized Guid format."
At line:11 char:111
+ ... oupMemberType User -GroupmemberObjectId $DisabledUserParams.PersonID}
+                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Remove-MsolGroupMember], 
ParameterBindingException
+ FullyQualifiedErrorId :CannotConvertArgumentNoMessage,Microsoft.Online.Administration.Automation.RemoveGroupMember

请让我知道您的想法。

*此外,您如何在此站点上绘制黄色轮廓?我从未真正发现如何做。

谢谢。

2 个答案:

答案 0 :(得分:0)

如果您在csv文件中有大约50条记录,并且在尝试运行脚本时收到大约50条错误,我将再次检查这些列/属性名称

如果您尝试访问一个不存在的属性,Powershell将静默继续。

enter image description here

如果获得部分成功(某些记录可以工作而另一些则不能),那么我将检查csv中的值以查找失败。您可能认为自己有ObjectId,但可能没有。

最后,检查您的分隔符。如果csv文件是制表符或管道分隔符,则需要在Import-Csv调用中指定该分隔符。

祝你好运!

答案 1 :(得分:0)

之所以不起作用,是因为存在一个关于Exchange Online中的cmndlet及其相关语法的误解的问题。我没有Prem服务器,我们在线进行所有Exchange。尽管它正确地从CSV捕获了GUID,但这是错误的语法:

Remove-MsolGroupMember -GroupObjectId $DisabledUserParams.ObjectId -GroupMemberType User -GroupmemberObjectId $DisabledUserParams.PersonID}

正确的语法是:

Remove-RecipientPermission $DisabledUserParams.ObjectId -Trustee $DisabledUserParams.PersonID -AccessRights SendAs

由于某种原因,MSOL组成为了一个邮件组,只具有发送权限。此外,它只会删除/添加使用该语法的用户

Remove-RecipientPermission 

不过,谢谢您的帮助。我感谢从本网站获得的所有建议。