Aggiungere utenti ad un gruppo AzureAD
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:
Se ottieni uno di questi errori:
Mentre se ottieni questo errore:
Se passi attraverso un proxy potresti avere dei problemi, prova a impostare le credenziali:
oppure vedi Using Azure PowerShell with Web Proxy and Fiddler.
Finita l'installazione è possibile importare il modulo:
per verificare se il modulo esiste:
da un risultato simile a questo:
Il passo successivo è conettersi ad Azure AD:
questo comando visualizza la seguente schermata di login:e stampa un risultato simile a questo:
con il comando Get-AzureAdGroup posso leggere un gruppo:
mentre per vedere i membri uso il comando Get-AzureADGroupMember:
ritorna:
a questo punto per aggiungere un utente ad un gruppo si usa il comando Add-AzureADGroupMember':
ad esempio:
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:
Vedi anche: Azure Active Directory version 2 cmdlets for group management.
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
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"):
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'.
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.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
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: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
PowerShell
Get-PSRepository
oppure
Register-PSRepository -Default
PowerShell
[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
Finita l'installazione è possibile importare il modulo:
PowerShell
import-module azuread
PowerShell
get-module azuread
Text
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 2.0.0.131 azuread {Add-AzureADApplicationOwner, Add-AzureADDeviceRegisteredO...
PowerShell
Connect-AzureAD
Text
Account Environment TenantId TenantDomain
------- ----------- -------- ------------
admin@xxxx.onmicrosoft.com AzureCloud ccb44192-b5e4-4b178-81cf-53178150da5d xxxx.onmicrosoft.com
PowerShell
get-azureadgroup
get-azureadgroup -SearchString "APP"
get-azureadgroup -ObjectId e19bae11-4cc0-450c-bc27-6dae8f3da61b
PowerShell
$g = get-azureadgroup -ObjectId e19bae11-4cc0-450c-bc27-6dae8f3da61b
$g | Get-AzureADGroupMember
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
PowerShell
Add-AzureADGroupMember -ObjectId <idDelGruppo> -RefObjectId <idDellOggettoDaAggiungere>
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.