Powershell通过ObjectID将设备添加到具有add-azureadgroupmember的组中



出现错误,我不知道为什么。首先,我是一个黑客,所以我知道有更好的方法可以做到这一点,这将是很棒的,但现在我只是想让它发挥作用。大约一个月前,我刚开始使用Powershell。我想做的是将设备分配给基于注册所有者国家/地区财产的组。

当我运行脚本时,通过switch语句,每次迭代都会得到以下错误:

Add-AzureADGroupMember : Error occurred while executing AddGroupMember Code: Request_ResourceNotFound Message: Resource 'fffd622c-f434-4633-bc8f-e9df9790fe7a' does not exist or one of its queried reference-property objects are not present. RequestId: dc2496cd-9d1d-4634-ad40-1c354f758007 DateTimeStamp: Mon, 02 Mar 2020 19:40:40 GMT HttpStatusCode: NotFound HttpStatusDescription: Not Found HttpResponseStatus: Completed At line:1 char:1 + Add-AzureADGroupMember -ObjectId "fffd622c-f434-4633-bc8f-e9df9790fe7 ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Add-AzureADGroupMember], ApiException + FullyQualifiedErrorId : Microsoft.Open.AzureAD16.Client.ApiException,Microsoft.Open.AzureAD16.PowerShell.AddGroupMember

为了排除我的变量或我如何调用它们的任何问题,我尝试以以下方式使用JUST设备对象ID和组对象ID:

添加azureadgroupmember-ObjectID GUID-RefObjId GUID,它仍然失败,并出现相同的错误。

这是我的脚本(我随机删除了一堆国家,使其更短……它们都在实际脚本中(:

#Connect to required service
##
Connect-AzureAd
##
#Create needed lists
##
$Final = New-Object System.Collections.ArrayList
$Devices = Get-AzureADDevice -all 1 | Select-Object -Property ObjectID
##
#Iterates through all Azure AD Devices, grabs the registered user and creates an array ($Final) with the device ID ($Device.ObjectID) and the User Country property ($userCountry.Country)
##
foreach($Device in $Devices){
$userCountry = Get-AzureADDeviceRegisteredOwner -ObjectId $Device.ObjectId | Select-Object Country
$row = New-Object System.Object
Add-Member -InputObject $row -MemberType NoteProperty -Name Country -Value $userCountry.Country
Add-Member -InputObject $row -MemberType NoteProperty -Name DeviceID -Value $Device.ObjectId
$Final.Add($row)
}

##
#Create variables for Country groups
##
$Lebanon = "e44176b7-962c-46b1-b51c-dccc27d7dead"
$Afghanistan = "24b034e8-296c-440f-8c03-2be9a09d5ca3"
$Angola = "9b0603a3-81f2-4f70-bde2-3e560f7287e5"
$Bangladesh = "3d5a6f14-2da8-4caf-80b5-a31948643b2b"
$Benin = "af94ee35-d6f5-4630-9577-f133667d9f22"
$Bolivia = "8f856a68-cc0c-4b2f-8b14-7efde3770433"
$Bosnia = "26e2774e-2fad-4ea6-bae2-9cfdeace3e62"
$Brazil = "176f0e38-8e5d-41d2-807a-5b1a3f2f642b"
$Bulgaria = "426a59ae-2aec-4ef8-8a03-011ed3152e85"
$BurkinaFaso = "eb99f675-1ea3-4529-9362-94d0ea1536aa"
$Burundi = "44b63e5d-aa1f-4196-993f-134aad066708"
$Cambodia = "7ba1c2f5-ad41-45e7-bc16-69aef86a2626"
$Cameroon = "919b7963-6ad4-4b16-82de-37fc005c09a9"
$CentralAfricanRepublic = "6af61961-b38b-4d54-8870-54412cf259c2"
$Chad = "82067861-0d8f-45e1-834a-b7508340c0cc"
$Columbia = "4fae8024-edc0-4faa-951a-ebb26e27bda8"
$CongoDrc = "d47f6b4e-fdeb-4011-a617-bf5b628f5ef3"
$DominicanRepublic = "07ca41a9-5b82-426e-90ff-f14ad3555ea0"
$EastTimor = "480ff525-aa50-450e-964f-84f02f14cb88"
$Ecuador = "410d9a5e-b19a-4ff6-a9bf-05fcf57ae024"
$Egypt = "c35cd46a-b5cb-453c-94a7-d62fb324aa38"
$ElSalvador = "7d677a1b-0759-436a-a180-f4097be589e5"
$Ethiopia = "de5a0a1b-8c5f-4ef0-8a5c-f98ef1f432f0"
$Gambia = "0cbfb155-7b1e-43ad-84a6-8880c49e064e"
$Ghana = "f3cc2422-3a04-42d4-8f65-b4af9102dceb"
$Greece = "1ad78598-e4e9-4009-a754-bce81137b29a"
$Guatemala = "9d6b1e03-f684-410d-af63-906e11f3f7dd"

##
#Set counter variables
##
$i = 0
$p = 0

##
#Switch statement that iterates through all devices in $Final array and uses user country property ($F.Country) to add to country group.
##
foreach($F in $Final){
$RefObj = $null
switch($F.Country){
##
# Add new Countries here
##
"The Gambia"    { $RefObj = $Gambia }
"Timor-Leste"   { $RefObj = $EastTimor }
"Togo"          { $RefObj = $Togo }
"United States" { $RefObj = $UnitedStates }
"USA"           { $RefObj = $UnitedStates }
"VietNam"       { $RefObj = $Vietnam }
"Zambia"        { $RefObj = $Zambia }
"Zimbabwe"      { $RefObj = $Zimbabwe }
"Guinea (Conakry)" { $RefObj = $Guinea }
"Boznia & Herzegovina" { $RefObj = $Bosnia }
"Central African Republic" { $RefObj = $CentralAfricanRepublic }
"Congo - Brazzaville" { $RefObj = $CongoDrc }
"Democratic Republic of Congo" { $RefObj = $CongoDrc }
"Dominican Republic" { $RefObj = $DominicanRepublic }
"Jerusalem-West Bank" { $RefObj = $JWB }
"Micronesia, Federated States of" { $RefObj = $Micronesia }
"Palestinian Authority" { $RefObj = $Palestine }
"" {Write-Host "No Country Found for " $F.DeviceID 
$p++
}
}
if($RefObj){
Add-AzureADGroupMember -ObjectId $F.DeviceID -RefObjectId $RefObj -InformationAction SilentlyContinue -ErrorAction SilentlyContinue
$i++
}
}

##
#Write output
##
Write-Host $i " Devices added successfully."
Write-Host $p " Devices failed or had no Country value. Review output for Device IDs."
```
Is it as simple as you can't add devices to groups using add-azureadgroupmember cmdlet? 
Any help is appreciated. 

有时这是一些愚蠢的事情。。。params在add-azureadgroupmember语句中是向后的。

最新更新