Добавление устройств Powershell в группы с помощью add-azureadgroupmember через ObjectID - PullRequest
0 голосов
/ 02 марта 2020

Получаю ошибку, и я понятия не имею, почему. В предисловии я хакер, поэтому я знаю, что есть лучший способ сделать это, что было бы здорово, но сейчас я просто пытаюсь заставить его работать. Я только начал с Powershell около месяца go. То, что я пытаюсь сделать, это назначить устройства группам на основе собственности страны зарегистрированных владельцев.

Когда я запускаю скрипт, я получаю следующую ошибку для каждой итерации с помощью оператора 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

Чтобы исключить любые проблемы с моими переменными, или как Я звоню им, я попытался использовать ПРОСТО ИД объекта устройства и идентификатор объекта группы следующим образом:

add-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. 

1 Ответ

0 голосов
/ 03 марта 2020

Иногда это «глупые вещи ... params» были в обратном направлении в надстройке члена группы add-azuread.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...