Il cmdlet per rimuovere un membro da un gruppo Active Directory è Remove-ADGroupMember.
Sintassi
Remove-ADGroupMember
[-WhatIf]
[-Confirm]
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
[-Identity] <ADGroup>
[-Members] <ADPrincipal[]>
[-Partition <String>]
[-PassThru]
[-Server <String>]
[-DisablePermissiveModify]
[<CommonParameters>]
Parametri
-AuthType
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
- Negotiate oppure 0 (default)
- Basic oppure 1
-Confirm
Se specificato, tale parametro mostra la richiesta di conferma prima di eseguire il cmdlet.
-Credential
Specifica le credenziali dell'account utente con cui eseguire il comando. Se omesso viene considerato l'utente corrente che sta eseguendo il comando. Al parametro può essere passato il nome dell'account, come ad es. "utente01" o "Dominio\utente01" oppure può essere passato un'oggetto PSCredential generato dal cmdlet Get-Credential. Se viene specificato un'account utente verrà richiesto di inserire la password all'esecuzione del comando.
-DisablePermissiveModify
Gli aggiornamenti dei membri del gruppo utilizzano una modifica permissiva per impostazione predefinita e il messaggio di errore quando si tenta di rimuovere un account non presente viene soppresso. Specificando tale parametro il messaggio di errore verrà visualizzato.
-Identity
Tale parametro specifica l'oggetto gruppo Active Directory su cui si desidera intervenire. Al parametro può essere passato un qualsiasi valore che identifica il gruppo in maniera univoca come:
Distinguished name
GUID (objectGUID)
Security identifier (objectSid)
Security Account Manager account name (sAMAccountName)
-Members
Permette di specificare un array di utenti, gruppi e computer separati da virgola da rimuovere dal gruppo. Il parametro accetta come valori:
Distinguished name
GUID (objectGUID)
Security identifier (objectSid)
SAM account name (sAMAccountName)
-Partition
A tale parametro va passato il Distinguished Name (DN) di una partizione di Active Directory. Il cmdlet utilizzerà tale partizione per ricercare l'oggetto specificato dal parametro Identity.
-PassThru
Restituisce un oggetto che rappresenta l'item su cui si sta lavorando. Per impostazione predefinita, il cmdlet non genera alcun output.
-Server
Permette di specificare l'istanza di Active Directory Domain Services a cui connettersi per eseguire l'operazione.
-WhatIf
Mostra cosa accadrebbe se venisse eseguito il cmdlet. Il cmdlet non viene eseguito.
Rimuovere un membro da un gruppo Active Directory
Per rimuovere un membro da un gruppo Active Directory il comando sarà analogo al seguente
Remove-ADGroupMember -Identity Gruppo1 -Members Giovanni.Lubrano
dove con il parametro -Indentity si va ad indicare il gruppo sul quale agire e con -Members indichiamo l'account o più account separati da virgola da rimuovere.
FIG 1 - PowerShell, Remove-AdGroupMember |
E' possibile creare un file CSV contenente l'elenco di tutti gli account da rimuovere dal gruppo Active Directory come quello in FIG 2.
FIG 2 - File CSV con l'elenco degli account |
Il comando da eseguire per rimuovere dal gruppo specificato (Gruppo1) l'elenco degli account presenti nel file CSV (FileUtenti.csv) sarà simile a
Import-CSV C:\FileUtenti.csv -Header utenti | ForEach-Object {Remove-AdGroupMember -Identity "Gruppo1" -members $_.utenti}
Per rimuovere un account da tutti i gruppi Active Directory si può utilizzare il comando
Get-ADUser -Identity Giovanni.Lubrano -Properties MemberOf | ForEach-Object {$_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}