Site icon Gioxx.org

PowerShell: reset della password utente (Office 365)

L’utente medio sta all’ennesima sua password tanto quanto un astemio al superalcolico. È un po’ come la kryptonite per Superman ed è impossibile da combattere per chi troverà l’eterna giustificazione “noi abbiamo troppe password da ricordare“. Benvenuti nel mondo di chi si ritroverà a dover smaltire una corposa quantità di ticket identici a ogni rientro dalle ferie estive e da quelle natalizie.

Manco a dirlo, lo script fa parte del set dedicato all’amministrazione di Office 365 e Exchange in cloud, disponibile all’indirizzo github.com/gioxx/o365/blob/master/ResetPassword.ps1.

Il blocco più importante dello script è quello dedicato alle 3 possibili scelte: un cambio password “temporaneo” che servirà solo a entrare per poi cambiare (in maniera forzata) la password con una propria più sicura, un cambio randomico generato da Microsoft (lo stesso invocato all’atto della creazione di un nuovo utente via interfaccia grafica di Exchange in cloud), oppure quello determinato da chi utilizza lo script PS1, che potrà così scegliere una nuova password che non sarà necessario modificare al primo avvio:

#Cambio password
        switch ($ChangePasswd) 
            { 
                1     {
                        #DEFAULT (Necessario cambio al primo accesso utente)
                        Write-Host "Imposto password:" -f "Green"
                        Set-MsolUserPassword -UserPrincipalName $RicercaUser -NewPassword "Office2013"
                    }
                2     {
                        #GENERATA RANDOMICAMENTE
                        $alphabet=$NULL;For ($a=65;$a –le 90;$a++) {$alphabet+=,[char][byte]$a }
                        function GET-Temppassword() {
                            Param(
                            [int]$length=10,
                            [string[]]$sourcedata
                            )
                            for ($loop=1; $loop –le $length; $loop++) {
                                $TempPassword+=($sourcedata | GET-RANDOM)
                            }
                            return $TempPassword
                        }
                        Write-Host "Imposto password:" -f "Green"
                        Set-MsolUserPassword -UserPrincipalName $RicercaUser -NewPassword $TempPassword -ForceChangePassword $false
                    }
                3     {
                        #SCELTA DALL'AMMINISTRATORE
                        $AdminRequest = Read-Host "Password (almeno 8 caratteri, almeno una maiuscola e un numero) "
                        ""
                        Write-Host "Imposto password:" -f "green"
                        Set-MsolUserPassword -UserPrincipalName $RicercaUser -NewPassword $AdminRequest -ForceChangePassword $false
                    }
                
                #SCELTA DEFAULT NEL BLOCCO OPERAZIONE
                default { Set-MsolUserPassword -UserPrincipalName $RicercaUser -NewPassword "Office2013" }

Dove il default rimane sempre la prima scelta, una password temporanea che sarà necessario cambiare al primo accesso. Lo script completo (e scaricabile qui) vi permetterà di specificare l’utente che dovrà subire il cambio password, direttamente da prompt (.\ResetPassword.ps1 mario.rossi@contoso.com).

Lo script diventa una manna dal cielo proprio nei periodi più “critici” dell’anno, pensate alla vecchia pubblicità della Costa Crociere, “sono appena tornato“:

https://www.youtube.com/watch?v=9g6Od67O6r4

Portate tanta (ma tanta) pazienza, e buon lavoro.

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Exit mobile version