Visualizzazione post con etichetta Active Directory. Mostra tutti i post
Visualizzazione post con etichetta Active Directory. Mostra tutti i post

martedì 27 settembre 2022

PowerShell: Modificare la data di scadenza di una password in Active Directory

Un metodo per prolungare  il periodo di tempo in cui un utente può mantenere la propria password consiste nell'impostare l'attributo pwdLastSet sulla data corrente. 
Di seguito i comandi che permettono di prolungare la scadenza della password su un account specificato: 

 $Username = (Read-Host -Prompt "Username")   
 Set-ADUser -Identity $Username -Replace @{pwdLastSet=-1}  


Attributo pwdLastSet in Active Directory
FIG 1 - Attributo pwdLastSet in Active Directory





domenica 25 settembre 2022

PowerShell: Nessuna scadenza password per un account in Active Directory

Per fare in modo che la password di un account in Active Directory non abbia scadenza, è possibile utilizzare il cmdlet Set-ADUser insieme al parametro -PasswordNeverExpires.
Il comando sarà simile a
Set-ADUser -Identity <utenza> -PasswordNeverExpires $true
dove al posto di <utenza> va specificato l'account in AD su cui si intende agire.

Se il comando va integrato all'interno di uno script, è possibile fare in modo che ad ogni esecuzione venga richiesto di specificare l'account in AD a cui disabilitare la scadenza della password. Ad esempio è possibile creare uno script con le seguenti istruzioni
 $User = (Read-Host -Prompt "Username")  
 Set-ADUser -Identity $User -PasswordNeverExpires $true  
   
Andando a verificare in Utenti e computer di Active Directory, dopo aver eseguito il comando, vedremo che per l'account specificato è stata attivata la voce Nessuna scadenza password.
Active Directory, Nessuna scadenza password
FIG 1 - Active Directory, Nessuna scadenza password






domenica 11 settembre 2022

PowerShell: Modificare la password di un account di Active Directory

Il cmdlet Set-ADAccountPassword consente di impostare la password di un account utente in Active Directory, di un computer o di un account di servizio.

Sintassi

Set-ADAccountPassword
   [-WhatIf]
   [-Confirm]
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADAccount>
   [-NewPassword <SecureString>]
   [-OldPassword <SecureString>]
   [-Partition <String>]
   [-PassThru]
   [-Reset]
   [-Server <String>]
   [<CommonParameters>]
   
   

Parametri

-AuthType
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
Per il metodo di autenticazione Basic è necessaria una connessione Secure Sockets Layer (SSL).  

-Confirm
Chiede conferma prima di eseguire il cmdlet.

-Credential
Specifica le credenziali dell'account utente da utilizzare per eseguire questa attività. Le credenziali predefinite sono quelle dell'utente attualmente connesso, a meno che il cmdlet non venga eseguito da un'unità provider di Active Directory module for Windows PowerShell. Se il cmdlet viene eseguito da tale unità provider, l'account associato all'unità è quello predefinito.

Per specificare questo parametro, è possibile digitare un nome utente, ad esempio User1 o Domain01\User01, oppure specificare un oggetto PSCredential. Se si specifica un nome utente per questo parametro, il cmdlet richiederà una password.

È anche possibile creare un oggetto PSCredential utilizzando uno script o il cmdlet Get-Credential. È quindi possibile impostare il parametro Credential sull'oggetto PSCredential.

Se le credenziali che agiscono non hanno l'autorizzazione a livello di directory per eseguire l'attività, il modulo Active Directory per Windows PowerShell restituirà un errore di terminazione.

-Identity
Specifica un oggetto di dominio Active Directory fornendo uno dei seguenti valori 
  • Distinguished name
  • GUID (objectGUID)
  • Security identifier (objectSid)
  • Security Account Manager account name (SAMAccountName

-NewPassword
Specifica il valore di una nuova password. Questo valore viene memorizzato come stringa crittografata.

-OldPassword
Specifica il valore della vecchia password. Questo valore viene elaborato come stringa crittografata.

-Partition
Specifica il distinguished name di una partizione di Active Directory. Il distinguished name deve essere uno dei contesti di denominazione del server di directory corrente. Il cmdlet cerca in questa partizione l'oggetto definito dal parametro Identity.

In molti casi, se non viene specificato alcun valore, viene utilizzato un valore predefinito per il parametro Partition. Le regole per determinare il valore predefinito sono riportate di seguito. Si noti che le regole elencate per prime vengono valutate per prime e che, una volta determinato un valore predefinito, non vengono valutate altre regole.

Negli ambienti Active Directory Domain Services, un valore predefinito per Partition viene impostato nei seguenti casi:
  • Se il parametro Identity è impostato su un distinguished name, il valore predefinito di Partition viene generato automaticamente da questo distinguished name.
  • Se si eseguono i cmdlet da un'unità del provider di Active Directory, il valore predefinito di Partition viene generato automaticamente dal percorso corrente dell'unità.
  • Se non si applica nessuno dei casi precedenti, il valore predefinito di Partition viene impostato sulla partizione o sul contesto di denominazione predefinito del dominio di destinazione.

Negli ambienti AD LDS, il valore predefinito di Partition viene impostato nei seguenti casi:
  • Se il parametro Identity è impostato su un distinguished name, il valore predefinito di viene generato automaticamente da questo distinguished name.
  • Se si eseguono i cmdlet da un'unità del provider di Active Directory, il valore predefinito di Partition viene generato automaticamente dal percorso corrente dell'unità.
  • Se l'istanza AD LDS di destinazione ha un contesto di denominazione predefinito, il valore predefinito di Partition è impostato sul contesto di denominazione predefinito. Per specificare un contesto di denominazione predefinito per un ambiente AD LDS, impostare la proprietà msDS-defaultNamingContext dell'oggetto agente del servizio di directory di Active Directory (nTDSDSA) per l'istanza AD LDS.
  • Se non si applica nessuno dei casi precedenti, il parametro Partition assumerà alcun valore predefinito.
-PassThru
Restituisce un oggetto che rappresenta l'elemento con cui si sta lavorando. Per impostazione predefinita, non viene generato alcun output.

-Reset
Specifica la reimpostazione della password di un account. Quando si utilizza questo parametro, è necessario impostare il parametro NewPassword. Non è necessario specificare il parametro OldPassword.

-Server
Specifica l'istanza di Active Directory Domain Services a cui connettersi:
  • Fully qualified domain name
  • NetBIOS name
  • Fully qualified directory server name
  • NetBIOS name
  • Fully qualified directory server name e la porta
-WhatIf
Mostra cosa accadrebbe se il cmdlet venisse eseguito. Il cmdlet non viene eseguito.

Esempi

Esempio 1
Set-ADAccountPassword -Identity Giovanni.Lubrano
Viene richiesta la vecchia password e la nuova password da impostare per l'account specificato.
Set-ADAccountPassword
FIG 1 - Set-ADAccountPassword

Esempio 2
Set-ADAccountPassword -Identity "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "p@assw0rd1234" -Force)
Questo comando imposta la password dell'account utente con DistinguishedName "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"

Esempio 3
Set-ADAccountPassword -Identity Giovanni.Lubrano -OldPassword (ConvertTo-SecureString -AsPlainText "p@assw0rd1234" -Force) -NewPassword (ConvertTo-SecureString -AsPlainText "qwerty@01234" -Force)
Questo comando imposta la password dell'account utente con SamAccountName GLubrano su qwerty@01234. L'uso di -NewPassword con un valore, senza fornire il valore del parametro -OldPassword, reimposta ugualmente la password.

Esempio 4
Set-ADAccountPassword -Identity Giovanni.Lubrano -NewPassword (ConvertTo-SecureString -AsPlainText "qwerty@01234" -Force) -Reset
Analogo all'esempio 3 con la differenza che in questo caso viene specificata solo la nuova password e viene utilizzato il parametro -Reset.
Set-ADAccountPassword -NewPassword
FIG 2 - Set-ADAccountPassword -NewPassword

Esempio 5
$User = (Read-Host -Prompt "Username")
$NewPassword = (Read-Host -Prompt "Nuova password" -AsSecureString
Set-ADAccountPassword -Identity $User -NewPassword $NewPassword -Reset
Viene richiesto di specificare l'account utente su cui agire e la nuova password da assegnare all'account.




lunedì 25 aprile 2022

PowerShell: Gestire la foto dell'account utente in Active Directory utilizzando l'attributo ThumbnailPhoto

Gli account utente di Active Directory hanno un attributo speciale (thumbnailPhoto) in cui una foto può essere memorizzata come dati binari. Outlook, OWA, Skype for Business, SharePoint e altre applicazioni possono utilizzare la foto memorizzata in questo attributo AD come avatar dell'utente nella loro interfaccia.

Per assegnare una foto ad un account utente in Active Directory usando PowerShell è necessario, per prima cosa, convertire il file immagine in un array di byte, e poi usare il cmdlet Set-ADUser per impostarlo come valore dell'attributo thumbnailPhoto. Le operazioni possono essere eseguita tramite il seguente comando

Set-ADUser Giovanni.Lubrano -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\Temp\foto.jpg" -Encoding byte))}
sostituendo Giovanni.Lubrano e c:\temp\foto.jpg rispettivamente con l'account utente su cui si intende operare e il nome del file, comprensivo di percorso, del file jpg contenente la foto.
Assegnare una foto all'account utente in AD
FIG 1 - Assegnare una foto all'account utente in AD
Visualizzando le proprietà dell'account utente da Utenti e computer di Active Directory possiamo verificare, dalla scheda Editor attributi, che all'attributo thumbnailPhoto è stato assegnato un valore.
Proprietà account utente, Attributo thumbnailPhoto
FIG 2 - Proprietà account utente, Attributo thumbnailPhoto

Per eseguire l'operazione inversa, cioè salvare la foto di un account utente presente in Active Directory all'interno di un file JPG, possiamo eseguire un comando simile a
(Get-ADUser Giovanni.Lubrano -Properties thumbnailPhoto).thumbnailPhoto | Set-Content "C:\Temp\foto.jpg" -Encoding byte
Esportare la foto contenuta nell'attributo thumbnailPhoto in un file jpg
FIG 3 - Esportare la foto contenuta nell'attributo thumbnailPhoto in un file jpg


Per visualizzare tutti gli account utente dotati di foto il comando da eseguire è
Get-ADUser -Filter * -properties thumbnailPhoto | ? {$_.thumbnailPhoto} | Select Name
mentre per visualizzare gli account non dotati di foto
Get-ADUser -Filter * -properties thumbnailPhoto | ? {(-not($_.thumbnailPhoto))} | Select Name
Visualizzare gli account utente dotati di foto
FIG 4 - Visualizzare gli account utente dotati di foto


Per rimuovere la foto di un account utente resettando l'attributo thumbnailPhoto
Set-ADUser Giovanni.Lubrano  -Clear thumbnailPhoto






giovedì 31 marzo 2022

PowerShell: Elencare i gruppi vuoti presenti in Active Directory

Tenere sotto controllo i gruppi presenti in Active Directory è uno dei compiti dell'amministratore di sistema. In grandi infrastrutture può capitare di ritrovarsi con gruppi che erano stati creati per un'attività non più in essere e che sono rimasti senza membri. Per visualizzare i gruppi vuoti presenti in AD è possibile utilizzare il seguente comando PowerShell

Get-ADGroup -filter * | where {-Not ($_ | Get-ADGroupMember)} | Select Name

Gruppi vuoti in Active Directory
FIG 1 - Gruppi vuoti in Active Directory





mercoledì 30 marzo 2022

PowerShell: Modificare la descrizione di un computer in Active Directory

Di seguito viene mostrato un semplice script PowerShell che permette di modificare il campo Descrizione di uno specifico computer in Active Directory. L'operazione viene eseguita attraverso l'utilizzo del cmdlet Set-ADComputer.

 # Importa il modulo Active Directory  
 Import-Module ActiveDirectory  
   
 #Inserimento nome computer  
 $wks = Read-Host -Prompt 'Inserisci nome computer'  
   
 #Richiesta inserimento nuova descrizione  
 $desc = Read-Host -Prompt 'Inserisci nuova descrizione'  
   
 #Imposta la nuova descrizione  
 Set-ADComputer $wks -Description $desc  
   
 Write-Host "La descrizione del computer $wks in AD è stata modificata in: $desc" -ForegroundColor Green  
Una volta inserito il nome del computer e la descrizione desiderata, viene aggiornato il relativo campo Descrizione in Active Directory. Se il nome computer non è presente in Active Directory, verrà visualizzato un messaggio di errore.
Modifica Descrizione Computer in Active Directory
FIG 1 - Modifica Descrizione Computer in Active Directory


Descrizione computer in Active Directory
FIG 2 - Descrizione computer in Active Directory

Lo script può essere scaricato dal seguente link





lunedì 28 febbraio 2022

PowerShell: Abilitare un account disabilitato in AD

Nell'articolo PowerShell: Disabilitare un account in AD è stato mostrato come disabilitare un account in Active Directory mediante l'utilizzo del cmdlet Disable-ADAccount. In quest'articolo vedremo l'operazione opposta: come abilitare un account disabilitato. L'abilitazione viene effettuata mediante l'utilizzo del cmdlet Enable-ADAccount che consente di abilitare un account utente, computer o servizio di Active Directory.

Sintassi

Enable-ADAccount
      [-WhatIf]
      [-Confirm]
      [-AuthType <ADAuthType>]
      [-Credential <PSCredential>]
      [-Identity] <ADAccount>
      [-Partition <String>]
      [-PassThru]
      [-Server <String>]
      [<CommonParameters>]

Parametri

-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
-Confirm 
Chiede 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.

-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) 

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


Esempi

Esempio 1
Enable-ADAccount -Identity Giovanni.Lubrano
Questo comando abilita l'account con identità SAMAccountName Giovanni.Lubrano
Abilita account in AD
FIG 1 - Abilita account in AD


Esempio 2
Enable-ADAccount -Identity "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"
Abilita l'account con DistinguishedName "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"

Esempio 3
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Utenti,OU=Direzione,DC=mycompany,DC=local" | Enable-ADAccount
Questo comando abilita tutti gli account nell'unità organizzativa "OU=Utenti,OU=Direzione,DC=mycompany,DC=local".








PowerShell: Disabilitare un account in AD

In questo articolo tratteremo il cmdlet Disable-ADAccount utilizzato disabilitare un account utente, computer o servizio di Active Directory.

Sintassi

Disable-ADAccount
       [-WhatIf]
       [-Confirm]
       [-AuthType <ADAuthType>]
       [-Credential <PSCredential>]
       [-Identity] <ADAccount>
       [-Partition <String>]
       [-PassThru]
       [-Server <String>]
       [<CommonParameters>]

Parametri

-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
-Confirm 
Chiede 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.

-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) 

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


Esempi

Esempio 1
Disable-ADAccount -Identity Giovanni.Lubrano
Questo comando disabilita l'account con identità SAMAccountName Giovanni.Lubrano
Disabilita account
FIG 1 - Disabilita account

Esempio 2
Disable-ADAccount -Identity "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"
Disabilita l'account con DistinguishedName "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"

Esempio 3
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Utenti,OU=Direzione,DC=mycompany,DC=local" | Disable-ADAccount
Questo comando disabilita tutti gli account nell'unità organizzativa "OU=Utenti,OU=Direzione,DC=mycompany,DC=local".

Account disabilitato
FIG 2 - Account disabilitato





mercoledì 23 giugno 2021

Windows Server 2019: Resettare la scadenza della password per un utente

Quando la password di un account utente presente in Active Directory è scaduta, l'utente è costretto a cambiarla. Potremmo trovarci nella situazione di dover far in modo che l'utente continui ad utilizzare la stessa password. In questo caso possiamo intervenire in Active Directory agendo sull'attributo pwdLastSet dell'account utente che rappresenta la data dell'ultima modifica della password. Impostando tale attributo alla data odierna, faremo in modo che l'utente possa continuare ad usare la sua password fino alla prossima scadenza.

Resettare la scadenza della password per un utente

  • Da Utenti e computer di Active Directory (dsa.msc) verificare che, dal menu Visualizza, sia selezionata la voce Funzionalità avanzate.
  • Aprire le proprietà dell'account utente e posizionarsi sulla scheda Editor attributi.
  • Modificare l’attributo pwdLastSet impostandolo a 0 (che corrisponde al valore Mai), quindi confermare cliccando sul pulsante OK e successivamente nuovamente su OK per chiudere la finestra delle proprietà dell'account
  • Ripetere l'operazione riaprendo le proprietà dell'account ma questa volta impostando l'attributo pwdLastSet a -1 (che corrisponde alla data odierna), quindi confermare cliccando sempre su OK.
Attributi account Active Directory
FIG 1 - Attributi account Active Directory

L'operazione può essere eseguita in maniera analoga utilizzando lo strumento Centro di amministrazione di Active Directory.

Resettare la scadenza della password per un utente da PowerShell

Per resettare la scadenza della password tramite PowerShell baste eseguire il comando
Set-ADUser -Identity <account> -Replace @{pwdLastSet=-1}
ovviamente passando al parametro Identity il Distinguished Name (DN), il GUID (objectGUID), il security identifier (objectSid) o il SAM account name (sAMAccountName)
Ad esempio:
Set-ADUser -Identity Giovanni.Lubrano -Replace @{pwdLastSet=-1}





mercoledì 5 maggio 2021

MS Exchange: Verificare se la casella risiede "on Cloud" o "on Premises" tramite PowerShell

Un metodo veloce per verificare se una casella di posta è on cloud o on premises è quello di verificare la proprietà targetAddress relativa all'account in Active Directory. Possiamo effettuare la verifica utilizzando il cmdlet Get-AdUser a cui passare, tramite il parametro -Identity, un DN (Distinguished name), un GUID (objectGUID), un security identifier (objectSid) oppure un SAM account name (sAMAccountName).

Il comando da eseguire per verificare dove si trova la casella di posta sarà simile a
if((Get-ADUser -Identity <ADUser> -Properties targetAddress).targetAddress -match "onmicrosoft.com" ) { "On Cloud" } else { "On Prem" }

Ad es.
if((Get-ADUser -Identity GLUBRANO -Properties targetAddress).targetAddress -match "onmicrosoft.com" ) { "On Cloud" } else { "On Prem" }

Verifica mailbox
FIG 1 - Verifica mailbox




sabato 27 febbraio 2021

PowerShell: Rimuovere un membro da un gruppo Active Directory

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.
PowerShell, Remove-AdGroupMember
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.
File CSV con l'elenco degli account
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}





martedì 23 febbraio 2021

PowerShell: Aggiungere membri in un gruppo Active Directory

Per aggiungere account utente e computer ad un gruppo Active Directory viene utilizzato il cmdlet Add-AdGroupMember.

Sintassi

Add-ADGroupMember
   [-WhatIf]
   [-Confirm]
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADGroup>
   [-Members] <ADPrincipal[]>
   [-MemberTimeToLive <TimeSpan>]
   [-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 aggiunge un account che è già membro del gruppo 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 aggiungere al gruppo. Il parametro accetta come valori:
Distinguished name
GUID (objectGUID)
Security identifier (objectSid)
SAM account name (sAMAccountName)

-MemberTimeToLive
Permette di specificare un Time to Live (TTL) per i nuovi membri del gruppo.

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

Aggiungere membri in un gruppo Active Directory
Per aggiungere account utente, computer o altri gruppi come membri in un gruppo Active Directory il comando sarà simile a
Add-AdGroupMember -Identity Gruppo1 -Members yosemite.sam, Giovanni.Lubrano
Come visibile è possibile specificare più membri separandoli con la virgola.

PowerShell, Add-AdGroupMember
FIG 1 - PowerShell, Add-AdGroupMember

Per aggiungere un account computer è necessario aggiungere il simbolo $ alla fine del nome dell'account.
Add-AdGroupMember -Identity Gruppo1 -Members PCDIR004$

Per velocizzare l'inserimento di account all'interno di un gruppo è possibile creare un file CSV. Il file sarà simile a quello mostrato in FIG 2 e conterrà l'elenco degli account da aggiungere al gruppo.
File CSV con l'elenco degli account
FIG 2 - File CSV con l'elenco degli account

Il comando da eseguire per aggiungere al 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 {Add-AdGroupMember -Identity "Gruppo1" -members $_.utenti}

Per aggiungere un account utente a più gruppi è possibile utilizzare il comando
"Gruppo1","Gruppo2" | Add-ADGroupMember -Members Giovanni.Lubrano
con il seguente comando viene richiesto di specificare l'account utente da inserire nei due gruppi
"Gruppo1","Gruppo2" | Add-ADGroupMember -Members (Read-Host -Prompt "Inserisci l'account utente: ")

PowerShell, Aggiungere un account utente a più gruppi
FIG 3 - PowerShell, Aggiungere un account utente a più gruppi

Sfruttando i cmdlet Get-ADGroupMemberGet-ADUser possiamo copiare gli account utente da un gruppo all'altro. Ad esempio il seguente comando copia i membri account utente dal Gruppo1 al Gruppo2.
Get-ADGroupMember "Gruppo1" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "Gruppo2" -Members $_}








domenica 21 febbraio 2021

PowerShell: Visualizzare i membri di un gruppo Active Directory

In questo articolo tratteremo il cmdlet Get-ADGroupMember utilizzato per visualizzare i membri di un gruppo Active Directory. I membri possono essere account utente, computer o altri gruppi.

Sintassi

Get-ADGroupMember
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADGroup>
   [-Partition <String>]
   [-Recursive]
   [-Server <String>]
   [<CommonParameters>]

Parametri

-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
-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.

-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) 

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

-Recursive
Specifica che il cmdlet ottiene i membri di un gruppo inclusi i membri di gruppi secondari.

-Server
Permette di specificare l'istanza di Active Directory Domain Services a cui connettersi per eseguire l'operazione.

Visualizzare i membri di un gruppo Active Directory
Per visualizzare i membri di un gruppo Active Directory (ad es. un gruppo con nome Gruppo1) si utilizza il comando
Get-ADGroupMember -Identity Gruppo1
PowerShell, Get-ADGroupMember
FIG 1 - PowerShell, Get-ADGroupMember


Se il gruppo contiene altri gruppi e possibile visualizzare anche i membri dei gruppi secondari utilizzando il parametro -Recursive come indicato dal seguente comando
Get-ADGroupMember -Identity "Gruppo1" -Recursive





mercoledì 17 febbraio 2021

PowerShell: Visualizzare informazioni su uno o più gruppi Active Directory

Per visualizzare uno o più gruppi Active Directory si utilizza il cmdlet Get-ADGroup.

Sintassi

Get-ADGroup
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   -Filter <String>
   [-Properties <String[]>]
   [-ResultPageSize <Int32>]
   [-ResultSetSize <Int32>]
   [-SearchBase <String>]
   [-SearchScope <ADSearchScope>]
   [-Server <String>]
   [-ShowMemberTimeToLive]
   [<CommonParameters>]

Get-ADGroup
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADGroup>
   [-Partition <String>]
   [-Properties <String[]>]
   [-Server <String>]
   [-ShowMemberTimeToLive]
   [<CommonParameters>]

Get-ADGroup
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   -LDAPFilter <String>
   [-Properties <String[]>]
   [-ResultPageSize <Int32>]
   [-ResultSetSize <Int32>]
   [-SearchBase <String>]
   [-SearchScope <ADSearchScope>]
   [-Server <String>]
   [-ShowMemberTimeToLive]
   [<CommonParameters>]

Parametri

-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
-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.

-Filter
Permette di specificare una query che recupera l'oggetto gruppo Active Directory.

-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) 

-LDAPFilter
Specifica una query LDAP che viene utilizzata per filtrare gli oggetti Active Directory. 

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

-Properties
Specifica le proprietà dell'oggetto da recuperare. Può essere usato per recuperare le proprietà che non sono incluse nel set di default.

-ResultPageSize
Specifica il numero di oggetti da includere in una pagina per una query AD DS.

-ResultSetSize
Specifica il numero massimo di oggetti da restituire per la query AD DS.

-SearchBase
Specifica un percorso Active Directory all'interno del quale effettuare la ricerca.

-SearchScope
Specifica l'ambito di una ricerca Active Directory. I valori accettabili per questo parametro sono:
  • Base o 0
  • OneLevel o 1
  • SubTree o 2
-Server
Permette di specificare l'istanza di Active Directory Domain Services a cui connettersi per eseguire l'operazione.

-ShowMemberTimeToLive
Indica che questo cmdlet visualizza i valori di Time to Live (TTL) per i membri del gruppo.


Esempi

Esempio 1
Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory
Visualizza tutti i gruppi Active Directory
Visualizza tutti i gruppi Active Directory
FIG 1 - Visualizza tutti i gruppi Active Directory


Esempio 2
Get-ADGroup -Identity Gruppo1
Visualizza il gruppo specificato dal parametro -Identity.
Visualizza il gruppo Active Directory specificato
FIG 2 - Visualizza il gruppo Active Directory specificato

Esempio 3
Get-ADGroup -Filter 'GroupCategory -eq "Security"'
Visualizza solo i gruppi di sicurezza.