Visualizzazione post con etichetta Powershell. Mostra tutti i post
Visualizzazione post con etichetta Powershell. Mostra tutti i post

mercoledì 10 aprile 2024

Windows Server 2022: Impostare la complessità della password tramite Password Settings Object

All'interno di un dominio è sempre consigliabile stabilire una policy aziendale per forzare l'utilizzo di password complesse al fine di prevenire (o quantomeno rendere difficili) accessi non autorizzati.
Già a partire da Windows Server 2012 è possibile controllare la complessità delle password attraverso l'utilizzo dei criteri granulari per le password (FINE-GRAINED password policy) e la creazione di Password Settings Object (PSO). I requisiti minimi per procedere sono i seguenti:
  • Sia presente almeno un Domain Controller con Windows Server 2012 o superiore;
  • Il livello di funzionalità della foresta sia impostata almeno su Windows Server 2008.
In questi articoli stiamo utilizzando Windows Server 2022 con il livello di funzionalità della foresta di Windows Server 2016 pertanto i requisiti sono ampiamente rispettati. Solo i membri del gruppo Domain Admin possono creare PSO.


Creazione di Password Settings Object (PSO) tramite il Centro di amministrazione di Active Directory

Da Server Manager cliccare sul menu Strumenti e selezionare Centro di amministrazione di Active Directory. In alternativa premere la combinazione di tasti WIN+R, digitare dsac.exe e premere invio.
Server Manager
FIG 1 - Server Manager

Selezionare il proprio dominio (nel nostro caso mycompany.local) quindi aprire il container System con un doppio click.
Centro di amministrazione di Active Directory, container System
FIG 2 - Centro di amministrazione di Active Directory, container System

Cliccare due volte su Password Settings container.
Centro di amministrazione di Active Directory, Password Settings Container
FIG 3 - Centro di amministrazione di Active Directory, Password Settings Container

Sul pannello Attività (sul lato destro della finestra) cliccare su Nuovo quindi Impostazioni password.
Impostazioni password
FIG 4 - Impostazioni password

Nella finestra Crea Impostazioni password ci sono diverse opzioni da settare per la creazione del PSO.
  • All'interno della casella Nome specificare il nome da assegnare all'oggetto. E' consigliabile utilizzare un nome significativo che consenta di capire il suo scopo. Ad es. dovendo creare un PSO per gli amministratori di dominio un nome significativo potrebbe essere PSO_Domain_Admin.
  • All'interno del campo Precedenza inserire il valore 1. Il valore di tale campo ci permette di specificare la precedenza dell'oggetto: nel caso in cui su un account utente o su un gruppo siano definite più PSO, quello con il valore più basso avrà la precedenza.
  • Il campo Lunghezza minima password consente di specificare il numero minimo di caratteri da utilizzare per la password. Impostare tale campo a 12 caratteri.
  • Imponi cronologia delle password. Tale campo, se selezionato, permette di impedire che l'utente riutilizzi una password già utilizzata in precedenza. Il valore di default di tale campo è 24 il che comporta che l'utente può reinserire una password già utilizzata in passato solo dopo 24 cambi password. Lasciare l'opzione attiva con il valore di default.
  • Imponi validità minima password. Permette di specificare dopo quanto tempo dal cambio password l'utente potrà nuovamente modificarla. Il valore di default è 1 quindi quando l'utente cambia la password dovrà aspettare il giorno successivo (24h) per poterla cambiare nuovamente.
  • Imponi validità massima password. Il valore di default è 42. Modificare tale valore in 30. Il campo permette di specificare dopo quanti giorni l'utente è obbligato a cambiare password.
  • Attivare l'opzione Applica criteri di blocco account. Nel campo Numero di tentativi di accesso non riusciti consentiti inserire 5. Nel campo Ripristina conteggio tentativi di accesso non riusciti lasciare il valore 30. Lasciare attiva l'opzione Per un periodo di tempo pari a (minuti) valorizzata a 30. Con tali opzioni, dopo 5 tentativi di accesso non riusciti, l'account verrà bloccato per 30 minuti. Il contatore degli accessi non riusciti verrà resettato dopo 30 accessi riusciti consecutivi.
Cliccare su OK per completare la creazione del PSO con le impostazioni settate.
Creazione PSO
FIG 5 - Creazione PSO


Creazione di Password Settings Object (PSO) tramite PowerShell

Per eseguire la stessa operazione tramite PowerShell è necessario utilizzare il cmdlet New-ADFineGrainedPasswordPolicy.

Sintassi
New-ADFineGrainedPasswordPolicy
   [-WhatIf]
   [-Confirm]
   [-AuthType <ADAuthType>]
   [-ComplexityEnabled <Boolean>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-DisplayName <String>]
   [-Instance <ADFineGrainedPasswordPolicy>]
   [-LockoutDuration <TimeSpan>]
   [-LockoutObservationWindow <TimeSpan>]
   [-LockoutThreshold <Int32>]
   [-MaxPasswordAge <TimeSpan>]
   [-MinPasswordAge <TimeSpan>]
   [-MinPasswordLength <Int32>]
   [-Name] <String>
   [-OtherAttributes <Hashtable>]
   [-PassThru]
   [-PasswordHistoryCount <Int32>]
   [-Precedence] <Int32>
   [-ProtectedFromAccidentalDeletion <Boolean>]
   [-ReversibleEncryptionEnabled <Boolean>]
   [-Server <String>]
   [<CommonParameters>]
   
Parametri
-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1

-ComplexityEnabled
Specifica se la complessità della password è abilitata per il criterio della password. Se abilitata, la password deve contenere tre dei seguenti quattro tipi di caratteri:
  • Caratteri maiuscoli (A, B, C, D, E, ...)
  • Caratteri minuscoli (a, b, c, d, e, ...)
  • Numeri (0, 1, 2, 3, ...)
  • Caratteri speciali (#, $, *, %, ...)
I valori accettati per questo parametro sono:
  • $False o 0. Disabilita la complessità della password.
  • $True o 1. Abilita la complessità della password.


-Confirm
Se specificato, tale parametro mostra la richiesta di conferma prima di eseguire il cmdlet.


-Credential
Specifica un'account utente che ha i permessi necessari per eseguire l'operazione. 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.


-Description
Specifica una descrizione dell'oggetto. Tale parametro imposta il valore della proprietà Description dell'oggetto.


-DisplayName
Specifica il display name dell'oggetto: imposta la proprietà DisplayName dell'oggetto.


-Instance
Specifica un'istanza di un oggetto fine-grained password policy da usare come modello per un nuovo oggetto fine-grained password policy.

È possibile utilizzare un'istanza di un oggetto fine-grained password policy esistente come modello o costruire un nuovo oggetto fine-grained password policy utilizzando la riga di comando di Windows PowerShell o uno script.

Metodo 1: utilizzare un oggetto fine-grained password policy esistente come modello per un nuovo oggetto. Per recuperare un'istanza di un oggetto fine-grained password policy esistente, utilizzare un cmdlet come Get-ADFineGrainedPasswordPolicy. Quindi fornire questo oggetto al parametro Instance del cmdlet New-ADFineGrainedPasswordPolicy. È possibile sovrascrivere i valori delle proprietà del nuovo oggetto impostando i parametri appropriati.

Metodo 2: creare un nuovo oggetto ADFineGrainedPasswordPolicy e impostare i valori delle proprietà utilizzando l'interfaccia della riga di comando di Windows PowerShell. Passare quindi questo oggetto al parametro Instance del cmdlet New-ADFineGrainedPasswordPolicy per creare il nuovo oggetto Active Directory fine-grained password policy.


-LockoutDuration
Specifica il periodo di tempo in cui un account viene bloccato dopo che il numero di tentativi di accesso falliti supera la soglia di blocco. Non è possibile accedere a un account bloccato finché il periodo di tempo di durata del blocco non è scaduto. Se si imposta il valore a 0, l'account deve essere sbloccato manualmente dall'amministratore. Questo parametro imposta la proprietà lockoutDuration di un oggetto criterio password. Il nome di visualizzazione LDAP (ldapDisplayName) di questa proprietà è msDS-LockoutDuration.

La durata del blocco deve essere maggiore o uguale al tempo di osservazione del blocco per un criterio di password. Utilizzare il parametro LockOutObservationWindow per impostare il tempo di osservazione del blocco.

Specificare l'intervallo di tempo della durata del blocco nel formato seguente:
D.H:M:S.F

dove:
D = Giorni (da 0 a 10675199)
H = Ore (da 0 a 23)
M = Minuti  (da 0 a 59)
S = Secondi (da 0 a 59)
F = Frazioni di secondo (da 0 a 9999999)


-LockoutObservationWindow
Specifica l'intervallo di tempo massimo tra due tentativi di accesso non riusciti prima che il numero di tentativi di accesso non riusciti venga riportato a 0. Un account viene bloccato quando il numero di tentativi di accesso non riusciti supera la soglia di blocco del criterio della password. Questo parametro imposta la proprietà lockoutObservationWindow di un oggetto criterio password. Il nome di visualizzazione LDAP (ldapDisplayName) di questa proprietà è msDS-lockoutObservationWindow.

La finestra di osservazione del blocco deve essere minore o uguale alla durata del blocco di un criterio di password. Utilizzare il parametro LockoutDuration per impostare la durata del blocco.

Specificare l'intervallo di tempo nel formato seguente:
D:H:M:S.F

dove:
D = Giorni (da 0 a 10675199)
H = Ore (da 0 a 23)
M = Minuti (da 0 a 59)
S = Secondi (da 0 a 59)
F = Frazioni di secondo (da 0 a 9999999)

Nota: I valori possono essere compresi tra 0:0:0:0.0 e 10675199:02:48:05.4775807.


-LockoutThreshold
Specifica il numero di tentativi di accesso non riusciti consentiti prima che un account venga bloccato. Questo numero aumenta quando l'intervallo tra i tentativi di accesso non riusciti è inferiore al tempo specificato da LockoutObservationWindow. Questo parametro imposta la proprietà LockoutThreshold di un criterio di password.

-MaxPasswordAge
Specifica il periodo di tempo massimo in cui è possibile mantenere la stessa password. Dopo questo periodo di tempo, la password scade e bisogna crearne una nuova.
Questo parametro imposta la proprietà maxPasswordAge di un criterio di password. Il nome di visualizzazione LDAP (ldapDisplayName) per questa proprietà è maxPwdAge.

Specificare l'intervallo di tempo nel formato seguente:
D.H:M:S.F

dove:
D = Giorni (da 0 a 10675199)
H = Ore (da 0 a 23)
M = Minuti (da 0 a 59)
S = Secondi (da 0 a 59)
F = Frazioni di secondo  (da 0 a 9999999)

Nota: I valori di tempo devono essere compresi tra  0 e 10675199:02:48:05.4775807.


-MinPasswordAge
Specifica il periodo di tempo minimo prima di poter modificare una password.
Questo parametro imposta la proprietà minPasswordAge di un criterio di password. Il nome di visualizzazione LDAP (ldapDisplayName) per questa proprietà è minPwdAge.
Specificare l'intervallo di tempo nel seguente formato:
D.H:M:S.F

dove:
D = Giorni (da 0 a 10675199)
H = Ore (da 0 a 23)
M = Minuti (da 0 a 59)
S = Secondi (da 0 a 59)
F = Frazioni di secondo (da 0 a 9999999)

Nota: I valori dell'ora devono essere compresi tra i seguenti 0 e 10675199:02:48:05.


-MinPasswordLength
Specifica il numero minimo di caratteri che una password deve contenere. Questo parametro imposta la proprietà MinPasswordLength del criterio della password.


-Name
Specifica il nome dell'oggetto. Questo parametro imposta la proprietà Name dell'oggetto Active Directory. Il nome di visualizzazione LDAP (ldapDisplayName) di questa proprietà è name.


-OtherAttributes
Specifica i valori degli attributi dell'oggetto per gli attributi non rappresentati dai parametri del cmdlet. Con questo parametro è possibile impostare uno o più parametri contemporaneamente. Se un attributo ha più di un valore, è possibile assegnare più valori. Per identificare un attributo, specificare il nome LDAPDisplayName (ldapDisplayName) definito per esso nello schema di Active Directory.
Sintassi:
Per specificare un singolo valore per un attributo:
OtherAttributes @{'AttributeLDAPDisplayName'=value}
Per specificare più valori per un attributo
OtherAttributes @{'AttributeLDAPDisplayName'=value1,value2,...}
È possibile specificare i valori per più di un attributo usando il punto e virgola per separare gli attributi. La sintassi seguente mostra come impostare i valori di più attributi:
OtherAttributes @{'Attribute1LDAPDisplayName'=value; 'Attribute2LDAPDisplayName'=value1,value2;...}


-PassThru
Restituisce un oggetto che rappresenta l'elemento con cui si sta lavorando. Per impostazione predefinita, questo cmdlet non genera alcun output.


-PasswordHistoryCount
Specifica il numero di password precedenti da salvare. Un utente non può riutilizzare una password nell'elenco delle password salvate. Questo parametro imposta la proprietà PasswordHistoryCount per un criterio di password.


-Precedence
Specifica un valore che definisce la precedenza di un criterio fine-grained password rispetto agli altri criteri. Questo parametro imposta la proprietà Precedence per una fine-grained password policy.Il nome di visualizzazione LDAP (ldapDisplayName) per questa proprietà è msDS-PasswordSettingsPrecedence.

Questo valore determina quale criterio di password utilizzare quando a un utente o a un gruppo si applicano più criteri di password. In caso di conflitto, il criterio di password che ha il valore più basso della proprietà Precedence ha la priorità più alta. Ad esempio, se PasswordPolicy1 ha un valore di Precedenza pari a 200 e PasswordPolicy2 ha un valore di Precedenza pari a 100, viene utilizzato PasswordPolicy2.

In genere, i valori di precedenza dei criteri di password sono assegnati in multipli di 10 o 100, per facilitare l'aggiunta di criteri in un secondo momento. Ad esempio, se si impostano i valori di precedenza iniziali per i criteri a 100 e 200, è possibile aggiungere un altro criterio con valore di precedenza pari a 150.

Se il parametro Precedence specificato è già assegnato a un altro oggetto criterio password, il cmdlet restituisce un errore di terminazione.


-ProtectedFromAccidentalDeletion
Specifica se impedire l'eliminazione dell'oggetto. Quando questa proprietà è impostata su true, non è possibile eliminare l'oggetto corrispondente senza modificare il valore della proprietà. I valori accettabili per questo parametro sono:
  • $False o 0
  • $True o 1


-ReversibleEncryptionEnabled
Specifica se la directory deve memorizzare le password utilizzando la crittografia reversibile. Questo parametro imposta la proprietà ReversibleEncryption per un criterio di password. I valori possibili sono:
  • $False o 0
  • $True o 1


-Server
Specifica l'istanza di Active Directory Domain Services a cui connettersi, fornendo uno dei seguenti valori per un nome di dominio o un server di directory corrispondente. Il servizio può essere uno dei seguenti: Active Directory Lightweight Domain Services, Active Directory Domain Services o Active Directory snapshot instance.


-WhatIf
Mostra cosa accadrebbe se il cmdlet venisse eseguito. Il cmdlet non viene eseguito.


Avviare Windows PowerShell (amministratore) ed eseguire il seguente comando per creare e impostare il Password Settings Object (PSO) allo stesso modo di come fatto tramite GUI
New-ADFineGrainedPasswordPolicy -ComplexityEnabled:$true -LockoutDuration:"00:30:00" -LockoutObservationWindow:"00:30:00" -LockoutThreshold:"5" -MaxPasswordAge:"30.00:00:00" -MinPasswordAge:"1.00:00:00" -MinPasswordLength:"12" -Name:"PSO_Domain_Admin" -PasswordHistoryCount:"24" -Precedence:"1" -ReversibleEncryptionEnabled:$false -Server:"Server1DC.mycompany.local"

domenica 25 febbraio 2024

Windows Server 2022: Mappare cartella condivisa tramite script di logon

Negli articoli Windows Server 2022: Mappare automaticamente una cartella condivisa e Windows Server 2022: Mappare cartelle personali abbiamo visto come fare in modo che una cartella venga automaticamente mappata all'utente. In particolare nell'ultimo articolo, quando abbiamo mappato la cartella personale, abbiamo perso il collegamento alla cartella condivisa tra più utenti che ripristineremo con i passaggi di seguito indicati. Quando bisogna gestire numerosi account è consigliabile l'utilizzo delle group policy. In questo articolo verrà mostrato come agire manualmente su un gruppo ristretto di utenti e mappare una cartella condivisa tramite l'utilizzo di uno script di logon. Tratterò le group policy più in là in appositi articoli.


La cartella condivisa che andremo a mappare al logon tramite script sarà \\SERVERDC2\Cartella condivisa creata nell'articolo 
Windows Server 2022: Mappare automaticamente una cartella condivisa.


Creazione dello script di logon

Posizionarsi sul server e avviare un editor di testo come Blocco note (premere la combinazione di tasti WIN+R, digitare notepad seguito da invio).
Digitare il seguente comando
net use Y: "\\SERVERDC2\Cartella condivisa"
i doppi apici sono necessari in quanto il nome della cartella contiene uno spazio. Il comando mappa il percorso specificato \\SERVERDC2\Cartella condivisa con la lettera di unità Y:.
Blocco note
FIG 1 - Blocco note
Dal menu File selezionare Salva con nome. Salvare il file con il nome logon.bat (nella casella Nome file il nome del file va digitato tra apici per fare in modo che notepad non aggiunga l'estensione .txt)  nel percorso C:\Windows\SYSVOL\sysvol\mycompany.local\scripts
Salva con nome
FIG 2 - Salva con nome

Impostare lo script di accesso per gli account utente

Creato lo script e salvato nell'opportuno percorso, non resta che impostarlo come script di logon per uno o più account utente. L'operazione può essere eseguita tramite Utenti e computer di Active DirectoryCentro di amministrazione di Active Directory o PowerShell. Vediamo i passaggi da seguire


Utenti e computer di Active Directory
Da Server Manager cliccare sul menu Strumenti e selezionare Utenti e Computer di Active Directory (Active Directory Users and Computers). In alternativa premere la combinazione di tasti WIN+R digitare dsa.msc seguito da invio.
Server Manager, Utenti e Computer di Active Directory
FIG 3 - Server Manager, Utenti e Computer di Active Directory

Selezionare gli utenti presenti nella UO mycompany.local\Direzione\Utenti e cliccare sul pulsante Proprietà (in alternativa cliccare con il tasto destro del mouse sugli utenti selezionati e scegliere Proprietà dal menu contestuale);
Utenti e computer di Active Directory, Visualizzare le proprietà degli account utenti
FIG 4 - Utenti e computer di Active Directory, Visualizzare le proprietà degli account utenti
Selezionare la scheda Profilo. Spuntare la casella Script di accesso e digitare il nome dello script da richiamare (Logon.bat) quindi cliccare su OK.
Configurazione Script di accesso per gli account utente
FIG 5 - Configurazione Script di accesso per gli account utente

Da questo momento quando gli utenti effettueranno il logon su una workstation del dominio verrà avviato lo script che mapperà la cartella condivisa con la lettera di unità specificata.


Centro di amministrazione di Active Directory
I passaggi da eseguire utilizzando il Centro di amministrazione di Active Directory sono simili a quelli già visti per Utenti e computer di Active Directory
.

Da Server Manager cliccare sul menu Strumenti e selezionare Centro di amministrazione di Active Directory. In alternativa premere la combinazione di tasti WIN+R, digitare dsac.exe seguito da invio.
Server Manager, Centro di amministrazione di Active Directory
FIG 6 - Server Manager, Centro di amministrazione di Active Directory

Selezionare gli utenti presenti nella UO mycompany.local\Direzione\Utenti e cliccare sul link Proprietà nel riquadro Attività.
Proprietà account utente
FIG 7 - Proprietà account utente

Cliccare sulla sezione Profilo, abilitare la casella Script di accesso e digitare il nome dello script da eseguire al logon (logon.bat) quindi cliccare su OK per confermare la modifica.
Attivazione script di accesso
FIG 8 - Attivazione script di accesso

PowerShell
La stessa operazione può essere eseguita, per ogni utente, tramite PowerShell e l'utilizzo del cmdlet Set-ADUSer. Una volta avviato Windows PowerShell (amministratore) basta eseguire il comando
Set-ADUser -Identity:"CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local" -ScriptPath:"logon.bat" -Server:"ServerDC2.mycompany.local"




domenica 18 febbraio 2024

Windows Server 2022: Mappare automaticamente una cartella condivisa

In un’azienda, è fondamentale che gli utenti possano condividere informazioni e documenti tra loro. Una soluzione comune consiste nel creare una cartella pubblica condivisa a cui gli utenti del dominio possono accedere. In questo articolo verrà mostrato come creare una cartella condivisa e fornire a tutti gli utenti del dominio le abilitazioni per scrivere e cancellare file all’interno della stessa. Per rendere l’utilizzo di tale cartella il più semplice possibile per gli utenti, questa verrà automaticamente mappata dal sistema al logon.
Si tratta di un semplice esempio che può andare bene all'interno delle piccole aziende ma non è adatto in ambiente Enterprise. Andremo a creare una cartella all'interno del disco C:\ del server (anche questa operazione è generalmente sconsigliata e si preferisce creare cartelle contenenti dati su un disco diverso, o quantomeno su una partizione diversa, da quello utilizzato dal sistema operativo) per poi abilitare gli utenti del dominio.

Creazione cartella condivisa e abilitazione degli account utente appartenenti al dominio

Sul server, creare una nuova cartella sul disco C: e rinominarla utilizzando possibilmente un nome mnemonico (ad es. Cartella condivisa).
Cliccare, con il tasto destro del mouse, sulla nuova cartella e selezionare, dal menu contestuale, la voce Proprietà.
Nella finestra Proprietà, selezionare la scheda Condivisione e cliccare sul pulsante Condivisione avanzata.
Proprietà, Condivisione
FIG 1 - Proprietà, Condivisione

Abilitare la casella Condividi la cartella. In questa finestra è possibile modificare il nome con cui la cartella condivisa appare agli utenti, impostare un limite massimo di utenti che possono accedere simultaneamente alla condivisione e aggiungere un commento. Lasciare i valori di default e cliccare sul pulsante Autorizzazioni.
Condivisione avanzata
FIG 2 - Condivisione avanzata
Come visibile dalla FIG 3, sulla cartella è abilitato il gruppo Everyone con i permessi in lettura, ciò significa che chiunque può visualizzare il contenuto della cartella. Nei prossimi passi faremo in modo che solo gli utenti appartenenti al dominio possono accedere alla cartella, visualizzare e modificare il contenuto.
Selezionare il gruppo Everyone e cliccare sul pulsante Rimuovi.
Rimozione gruppo Everyone
FIG 3 - Rimozione gruppo Everyone
Una volta rimosso il gruppo Everyone, cliccare sul pulsante Aggiungi.
Aggiungi autorizzazioni
FIG 4 - Aggiungi autorizzazioni
All'interno della casella Immettere i nomi degli oggetti da selezionare, digitare Domain e cliccare sul pulsante Controlla nomi.
FIG 5 - Seleziona Utenti, Computer, Account servizio o Gruppi

Selezionare il gruppo Domain Users e cliccare su OK.
Autorizzazioni Domain Users
FIG 6 - Autorizzazioni Domain Users

Selezionare il gruppo Domain Users e cliccare su OK.
Autorizzazioni Domain Users
FIG 7 - Autorizzazioni Domain Users

Nella finestra di dialogo Seleziona Utenti, Computer, Account servizio o Gruppo cliccare su OK.
Conferma Autorizzazione a Domain Users
FIG 8 - Conferma Autorizzazione a Domain Users

All'interno della finestra Autorizzazioni per Cartella condivisa assicurarsi che il gruppo Domain Users sia selezionato quindi, in Autorizzazioni per Domain Users, selezionare la casella Controllo completo e cliccare su OK per applicare la modifica.
Domain Users, Controllo completo
FIG 9 - Domain Users, Controllo completo

Cliccare su OK all'interno della finestra Condivisione avanzata
Condivisione avanzata
FIG 10 - Condivisione avanzata

All'interno della finestra Proprietà - Cartella condivisa noteremo che adesso viene mostrato il percorso di rete \\SERVERDC2\Cartella condivisa attraverso il quale gli utenti potranno accedere alla cartella. Cliccare su Chiudi.
Proprietà Cartella condivisa, Percorso di rete
FIG 11 -  Proprietà Cartella condivisa, Percorso di rete

Il prossimo passo consiste nel fare in modo che agli utenti abilitati questa condivisione venga mappata automaticamente. Per eseguire l'operazione su un gran numero di account utente si utilizzano le group policy. Nel nostro caso, trattandosi di un gruppo ristretto di utenti, agiremo manualmente sugli account in Active Directory. Vedremo come eseguire la stessa operazione tramite group policy in un prossimo articolo. 


Mappare automaticamente una cartella condivisa tramite Utenti e computer di Active Directory

Da Server Manager cliccare sul menu Strumenti e selezionare Utenti e Computer di Active Directory (Active Directory Users and Computers). In alternativa premere la combinazione di tasti WIN+R digitare dsa.msc e premere invio.
Server Manager
FIG 12 - Server Manager

Selezionare gli utenti da abilitare (ad esempio quelli presenti nell'unità organizzativa mycompany.local\Direzione\Utenti) quindi cliccarci sul con il tasto destro del mouse e selezionare Proprietà.
Proprietà account utente
FIG 13 - Proprietà account utente

All'interno della scheda Profilo e attivare l'opzione Home directory. Nel gruppo Home directory è possibile impostare un percorso locale o un percorso mappato. Selezionare l'opzione Connetti quindi specificare la lettera con la quale si intende mappare la condivisione e, nell'apposita casella, specificare il percorso di rete della cartella condivisa (\\SERVERDC2\Cartella condivisa). Al termine cliccare su OK.
Home directory, connessione automatica Percorso di rete
FIG 14 - Home directory, connessione automatica Percorso di rete

Un messaggio di avviso ci informa che la directory specificata esiste già e di assicurarsi che tutti gli utenti dispongano delle opportune abilitazione per accedere/gestire il contenuto della cartella. Cliccare su OK.
Avviso verifica permessi su cartella condivisa
FIG 15 - Avviso verifica permessi su cartella condivisa

Da questo momento, gli utenti abilitati, si ritroveranno la cartella \\SERVERDC2\Cartella condivisa automaticamente mappata al logon con la lettera di unità impostata (Z:).


Eseguendo il logon su un client del dominio (Windows 10/Windows 11) con uno degli account abilitati alla share e aprendo Esplora file, verrà visualizzata la cartella condivisa mappata con la lettera di unità specificata nei passaggi precedenti.
Creando/copiando un file in tale cartella sarà visibile anche agli altri utenti abilitati.

Windows 11, Cartella condivisa mappata con la lettera di unità specificata
FIG 16 - Windows 11, Cartella condivisa mappata con la lettera di unità specificata


Mappare automaticamente una cartella condivisa tramite Centro di amministrazione di Active Directory

Da Server Manager cliccare sul menu Strumenti e selezionare Centro di amministrazione di Active Directory. In alternativa premere la combinazione di tasti WIN+R, digitare dsac.exe e premere invio.
Server Manager
FIG 17 - Server Manager

Selezionare gli utenti da abilitare (ad esempio quelli presenti nell'unità organizzativa mycompany.local\Direzione\Utenti) quindi cliccare su Proprietà presente nel riquadro Attività.
Centro di amministrazione di Active Directory, Proprietà account utente
FIG 18 - Centro di amministrazione di Active Directory, Proprietà account utente

Nella nuova finestra, cliccare sulla sezione ProfiloSelezionare la casella Home directory quindi l'opzione Connetti. Specificare la lettera con cui si intende mappare la cartella condivisa e nella relativa casella inserire il relativo percorso di rete \\SERVERDC2\Cartella condivisa quindi cliccare su OK.
Home directory
FIG 19 - Home directory



Mappare automaticamente una cartella condivisa tramite Powershell

La stessa operazione può essere eseguita, per ogni utente, tramite PowerShell e l'utilizzo del cmdlet Set-ADUSer. Una volta avviato Windows PowerShell (amministratore) basta eseguire il comando

Set-ADUser -HomeDirectory:"\\SERVERDC2\Cartella condivisa" -HomeDrive:"Z:" -Identity:"CN=Foghorn Leghorn,OU=Utenti,OU=Direzione,DC=mycompany,DC=local" -Server:"ServerDC2.mycompany.local"

in cui il parametro
-HomeDirectory consente di specificare il percorso di rete della cartella condivisa.
-HomeDrive permette di specificare la lettera di unità con la quale la cartella viene mappata.
-Identity specifica l'utente, nel formato Distinguished Name (DN), a cui mappare la cartella condivisa.
-Server specifica l'istanza AD DS a cui connettersi per eseguire l'operazione.








mercoledì 31 gennaio 2024

Windows Server 2022: Restore di un oggetto cancellato dal Cestino di Active Directory tramite PowerShell

Nell'articolo precedente Windows Server 2022: Restore di un oggetto cancellato dal Cestino di Active Directory abbiamo visto come recuperare, tramite GUI, un oggetto di AD eliminato e presente nel Cestino di Active Directory. In questo articolo vedremo come eseguire l'operazione mediante PowerShell.

La prima operazione da eseguire consiste nell'individuare gli oggetti cancellati presenti nel cestino di Active Directory (container Deleted Objects). Per farlo, è possibile utilizzare il cmdlet Get-ADObject con il parametro IncludeDeletedObjects. Il comando sarà simile a:
Get-ADObject -Filter 'isDeleted -eq $True -and -not (isRecycled -eq $True) -and name -ne "Deleted Objects"' -IncludeDeletedObjects 

Individuare gli oggetti cancellati presenti nel cestino di AD
FIG 1 - Individuare gli oggetti cancellati presenti nel cestino di AD

Se si conosce il tipo di oggetto da recuperare (user, computer, site, ecc) è possibile specificarlo all'interno del filtro. Ad esempio, volendo elencare i computer presenti nel cestino di AD potremmo utilizzare il seguente comando:
Get-ADObject -Filter 'objectClass -eq "computer" -and isDeleted -eq $True -and -not (isRecycled -eq $True) -and name -ne "Deleted Objects"' -IncludeDeletedObjects 
Individuare gli oggetti computer cancellati presenti nel cestino di AD
FIG 2 - Individuare gli oggetti computer cancellati presenti nel cestino di AD

Per ripristinare un oggetto cancellato presente all'interno del cestino di Active directory si utilizza il cmdlet Restore-ADObject. Al parametro -Identity è possibile passare la stringa ObjectGUID recuperata con il comando precedente Get-ADObject. Il comando sarà simile a:
Restore-ADObject -Confirm:$false -Identity:"d77006e7-4109-48dc-97a8-6b75140877c7"
Ripristino oggetto cancellato
FIG 3 - Ripristino oggetto cancellato





domenica 28 gennaio 2024

Windows Server 2022: Abilitare il cestino di Active Directory

Per default tutti gli oggetti che vengono cancellati in Active Directory non possono essere recuperati. Chi ha avuto la sfortuna di cancellare accidentalmente un oggetto in AD e dovuto recuperarlo da un backup del server, sa bene che si tratta di un'operazione tutt'altro che semplice e veloce. Fortunatamente, a partire da Windows Server 2008 R2, Microsoft ha introdotto il cestino per Active Directory che permette il recupero degli oggetti cancellati in modo analogo a quanto avviene con il cestino di Windows per file e cartelle. Tale funzionalità è disattivata per default e va attivata manualmente. La procedura per abilitare il cestino di Active Directory è la stessa vista per Windows Server 2019.
Prima di attivare la funzione è necessario che siano rispettati alcuni prerequisiti e bisogna tenere in considerazione alcuni limiti.


Prerequisiti Cestino di Active Directory

  • Almeno un Domain Controller deve avere Windows Server 2012 R2 con Centro di amministrazione di Active Directory.
  • Tutti gli altri Domain Controller all'interno del dominio devono avere almeno Windows Server 2008 R2 o superiore.
  • Il livello funzionale della foresta deve essere Windows Server 2008 R2 o superiore.

In Windows Server 2008 R2 il cestino di Active Directory poteva essere gestito solamente tramite PowerShell. A partire da Windows Server 2012 R2 il cestino può essere gestito tramite interfaccia grafica del Centro di amministrazione di Active Directory rendendo più semplice l'operazione di recupero degli oggetti cancellati.
Quando non è abilitato il cestino di Active Directory e si cancella un oggetto, questo viene contrassegnato per la cancellazione (tombstoned). Tali oggetti vengono definitivamente eliminati solo quando verrà eseguito il processo di garbacecollection.

Con il cestino di Active Directory abilitato, quando si cancella un oggetto questo viene contrassegnato come oggetto cancellato per l'arco di tempo specificato dalla proprietà msDS-DeletedObjectLifetime in Active Directory Domain Services (di default è nulla). Scaduto il tempo indicato in msDS-DeletedObjectLifetime  l'oggetto viene contrassegnato come recycled e i suoi attributi vengono rimossi. L'oggetto risiede ancora nel cestino e può essere recuperato per la durata della sua vita definita dall'attributo tombstoneLifetime in Active Directory DS. Quando viene abilitato il cestino di Active Directory, gli oggetti preesistenti e contrassegnati per la cancellazione (tombstoned) vengono convertiti in oggetti recycled tuttavia non potranno essere recuperati come qualsiasi altro oggetto recycled.



Limiti

Il Centro di amministrazione di Active Directory è in grado di gestire solo partizioni di dominio pertanto non è possibile ripristinare oggetti eliminati dalle partizioni di configurazione, DNS del dominio o DNS della foresta (non è possibile eliminare oggetti dalla partizione dello schema). Per ripristinare gli oggetti da partizioni non di dominio, è possibile usare il cmdlet Restore-ADObject di PowerShell.

Nel Centro di amministrazione di Active Directory non è possibile ripristinare sottoalberi di oggetti in un'unica operazione. Se ad esempio si elimina un'unità organizzativa con unità amministrative, utenti, gruppi e computer annidati, il ripristino dell'unità organizzativa di base non ripristina gli oggetti figlio.

Il Cestino di Active Directory comporta un aumento delle dimensioni del database di Active Directory (NTDS.DIT) in ogni controller di dominio della foresta. Lo spazio su disco usato dal cestino continua ad aumentare nel tempo, in quanto conserva gli oggetti e tutti i dati degli attributi.



Abilitare il cestino di Active Directory tramite Centro di amministrazione di Active Directory

Da Server Manager cliccare sul menu Strumenti e selezionare Centro di amministrazione di Active Directory. In alternativa premere la combinazione di tasti WIN+R, digitare dsac.exe e premere invio.
Server Manager
FIG 1 - Server Manager

Selezionare il proprio dominio quindi, sul pannello delle Attività presente sulla destra della finestra, cliccare su Abilita Cestino....
Centro di amministrazione di Active Directory
FIG 2 - Centro di amministrazione di Active Directory

Una finestra di dialogo ci avvisa che l'operazione non è reversibile: una volta abilitato il cestino di Active Directory non potrà essere più disabilitato. Confermare cliccando su OK per proseguire.
Conferma abilitazione cestino AD
FIG 3 - Conferma abilitazione cestino AD

Una nuova finestra di dialogo avvisa l'utente che il cestino non sarà disponibile finché l'abilitazione non verrà replicata a tutti i Domain Controller della foresta e non verrà aggiornato il Centro di amministrazione di Active Directory. Cliccare su OK.
Abilitazione cestino AD
FIG 4 - Abilitazione cestino AD

Terminata la replica dell'abilitazione basta cliccare sull'apposto link per aggiornare le informazioni visualizzate nella finestra del Centro di amministrazione di Active Directory e vedremo apparire un nuovo container nominato Deleted Objects. Da questo momento gli oggetti eliminati da AD potranno essere recuperati all'interno di tale container.
Centro di amministrazione di Active Directory, Container Deleted Objects
FIG 5 - Centro di amministrazione di Active Directory, Container Deleted Objects


Abilitare il cestino di Active Directory tramite PowerShell

In alternativa al Centro di amministrazione di Active Directory è possibile abilitare il cestino di AD tramite PowerShell e l'utilizzo del cmdlet Enable-ADOptionalFeature
Da Windows PowerShell avviato come amministratore eseguire il comando 
Enable-ADOptionalFeature –Identity 'CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=mycompany,DC=local' –Scope ForestOrConfigurationSet –Target 'mycompany.local'
Rispondere affermativamente alla richiesta di esecuzione dell'operazione.
Abilitazione del cestino di Active Directory mediante PowerShell
FIG 6 - Abilitazione del cestino di Active Directory mediante PowerShell

Dopo aver atteso i tempi di replica dal Centro di amministrazione di Active Directory sarà visibile il nuovo container Deleted Objects.