o365:passwdneverexpire
Toolbox: Password Never Expire
- Passwd-NeverExpire.ps1
############################################################################################################################ # This script connects to Office 365 and modify password expiration # Sviluppo: GSolone # Utilizzo: Da funzione 3 del batch "Start.bat" (se presente), altrimenti .\Passwd-NeverExpire.ps1 # Info: http://gioxx.org/tag/o365-powershell # Ultima modifica: 23-01-2014 (rev0) # Modifiche: - ############################################################################################################################ $FormatEnumerationLimit = -1 $pshost = get-host $pswindow = $pshost.ui.rawui $newsize = $pswindow.buffersize $newsize.height = 3000 $newsize.width = 150 $pswindow.buffersize = $newsize $newsize = $pswindow.windowsize $newsize.height = 50 $newsize.width = 150 $pswindow.windowsize = $newsize #Stile export HTML $htstyle = '<style>' $htstyle = $htstyle + “body{font-family:segoe ui,arial;color:black; }” $htstyle = $htstyle + “H1{ color: white; background-color:#385623; font-weight:bold;width: 795px;margin-top:35px;margin-bottom:25px;font-size: 22px;padding:5px 15px 5px 10px; }” $htstyle = $htstyle + “table{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}” $htstyle = $htstyle + “th{border-width: 1px;padding: 5px;border-style: solid;border-color: #d1d3d4;background-color:#0072c6 ;color:white;}” $htstyle = $htstyle + “td{border-width: 1px;padding: 5px;border-style: solid;border-color: #d1d3d4;background-color:white}” $htstyle = $htstyle + “</style>” clear-host write-host write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host -ForegroundColor white "Richiesta connessione alla console Exchange, specifica le credenziali" write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host write-host #Connessione alla console Exchange Get-PSSession | Remove-PSSession $cred = Get-Credential Import-Module MSOnline Connect-MsolService -Credential $cred $msoExchangeURL = “https://ps.outlook.com/powershell/” $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $msoExchangeURL -Credential $cred -Authentication Basic -AllowRedirection Import-PSSession $session #Errore di connessione write-host if ($lastexitcode -eq 1) { write-host -ForegroundColor red "Errore nella connessione alla console Exchange" write-host -ForegroundColor red "Esci dallo script, rilancialo e fai attenzione che:" write-host -ForegroundColor red "1. le tue credenziali siano corrette" write-host -ForegroundColor red "2. tutti i tools per l'amministrazione di Office 365 siano installati" write-host -ForegroundColor red "3. l'utente utilizzato sia Global Administrator della piattaforma" } else { #Connessione riuscita clear-host write-host write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host -ForegroundColor white "Operazione completata con successo" write-host -ForegroundColor white "Ora sei connesso alla console Exchange" write-host -ForegroundColor white -------------------------------------------------------------------- write-host -ForegroundColor white "Per attivare una funzione scegliere il numero" write-host -ForegroundColor white "in corrispondenza della voce interessata" write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host write-host } $Loop = $true While ($Loop) { write-host " Office 365 - Set Password to Never Expire" -ForegroundColor yellow write-host ' --------------------------------------------------------------' -ForegroundColor green write-host "1- Blocca la scadenza password per tutti gli utenti (BULK)" write-host "2- Esporta lo stato di scadenza della password di tutti gli utenti su file" write-host write-host "3- Disconnetti la sessione Powershell (fallo prima di uscire dallo script)" -ForegroundColor Red write-host "4- Esci dallo script" -ForegroundColor Red write-host $opt = Read-Host "Select an option [0-4]" write-host $opt switch ($opt) { #Menu 1: conferma password Never Expire per tutti gli utenti rilevati nel sistema 1{ clear-host write-host write-host write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host -ForegroundColor white "ATTENZIONE" write-host -ForegroundColor white "L'operazione potrebbe richiedere diversi minuti, tutto dipende" write-host -ForegroundColor white "dal numero di utenti presenti nel sistema." write-host -ForegroundColor white "---------------------------------------------------------------------------" write-host write-host -ForegroundColor red "NON CHIUDERE QUESTA FINESTRA E NON TERMINARE LO SCRIPT" write-host write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host write-host # Modificato comando, aggiunto il -All per prendere tutto il blocco utenza (in caso contrario viene mostrato a video il messaggio "Warning: More results are available. Please specify one of the All or MaxResults parameters." Get-MsolUser -All | Set-MsolUser –PasswordNeverExpires $True # Get-MsolUser | Set-MsolUser –PasswordNeverExpires $True write-host write-host if ($lastexitcode -eq 1) { write-host "Operazione fallita" -ForegroundColor red } else { write-host ------------------------------------------------------------- write-host -ForegroundColor Yellow "Operazione completata con successo" write-host -ForegroundColor Yellow "La password per tutti gli utenti di Office 365 ora non ha alcuna scadenza" write-host ------------------------------------------------------------- } write-host write-host Read-Host "Premere invio per continuare." write-host } #Menu 2: esporta lo stato di scadenza password di tutti gli utenti 2{ clear-host write-host write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host -ForegroundColor white "ATTENZIONE" write-host -ForegroundColor white "L'operazione potrebbe richiedere diversi minuti, tutto dipende" write-host -ForegroundColor white "dal numero di utenti presenti nel sistema." write-host -ForegroundColor white "---------------------------------------------------------------------------" write-host write-host -ForegroundColor white "I salvataggi verranno effettuati nella cartella C:\Temp\O365" write-host write-host -ForegroundColor Magenta oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo write-host $B = "C:\temp\O365\" $B1A = "C:\temp\O365\Reports" if (!(Test-Path -path $B1A )) { New-Item $B1A -type directory } #Export su file di testo Get-MSOLUser -all | Select UserPrincipalName, PasswordNeverExpires >$B\"Export scadenza password.txt" #Export su file CSV Get-MSOLUser -all | Select UserPrincipalName, PasswordNeverExpires | Export-CSV $B1A\"Export scadenza password.CSV" #Export su file HTML Get-MSOLUser -all | Select UserPrincipalName, PasswordNeverExpires | ConvertTo-Html -head $htstyle -Body "<H1>Office 365 - Stato scadenza password utenti</H1>" | Out-File $B1A\"Export scadenza password.html" } #Menu 3: disconnetti sessione PowerShell 3{ clear-host Get-PSsession | Remove-PSsession write-host if ($lastexitcode -eq 1) { write-host "Operazione fallita" -ForegroundColor red } else { write-host "Operazione completata con successo" -ForegroundColor Yellow write-host "La sessione Powershell remota è stata disconnessa" -ForegroundColor Yellow } } #Menu 4: esci dallo script 4{ $Loop = $true Exit } #Termine delle scelte di menu } #Termine del loop }
o365/passwdneverexpire.txt · Last modified: 2014/04/22 19:33 by gfsadministrator