Powershell Script

Script Powershell Reset User Password

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!

Etichette
Back to top button
Close

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.