Home Powershell Script Script Powershell Reset User Password

Script Powershell Reset User Password

da robertobonfa
0 commento 117 visualizzazioni

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.

<#
Descrizione: Set temporary password per AD user
Autore: Roberto Bonfa’
Versione : 1.2
Descrizione: Script creato per reset e assegnazione di una password temporanea ad un determinato utente in AD
#>

<# Import il modulo di AD #>

Import-Module Activedirectory

<# File che viene generato con nome utente e password impostata.
Se un utente viene resettato più volte, al suo interno sarà presente 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 password dell’utente specificato e impostazione del flag “User must change password at next logon”
(aggiunta) protezione 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!

Sottoscrivi
Notificami
guest
0 Commenti
Inline Feedbacks
Visualizza tutti i commenti

Questo sito e gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy.

Chiudendo questo banner o proseguendo la navigazione in altra maniera acconsenti all’utilizzo dei cookie.

Accetto

Privacy & Cookies Policy
0
Apprezzerei il tuo pensiero, lasciami un commentox
()
x

Su questo sito NON c’è pubblicità e non ci sarà mai.

L’unica cosa che vi chiedo, se volete, è di utilizzare i miei link per gli acquisti su Amazon; non spenderete neppure un centesimo in più, ma Amazon mi riconoscerà una piccola percentuale sul prezzo di acquisto.