Tranite PowerShell è possibile aggiungere utenti ad un gruppo Azure AD.

Per prima cosa va installato il modulo di gestione di AzureAD Azure Active Directory V2 General Availability Module tramite il comando:

PowerShell

# privilegi amministrativi
Install-Module -Name AzureAD
Se ottieni uno di questi errori:
Archivio non attendibile
Stai installando i moduli da un archivio non attendibile. Se ritieni attendibile questo archivio, modifica il relativo
valore InstallationPolicy eseguendo il cmdlet Set-PSRepository. Vuoi installare i moduli da 'PSGallery'?
[S] Sì [T] Sì a tutti [N] No [U] No a tutti [O] Sospendi [?] Guida (il valore predefinito è "N"):
AVVISO: La versione '2.0.0.131' del modulo 'AzureAD' è già installata in 'C:\Program
Files\WindowsPowerShell\Modules\AzureAD\2.0.0.131'. Per installare la versione '2.0.2.4', esegui Install-Module e
aggiungi il parametro -Force. Questo comando installerà la versione '2.0.2.4' in modalità affiancata con la versione
'2.0.0.131'.
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet
provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or
'C:\Users\aballabio\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install
and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
rispondi si Y alla domanda oppure esegui il comando con il parametro -Force.
Mentre se ottieni questo errore:
PackageManagement\Install-Package : No match was found for the specified search criteria and module name 'AzureAD'.
Try Get-PSRepository to see all available registered module repositories.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1772 char:21
+ ... $null = PackageManagement\Install-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Ex
ception
+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage
prova ad eseguire, sempre con elevati privilegi, il comando:

PowerShell

Get-PSRepository
oppure
Register-PSRepository -Default
Se passi attraverso un proxy potresti avere dei problemi, prova a impostare le credenziali:

PowerShell

[System.Net.WebRequest]::DefaultWebProxy.Credentials =  [System.Net.CredentialCache]::DefaultCredentials
oppure vedi Using Azure PowerShell with Web Proxy and Fiddler.

Finita l'installazione è possibile importare il modulo:

PowerShell

import-module azuread
per verificare se il modulo esiste:

PowerShell

get-module azuread
da un risultato simile a questo:

Text

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     2.0.0.131  azuread                             {Add-AzureADApplicationOwner, Add-AzureADDeviceRegisteredO...
Il passo successivo è conettersi ad Azure AD:

PowerShell

Connect-AzureAD
questo comando visualizza la seguente schermata di login:
Azure login
Azure login
e stampa un risultato simile a questo:

Text

Account                                 Environment TenantId                   TenantDomain
-------                                 ----------- --------                   ------------
admin@xxxx.onmicrosoft.com AzureCloud   ccb44192-b5e4-4b178-81cf-53178150da5d  xxxx.onmicrosoft.com
con il comando Get-AzureAdGroup posso leggere un gruppo:

PowerShell

get-azureadgroup
get-azureadgroup  -SearchString "APP"
get-azureadgroup -ObjectId e19bae11-4cc0-450c-bc27-6dae8f3da61b
mentre per vedere i membri uso il comando Get-AzureADGroupMember:

PowerShell

$g = get-azureadgroup -ObjectId e19bae11-4cc0-450c-bc27-6dae8f3da61b
$g | Get-AzureADGroupMember
ritorna:

Text

ObjectId                              DisplayName   UserPrincipalName
--------                              -----------   -----------------
e711ea96-4de3-45a3-875f-777e6841702f  Admin         admin@xxxx.onmicrosoft.com
030d866d-ae3d-4251-9a12-23b590bf94a4  User1         user1@xxxx.onmicrosoft.com
226c562a-9414-4b9e-99ab-708c1066104d  User esterno  mail@dominio.it#EXT#@xxx.onmicrosoft.com
a questo punto per aggiungere un utente ad un gruppo si usa il comando Add-AzureADGroupMember':

PowerShell

Add-AzureADGroupMember -ObjectId <idDelGruppo> -RefObjectId <idDellOggettoDaAggiungere>
ad esempio:

PowerShell

Add-AzureADGroupMember -ObjectId 31f0ff6c-d48c-4f8a-a2e1-abca7fd399df -RefObjectId 72c14bbd-2592-40a2-935c-011f3cfeeee

Quello che segue è uno script che premette di aggiungere una serie di utenti ($userIds) ad un gruppo specifico ($groupId) visualizzando tutte le operazioni eseguite.
Sia il gruppo che gli utenti vengono referenziati tramite il loro objectId:

PowerShell

# gruppo a cui aggiungere i membri
$groupId="011D5E7A-AD04-4084-9492-7A0F2D9DF220"

# membri da aggiungere al gruppo
$userIds = @(
    "A0A4F427-9583-42A6-8FD0-0F146E63F818",
	"8DE5B1B7-D289-4E26-A076-2B849BB5C93A",
	"21BE6615-2226-4FE9-A778-83F53CFEA513"
);	#nota: rimuovere la virgola finale dall'ultimo elemento

# assicurarsi di avere installato il modulo azuread, 
# richiede privilegi amministrativi per l'installazione
# install-module azuread

# importo il modulo
import-module azuread

Write-Output "Connecting..."
Connect-AzureAD

Write-Output "Gruppo:"
get-azureadgroup -ObjectId $groupId


$usersBefore = Get-AzureADGroupMember -ObjectId $groupId 
$usersBefore | select mail, userprincipalname
Write-Output "Utenti attuali nr. $($usersBefore.count)"

Write-Output "Adding..."
$userIds | % {
    $id= $_
    Write-Output "UserId: $id"
    $u = Get-AzureADUser -ObjectId $id
    Write-Output "UPN: $($u.UserPrincipalName)"

    # verifico se l'utente esiste già   
    $found = $usersBefore | ?{$_.UserPrincipalName -eq $u.UserPrincipalName}

    if($found -eq $null){
        Write-Output "  Adding user ..."
        Add-AzureADGroupMember -ObjectId $groupId -RefObjectId $id
        Write-Output "  User ADDED"
    }else{
        Write-Output "  User EXISTS"
    }

}
Write-Output "Added"

$usersAfter = Get-AzureADGroupMember -ObjectId $groupId 
$usersAfter | select mail, userprincipalname
Write-Output "Utenti dopo aggiunta nr. $($usersAfter.count)"


Vedi anche: Azure Active Directory version 2 cmdlets for group management.
Tags:
Active Directory20 Azure7 Office 36510 PowerShell200
Potrebbe interessarti anche: