Avete bisogno di recuperare informazioni relative a un account utente, come ad esempio la data di ultimo login o l'ultima volta in cui ha cambiato password? Sfortunatamente l'interfaccia di amministrazione utenti di Windows Server non consente di visualizzare le suddette informazioni in modo rapido. Per nostra fortuna possiamo recuperarle in modo semplice ed efficace grazie a un apposito comando Powershell, ovvero Get-ADUser, disponibile a partire da Windows Server 2008.
Per visualizzare rapidamente tutte le opzioni disponibili, potete visualizzare l'help apposito direttamente da un prompt Powershell digitando il seguente comando:
1 |
help Get-ADUser |
Per visualizzare le informazioni di connessione e scadenza password relative a un singolo utente, digitate il seguente comando:
1 |
Get-ADUser -identity username -properties * |
Avendo ovviamente cura di sostituire username con il nome dell'utente che volete controllare.
Una volta digitato il comando, potrete vedere a schermo un elenco di proprietà relative all'utente in questione. Quelle che dovete guardare, sempre che non si serva sapere altro, sono le seguenti:
- LastLogonTimestamp: riferimento temporale che indica l'ultima data e ora di connessione dell'utente. A differenza di LastLogon e LastLogonDate questo valore viene replicato sui vari Domain Controllers ed è quindi l'unico che vale realmente la pena di considerare.
- LogonCount: valore numerico che restituisce il numero di connessioni effettuate dall'utente.
- PasswordExpired: valore booleano che restituisce True se la password è scaduta, False in caso contrario.
- PasswordLastSet: la data in cui è stata impostata la password l'ultima volta.
- PasswordNeverExpires: valore booleano che restituisce True se la password è configurata per non scadere mai, False in caso contrario.
La documentazione completa del cmdlet GET-ADUser, comprensiva di tutti i campi che non abbiamo elencato, è disponibile a questo indirizzo.
Nel caso in cui ci interessi visualizzare la situazione di tutti gli utenti per questi tre valori, possiamo creare un elenco a tabella mettendo in evidenza solo questi valori:
1 |
get-aduser -filter * -properties LastLogonTimestamp, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, LastLogonTimestamp, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires |
L'esecuzione del comando ft presuppone l'utilizzo del cmdlet noto come Format-Table, ampiamente documentato a questo indirizzo.
Nel caso in cui avessimo un gran numero di utenti potremmo inoltre aggiungere al nostro comando l'ordinamento alfabetico per nome:
1 |
get-aduser -filter * -properties LastLogonTimestamp, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires | sort Name | ft Name, LastLogonTimestamp, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires |
Anche il comando sort necessita di un cmdlet apposito, in questo caso Sort-Object, la cui documentazione è disponibile a questo indirizzo.
Infine, nel caso in cui volessimo esportare queste informazioni su un foglio MS Excel anziché limitarci mostrarle a schermo, potremmo modificare leggermente il comando nel seguente modo:
1 |
get-aduser -filter * -properties LastLogonTimestamp, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires | sort Name | select Name, LastLogonTimestamp, LogonCount, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:\temp\user-password-info-20131119.csv |
In questo caso andremo a utilizzare due ulteriori cmdlet: Select-Object, documentato a questo indirizzo, e ovviamente Export-csv, il cui funzionamento è spiegato qui.
Per il momento è tutto: felice amministrazione!
EDIT: Nel caso in cui non troviate il comando disponibile, potrebbe essere necessario importare l'apposito modulo per il supporto ActiveDirectory nel seguente modo:
1 |
Import-Module ActiveDirectory |