Powershell

Script Powershell Reset User Password

In Powershell Script by Roberto0 Comments

Like
Like Love Haha Wow Sad Angry

Per lavoro ho avuto necessità di creare uno script che facesse 3 cose e le facesse “autonomamente”, così ho adottato la soluzione migliore che si potesse adottare: creare lo script powershell reset user password!

Script Powershell Reset User Password è uno script creando in powershell che… non fa altro che resettare la password di un account utente specifico, presente in Active Directory, creandone una temporanea “strong” e impostando – inoltre – l’obbligo di cambio password al primo accesso.

Cercando in giro, in rete, ho assemblato 3 script diversi, – attingendo da ognuno una parte utile al mio scopo – e ne ho creato uno da poter utilizzare ovunque, senza problemi e senza doverlo personalizzare.

Sostanzialmente, cosa fa questo script? Semplicemente resetta la password dell’account utente di active directory che si andrà a specificare e ne genera una temporanea e “strong”, imposta – inoltre – l’obbligo di cambio password al primo accesso. Utile no?

Condivido con voi il codice dello script. Non occorre nessuna personalizzazione, basta avviarlo con un’utenza che abbia privilegi di reset su altre utenze in AD.


<# Set temporary password per AD user Roberto Bonfa' Versione : 1.2 (aggiunta opzione "protect from accidental deletion") Script creato per reset e assegnazione di una password temporanea ad un determinato utente in AD #>

<# Import il modulo di AD #>
Import-Module Activedirectory

<# Questo è il file che viene generato con il nome dell'utente e la password impostata. Se un utente viene resettato più volte, al suo interno ci sarà uno storico delle pwd impostate, con la più recente in basso #>
[String]$path= ".\$name.txt"

<# Required Assembly to Generate Passwords #>
Add-Type -Assembly System.Web

<# Richiesta del nome utente da cercare in AD #>
$Name=Read-Host "Inserisci il nome utente a cui resettare la password..."

<# Ricerca del nome utente specificato in tutta AD #>
$users=Get-ADUser -identity $Name

<# Impostazione della variabile NewPassword con caratteristica di 10 caratteri, di cui almeno 2 speciali #>
$NewPassword=[Web.Security.Membership]::GeneratePassword(10,2)

<# Cambio la password dell'utente specificato e imposto il flag su "User must change password at next logon" e protegge dalla cancellazione accidentale #>
Set-ADAccountPassword -Identity $Name -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $NewPassword -Force)
Get-ADUser -Identity $Name | Set-ADUser -ChangePasswordAtLogon:$true
Get-ADUser -Identity $Name | Set-ADObject -ProtectedFromAccidentalDeletion:$true

<# Scrittura del file in cui sono salvati nome utente e password #>
Write-Output "UserID: $name `t Password: $NewPassword" `n`n|FT -AutoSize >>"$name.txt"

<# Apertura del file scritto #>
Invoke-Item ".\$name.txt"

Abbiamo terminato con lo script… Ora dovete solo metterlo su un server o un PC che abbia accesso al dominio e utilizzare un’utenza come Domain Admins. Buon test!

P.S.: Se volete scaricare direttamente lo script, potete prelevarlo direttamente qui sotto (tasto destro + “salva link con nome”)

Scarica “set_temp_usr_pwd”

Like
Like Love Haha Wow Sad Angry

CONDIVIDI QUESTO ARTICOLO


Comment Policy:

I commenti che vengono espressi su questo sito, rispecchiano il pensiero di coloro i quali li esprimono. Siate, pertanto, educati e cortesi nei confronti di chiunque. Utilizzate solo il vostro vero nome e i vostri profili social per collegarvi. Utilizzare profili falsi porterà alla cancellazione del commento, al blocco dello username, al ban dell'IP dal sito e ad una eventuale segnalazione dell'IP stesso alle autorità competenti. Sul sito non sono permessi commenti anonimi, pertanto è necessario che vi autentichiate con uno dei servizi che potete trovare qui sotto. Sono ammessi l'utilizzo di immagini e link nei commenti, ma con moderazione e sempre nel rispetto altrui.