PowerShell resta uno degli strumenti più preziosi per gli amministratori di Office 365. È utile quando è necessario recuperare un elenco specifico di utenti o cassette postali. Invece di cercare a caso tra le opzioni disponibili nel portale di Office 365, agli amministratori è facile digitare poche righe di codice per ottenere ciò di cui hanno bisogno. In questo articolo impareremo a conoscere i dieci cmdlet di PowerShell più comunemente utilizzati.
1. Connettiti a un'istanza di Office 365 utilizzando PowerShell
Di seguito sono riportati i passaggi per connettersi all'istanza di Office 365. Ogni passaggio menziona la funzione da eseguire e il rispettivo script PowerShell per fare lo stesso.
- Scarica e installa l'Assistente per l'accesso a Microsoft Online Services per professionisti IT RTW.
- Importa il modulo PowerShell dei servizi online per Microsoft Azure Active Directory e Office 365:
- Modulo di installazione -Nome AzureAD
- Modulo di installazione -Nome MSOnline
- Esegui il comando seguente e inserisci le tue credenziali di amministratore di Office 365 nel popup visualizzato.
- Crea una sessione remota di PowerShell.
- $O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
- Importa i comandi della sessione nella sessione locale di Windows PowerShell.
- Connettiti a tutti i servizi di Office 365.
- Connect-MsolService –Credential $O365
2. Connettiti a Exchange Online e SharePoint Online utilizzando PowerShell
Di seguito sono riportati i passaggi per connettere Exchange Online e SharePoint Online con PowerShell.
- Esegui lo script seguente per connetterti al modulo di Exchange Online. Quando richiesto, inserisci le credenziali di amministratore di Office 365.
- $Cred = Get-Credential
- $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
- Per connetterti a SharePOint Online, scarica e installa SharePoint Online Management Shell, quindi esegui lo script seguente.
- $admin="Admin@enterprise.onmicrosoft.com"
- $orgname="impresa"
- $userCred = Get-Credential -UserName $admin -Message "Digita la password."
- Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
Fornire un indirizzo email amministratore valido e un nome azienda nelle prime due righe dello script.
3. Ottieni un elenco di cmdlet di Office 365 PowerShell disponibili
Per ottenere l'elenco di tutti i comandi PowerShell di MSOnline, esegui il comando seguente
- Modulo MSOnline -Get-Command
Per ottenere l'elenco di tutti i cmdlet di Azure Active Directory, esegui il comando seguente,
- Modulo AzureAD -Get-Command
4. Ottieni l'elenco di tutti gli utenti di Office 365 con PowerShell
Per recuperare tutti gli utenti con una licenza valida nel tenant di Office 365, insieme ai parametri DisplayName, City, Dipartimento e ObjectID, eseguire il comando di seguito.
- Get-MsolUser | Seleziona DisplayName, Città, Dipartimento, ObjectID
5. Crea un nuovo utente in Office 365 utilizzando PowerShell
Per creare un nuovo utente di Office 365 con il nome John e il cognome Smith, esegui il comando seguente.
- New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith" -Nome “John” -Cognome “Smith”
Se la creazione dell'utente di Office 365 ha avuto esito positivo, il sistema restituirà la password dell'utente e lo stato della licenza.
6. Rimuovi un utente da tutti i siti di SharePoint utilizzando PowerShell
Per rimuovere un utente da tutti i siti di SharePoint contemporaneamente, esegui il comando seguente.
- Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
7. Cambia la password dell'account utente di Office 365 utilizzando PowerShell
Se è necessario cambiare la password per un account, utilizza il cmdlet Set-MsolUserPassword.
- Set-MsolUserPassword -UserPrincipalName JSmith@netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
È possibile tralasciare il parametro -NewPassword per consentire al sistema di generare una password casuale.
8. Gestisci l'appartenenza ai gruppi in Office 365 utilizzando PowerShell
Per gestire un gruppo, è necessario conoscere GroupObjectId e GroupMemberObejctId.
Per trovare il groupObjectID del gruppo che devi gestire, esegui il comando seguente.
Per trovare GroupMemberObejctId degli utenti che devi aggiungere o rimuovere, esegui il comando seguente.
- Get-MsolUser | Seleziona ObjectID.
Per aggiungere nuovi membri a un gruppo, esegui il comando seguente.
- Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
Per rimuovere un utente da un gruppo, esegui il comando seguente.
- $GroupId = Get-MsolGroup -SearchString "MyGroup"
- $UserId = Get-MsolUser -UserPrincipalName "evannarvaez@contoso.com"
- Remove-MsoLGroupMember -GroupObjectId $GroupId -GroupMemberType User -GroupmemberObjectId $UserId
In questo esempio viene rimosso l'utente evannarvaez@contoso.com dal gruppo denominato MyGroup.
9. Crea una raccolta siti di SharePoint utilizzando PowerShell
Per creare una raccolta siti di SharePoint con PowerShell, esegui il comando seguente,
- New-SPOSite -Url https://contoso.sharepoint.com/sites/mynewsite -Owner john.smith@contoso.com -StorageQuota 1000 -Titolo "Ultima presentazione"
In questo esempio viene creata una nuova raccolta siti con il nome Ultima presentazione per l'azienda corrente con l'URL del sito e il proprietario specificati. La quota di archiviazione è impostata su 1000 megabyte.
10. Crea report in Office 365 utilizzando PowerShell
PowerShell è un ottimo strumento per creare diversi report. Ecco alcuni report utili di Office 365 eseguiti tramite PowerShell:
Per generare il report Tutte le cassette postali che fornisce dettagli su tutte le cassette postali nella configurazione del tuo Office 365.
- Ottieni-cassetta postale | get-MailboxStatistics
Per recuperare l'elenco di tutte le cassette postali a cui non è stato effettuato l'accesso negli ultimi 30 giorni.
- Get-Mailbox –RecipientType 'UserMailbox' | Ottieni statistiche della cassetta postale | Ordina oggetto LastLogonTime | Dove {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
Per ottenere un riepilogo del traffico di posta nel tuo Office 365.
Nota: La maggior parte dei cmdlet di reporting sono stati deprecati nel gennaio 2018 e sostituiti dalla nuova API MS Graph. Pertanto, alcuni report sono ora disponibili solo nel Centro sicurezza e conformità di Office 365.