1

我一直在尝试找到一种将用户从变量批量添加到组的方法。
我创建我的变量。
测试我的变量。然后当我使用它们时,系统会以我没想到的方式解释它们。有没有人想出如何最好地自动化这个过程?

PS C:\WINDOWS\system32> $user = get-MsolUser | Select ObjectID
PS C:\WINDOWS\system32> $user

ObjectId
--------
97232511-7ea5-4f26-9372-************
baa75007-e0fc-4265-b17c-************


PS C:\WINDOWS\system32> $group = get-MsolGroup -ObjectId 776da14a-9c10-4dd1-b880-************ | Select ObjectID
PS C:\WINDOWS\system32> $group

ObjectId
--------
776da14a-9c10-4dd1-b880-************


PS C:\WINDOWS\system32> Add-MsolGroupMember -GroupObjectID $group -GroupMemberType User -GroupMemberObjectId $user
Add-MsolGroupMember : Cannot bind parameter 'GroupObjectId'. Cannot convert the "@{ObjectId=776da14a-9c10-4dd1-b880-d0646d49e926}"
value of type "Selected.Microsoft.Online.Administration.Group" to type "System.Guid".
At line:1 char:36
+ Add-MsolGroupMember -GroupObjectID $group -GroupMemberType User -Grou ...
+                                    ~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Add-MsolGroupMember],     ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Online.Administration.Automation.AddGroupMember

PS C:\WINDOWS\system32>
4

2 回答 2

1

在选择组时尝试此操作,然后将其传递给Add-MsolGroupMember cmdlet。

$group = get-MsolGroup -ObjectId 776da14a-9c10-4dd1-b880-************ | Select-Object -ExpandProperty ObjectID
于 2018-08-01T04:36:55.707 回答
0

替代提供的答案。

$group = get-MsolGroup -ObjectId 776da14a-9c10-4dd1-b880-************

$users = get-MsolUser

foreach($user in $users){
    Add-MsolGroupMember -GroupObjectID $group.objectId -GroupMemberType User -GroupMemberObjectId $user.objectId
}

因为您要返回多个用户,所以您需要对他们进行 foreach,因为 cmdlet 只接受-GroupMemberObjectId. 此外,在您当前的设置中,该组已过时,因为您已经知道可以实现相同目标的对象 ID。

$groupObjectId = "776da14a-9c10-4dd1-b880-************"

$users = get-MsolUser

foreach($user in $users){
    Add-MsolGroupMember -GroupObjectID $groupObjectId  -GroupMemberType User -GroupMemberObjectId $user.objectId
} 
于 2018-08-02T21:35:48.640 回答