Site icon Gioxx.org

Graph: confronta una lista di membri con quelli di un gruppo Entra via PowerShell

PowerShell 7: aggiornamento da riga di comando

Proseguo dalla pubblicazione di qualche giorno fa, se te la sei persa, puoi recuperarla qui: Graph: aggiungere membri a un gruppo Entra via PowerShell.

Info

PowerShell 7, moduli di Microsoft Graph già installati, è un passaggio obbligato.
Connettiti a Microsoft Graph e, se non sai come farlo, sbircia uno dei miei precedenti articoli.

Ti ripropongo rapidamente cosa ti serve per avere a portata di codice il gruppo Entra che ti interessa mettere a confronto con la lista di utenti che hai.

Serve l’ID del gruppo

Per poter operare sul gruppo di Entra ti servirà il suo ID. Parti quindi da una semplice ricerca tramite filtro:

$groupID = (Get-MgGroup -Filter "DisplayName eq 'Nome del gruppo'").Id

Questo ti permetterà di ottenere l’ID. Se al posto di 'Nome del gruppo' inserisci il nome esatto del gruppo al quale sei interessato, avrai già salvato il suo ID all’interno della variabile $groupID.

Chi c’è nel gruppo?

Presto detto, lancia questo comando per ottenere l’elenco degli utenti contenuti all’interno del gruppo, mostrando solo lo userPrincipalName di ciascuno, comodamente salvato nella variabile $membriGruppo:

$membriGruppo = Get-MgGroupMember -GroupId $groupID | Select @{label="UserPrincipalName";expression = {$_.AdditionalProperties.userPrincipalName} }

Come effettuo il confronto?

Puoi agire con un unico blocco di codice, oppure puoi scegliere di confrontare gli utenti partendo da un file CSV all’interno del quali li avrai inseriti precedentemente. Semplice in ambo i casi, anche perché il codice relativo al confronto non cambia mai.
Se parti da una lista di indirizzi di posta elettronica (che poi è stato il mio caso d’uso) tutto si riassume così:

"mario.rossi@contoso.com", "gianluca.bianchi@contoso.com", "ajeje.brazorf@contoso.com" | % {
  if ($membriGruppo -contains $_) {
   Write-Output "$($_) fa già parte del gruppo"
  } else {
   Write-Output "$($_) NON fa parte del gruppo"
  }
}

Se vuoi usare un file CSV puoi includere al suo interno la lista degli utenti da confrontare. Ti consiglio di impostare un’intestazione di colonna (nel mio esempio la chiamerò user). A questo punto il blocco di codice sarà il seguente:

Import-CSV C:\temp\tuofile.csv | % {
 if ($membriGruppo -contains $_.user) {
  Write-Output "$($_.user) fa già parte del gruppo"
 } else {
  Write-Output "$($_.user) NON fa parte del gruppo"
 }
}

Dovrai, ovviamente, modificare il percorso del tuo file CSV e l’intestazione che hai scelto, diversamente lo script andrà in errore.

In caso di errori, dubbi, boiate riportate in articolo sai già cosa fare, l’area commenti è a tua totale disposizione :-)

#KeepItSimple

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

Condividi l'articolo con i tuoi contatti:
Exit mobile version