Perché è necessario usare PowerShell per Microsoft 365
Questo articolo si applica sia a Microsoft 365 Enterprise che a Office 365 Enterprise.
Con l'interfaccia di amministrazione di Microsoft 365, è possibile gestire gli account utente e le licenze di Microsoft 365. È anche possibile gestire i servizi di Microsoft 365, ad esempio Exchange Online, Teams e SharePoint. Se invece si usa PowerShell per gestire questi servizi, è possibile sfruttare l'ambiente della riga di comando e del linguaggio di scripting per velocità, automazione e funzionalità aggiuntive.
Nota
Il modulo Azure Active Directory viene sostituito da Microsoft Graph PowerShell SDK. È possibile usare Microsoft Graph PowerShell SDK per accedere a tutte le API di Microsoft Graph. Per altre informazioni, vedere Inizia a usare Attività iniziali con Microsoft Graph PowerShell SDK. Alcuni comandi di PowerShell per Microsoft 365 in questo articolo sono stati aggiornati per l'uso di Microsoft Graph PowerShell.
Questo articolo illustra come usare PowerShell per gestire Microsoft 365 per:
Visualizzare informazioni aggiuntive che non è possibile visualizzare nell'interfaccia di amministrazione di Microsoft 365
Configurare le funzionalità e le impostazioni possibili solo con PowerShell
Eseguire operazioni bulk
Filtrare i dati
Stampare o salvare dati
Gestire tra i servizi
Tenere presente che PowerShell per Microsoft 365 è un set di moduli per Windows PowerShell, un ambiente da riga di comando per servizi e piattaforme basati su Windows. Questo ambiente crea un linguaggio della shell dei comandi che può essere esteso con moduli aggiuntivi. Offre un modo per eseguire comandi o script semplici o complessi. Ad esempio, dopo aver installato i moduli di PowerShell per Microsoft 365 e aver eseguito la connessione alla sottoscrizione di Microsoft 365, è possibile eseguire il comando seguente per elencare tutte le cassette postali utente per Microsoft Exchange Online:
Get-Mailbox
È anche possibile ottenere l'elenco delle cassette postali usando l'interfaccia di amministrazione di Microsoft 365, ma il conteggio degli elementi in tutti gli elenchi per tutti i siti per tutte le app Web non è facile.
PowerShell per Microsoft 365 è progettato per semplificare la gestione di Microsoft 365, non per sostituire l'interfaccia di amministrazione di Microsoft 365. Gli amministratori devono essere in grado di usare PowerShell per Microsoft 365 perché esistono alcune procedure di configurazione che possono essere eseguite solo tramite i comandi di PowerShell per Microsoft 365. Per questi casi, è necessario sapere come:
Installare i moduli di PowerShell per Microsoft 365 (eseguiti una sola volta per ogni computer amministratore).
Connettersi all'abbonamento a Microsoft 365 (una volta per ogni sessione di PowerShell).
Raccogliere le informazioni necessarie per eseguire i comandi di PowerShell necessari per Microsoft 365.
Eseguire i comandi di PowerShell per Microsoft 365.
Dopo aver appreso queste competenze di base, non è necessario elencare gli utenti delle cassette postali usando il comando Get-Mailbox . Inoltre, non è necessario comprendere come creare un nuovo comando come il comando citato in precedenza per contare tutti gli elementi in tutti gli elenchi per tutti i siti per tutte le app Web. Microsoft e la community di amministratori possono aiutarti a svolgere tali attività in base alle esigenze.
PowerShell per Microsoft 365 può rivelare informazioni che non è possibile visualizzare con l'interfaccia di amministrazione di Microsoft 365
L'interfaccia di amministrazione di Microsoft 365 visualizza molte informazioni utili, ma non visualizza tutte le informazioni possibili archiviate da Microsoft 365 su utenti, licenze, cassette postali e siti. Ecco un esempio per utenti e gruppi nell'interfaccia di amministrazione di Microsoft 365:
Questa visualizzazione fornisce le informazioni necessarie in molti casi. Tuttavia, in alcuni casi sono necessarie informazioni aggiuntive. Ad esempio, le licenze di Microsoft 365 (e le funzionalità di Microsoft 365 disponibili per un utente) dipendono in parte dalla posizione geografica dell'utente. I criteri e le funzionalità che è possibile estendere a un utente che risiede negli Stati Uniti potrebbero non essere uguali a quelli che è possibile estendere a un utente in India o in Belgio. Seguire questi passaggi nell'interfaccia di amministrazione di Microsoft 365 per determinare la posizione geografica di un utente:
Fare doppio clic sul Nome visualizzato dell'utente.
Nel riquadro di visualizzazione delle proprietà utente selezionare i dettagli.
Nella visualizzazione dei dettagli selezionare altri dettagli.
Scorrere fino a trovare l'intestazione Paese o area geografica:
Prendere nota del nome visualizzato e della posizione dell'utente su un pezzo di carta o copiarlo e incollarlo nel Blocco note.
È necessario ripetere questa procedura per ogni utente. Se si hanno molti utenti, questo processo può essere noioso. Con PowerShell è possibile visualizzare queste informazioni per tutti gli utenti usando i comandi seguenti.
Nota
Il modulo Azure Active Directory viene sostituito da Microsoft Graph PowerShell SDK. È possibile usare Microsoft Graph PowerShell SDK per accedere a tutte le API di Microsoft Graph. Per altre informazioni, vedere Inizia a usare Attività iniziali con Microsoft Graph PowerShell SDK.
Per prima cosa, usare un account amministratore di Microsoft Entra DC o cloud application admin per connettersi al tenant di Microsoft 365.
Per ottenere informazioni per un utente è necessario l'ambito di autorizzazione User.ReadBasic.All o una delle altre autorizzazioni elencate nella pagina di riferimento dell'API Graph "Assegna licenza".
L'ambito di autorizzazione Organization.Read.All è necessario per leggere le licenze disponibili nel tenant.
Nota
I moduli PowerShell di Azure AD e MSOnline saranno deprecati a partire dal 30 marzo 2024. Per ulteriori informazioni, leggere l'aggiornamento sulla deprecazione. Dopo questa data, il supporto per questi moduli è limitato all'assistenza per la migrazione a Microsoft Graph PowerShell SDK e alle correzioni per la sicurezza. I moduli deprecati continueranno a funzionare fino al 30 marzo 2025.
È consigliabile effettuare la migrazione a Microsoft Graph PowerShell per interagire con Microsoft Entra ID (in precedenza Azure AD). Per le domande più comuni sulla migrazione, consultare Domande frequenti sulla migrazione. Nota: le versioni 1.0.x di MSOnline potrebbero subire interruzioni dopo il 30 giugno 2024.
Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation
Ecco un esempio dei risultati:
DisplayName UsageLocation
----------- -------------
Bonnie Kearney GB
Fabrice Canel BR
Brian Johnson (TAILSPIN) US
Anne Wallace US
Alex Darrow US
David Longmuir BR
L'interpretazione di questo comando di PowerShell è: Ottenere tutti gli utenti nella sottoscrizione corrente di Microsoft 365 (Get-MgUser), ma visualizzare solo il nome e la posizione per ogni utente (Selezionare DisplayName, UsageLocation).
Poiché PowerShell per Microsoft 365 supporta un linguaggio della shell dei comandi, è possibile modificare ulteriormente le informazioni ottenute dal comando Get-MgUser . Ad esempio, è possibile che si desideri ordinare questi utenti in base alla loro posizione, raggruppando tutti gli utenti brasiliani insieme, tutti gli utenti degli Stati Uniti e così via. Ecco il comando:
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName
Ecco un esempio dei risultati:
DisplayName UsageLocation
----------- -------------
David Longmuir BR
Fabrice Canel BR
Bonnie Kearney GB
Alex Darrow US
Anne Wallace US
Brian Johnson (TAILSPIN) US
L'interpretazione di questo comando di PowerShell è: ottenere tutti gli utenti nella sottoscrizione di Microsoft 365 corrente, ma visualizzare solo il nome e la posizione per ogni utente e ordinarli prima in base alla posizione e quindi al nome (Sort UsageLocation, DisplayName).
È anche possibile usare filtri aggiuntivi. Ad esempio, se si desidera visualizzare tali informazioni sugli utenti residenti in Brasile, utilizzare questo comando:
Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country
Ecco un esempio dei risultati:
DisplayName UsageLocation
----------- -------------
David Longmuir BR
Fabrice Canel BR
L'interpretazione di questo comando di PowerShell è: Ottenere tutti gli utenti nella sottoscrizione corrente di Microsoft 365 la cui posizione è Brasile (dove {$_. UsageLocation -eq "BR"}) e quindi visualizzare il nome e la posizione per ogni utente.
Nota sui domini di grandi dimensioni
Se si dispone di un dominio di grandi dimensioni con decine di migliaia di utenti, provare alcuni degli esempi illustrati in questo articolo potrebbe causare la limitazione delle richieste. In base a fattori come la potenza di calcolo e la larghezza di banda di rete disponibile, è possibile che si tenti di eseguire troppe operazioni contemporaneamente. Le organizzazioni di grandi dimensioni potrebbero voler dividere alcune di queste operazioni di PowerShell in due comandi.
Ad esempio, il comando seguente restituisce tutti gli account utente e mostra il nome e la posizione per ognuno di essi:
Get-MgUser -All | Select DisplayName, UsageLocation
Questa operazione funziona perfettamente per i domini più piccoli. In un'organizzazione di grandi dimensioni, tuttavia, è possibile suddividere l'operazione in due comandi: un comando per archiviare le informazioni sull'account utente in una variabile e un altro per visualizzare le informazioni necessarie. Ecco un esempio:
$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation
L'interpretazione di questo set di comandi di PowerShell è:
- Ottenere tutti gli utenti nella sottoscrizione corrente di Microsoft 365 e archiviare le informazioni in una variabile denominata $x ($x = Get-MgUser).
- Visualizzare il contenuto della variabile $x, ma includere solo il nome e la posizione per ogni utente ($x | Selezionare DisplayName, UsageLocation.
Microsoft 365 include funzionalità che è possibile configurare solo con PowerShell per Microsoft 365
L'interfaccia di amministrazione di Microsoft 365 ha lo scopo di fornire l'accesso a attività amministrative comuni e utili che si applicano alla maggior parte degli ambienti. In altre parole, l'interfaccia di amministrazione di Microsoft 365 è stata progettata in modo che l'amministratore tipico possa eseguire le attività di gestione più comuni. Tuttavia, alcune attività non possono essere eseguite nell'interfaccia di amministrazione.
Ad esempio, l'interfaccia di amministrazione di Skype for Business Online offre alcune opzioni per la creazione di inviti alle riunioni personalizzati:
Con queste impostazioni, è possibile aggiungere un tocco di personalizzazione e professionalità alle convocazioni di riunioni. Tuttavia, le impostazioni di configurazione delle riunioni non si limitano a creare inviti alle riunioni personalizzati. Ad esempio, per impostazione predefinita le riunioni consentono:
A utenti anonimi di ottenere l'ingresso automatico a ogni riunione.
Ai partecipanti di registrare una riunione.
A tutti gli utenti dell'organizzazione di essere designati come relatori quando partecipano a riunione.
Queste impostazioni non sono disponibili nell'interfaccia di amministrazione di Skype for Business Online. È possibile controllarli da PowerShell per Microsoft 365. Ecco un comando che disabilita queste tre impostazioni:
Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"
Nota
Per eseguire questo comando, è necessario installare il modulo PowerShell di Skype for Business Online.
L'interpretazione di questo comando di PowerShell è:
- Nelle impostazioni per le nuove riunioni di Skype for Business Online (Set-CsMeetingConfiguration) disabilitare la possibilità per gli utenti anonimi di accedere automaticamente alle riunioni (-AdmitAnonymousUsersByDefault $False).
- Disabilitare la possibilità per i partecipanti di registrare le riunioni (-AllowConferenceRecording $False).
- Non designare tutti gli utenti dell'organizzazione come relatori (-DesignateAsPresenter "None").
Per ripristinare queste impostazioni predefinite (abilitare le opzioni), eseguire questo comando:
Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"
Esistono anche altri scenari simili, motivo per cui gli amministratori devono sapere come eseguire i comandi di PowerShell per Microsoft 365.
PowerShell per Microsoft 365 è ideale per le operazioni in blocco
Le interfacce visive come l'interfaccia di amministrazione di Microsoft 365 sono particolarmente utili quando si dispone di una singola operazione da eseguire. Ad esempio, se è necessario disabilitare un account utente, è possibile usare l'interfaccia di amministrazione per individuare e deselezionare rapidamente una casella di controllo. Questa operazione può essere più semplice rispetto all'esecuzione di un'operazione simile in PowerShell.
Ma se è necessario modificare molti elementi o alcuni elementi selezionati all'interno di un ampio set di altri elementi, l'interfaccia di amministrazione di Microsoft 365 potrebbe non essere lo strumento migliore. Ad esempio, si supponga di dover modificare il prefisso in migliaia di numeri di telefono o rimuovere l'utente specifico Ken Myer da tutti i siti di SharePoint. Come si farebbe nell'interfaccia di amministrazione di Microsoft 365?
Per l'ultimo esempio, si supponga di avere diverse centinaia di siti di SharePoint e di non sapere di quali è membro Ken Meyer. È necessario iniziare dall'interfaccia di amministrazione di Microsoft 365 e quindi eseguire questa procedura per ogni sito:
Selezionare l'URL del sito.
Nella casella delle proprietà della raccolta siti selezionare il collegamento Indirizzo sito Web per aprire il sito.
Nel sito selezionare Condividi.
Nella finestra di dialogo Condividi selezionare il collegamento che mostra tutti gli utenti che dispongono delle autorizzazioni per il sito:
Nella finestra di dialogo Condiviso con selezionare Avanzate.
Scorrere verso il basso l'elenco degli utenti, trovare e selezionare Ken Myer (supponendo che disponga delle autorizzazioni per il sito) e quindi selezionare Rimuovi autorizzazioni utente.
Ciò richiederebbe molto tempo per diverse centinaia di siti.
L'alternativa consiste nell'eseguire il comando seguente in PowerShell per Microsoft 365 per rimuovere Ken Myer da tutti i siti:
Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}
Nota
Questo comando richiede l'installazione del modulo PowerShell di SharePoint.
L'interpretazione di questo comando di PowerShell è: Ottenere tutti i siti di SharePoint nella sottoscrizione corrente di Microsoft 365 (Get-SPOSite) e per ogni sito rimuovere Ken Meyer dall'elenco di utenti che possono accederci (ForEach {Remove-SPOUser -Site $_. Url -LoginName "kenmyer@litwareinc.com"}).
Microsoft comunica a Microsoft 365 di rimuovere Ken Meyer da ogni sito, inclusi quelli a cui non ha accesso. I risultati mostreranno quindi errori per i siti a cui non ha accesso. È possibile usare una condizione aggiuntiva per questo comando per rimuovere Ken Meyer solo dai siti che lo hanno incluso nell'elenco di accesso. Ma gli errori restituiti non causano alcun danno ai siti stessi. L'esecuzione di questo comando su centinaia di siti potrebbe richiedere alcuni minuti, anziché ore di lavoro nell'interfaccia di amministrazione di Microsoft 365.
Ecco un altro esempio di operazione bulk. Usare questo comando per aggiungere Bonnie Kearney, un nuovo amministratore di SharePoint, a tutti i siti dell'organizzazione:
Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}
L'interpretazione di questo comando di PowerShell è: Ottenere tutti i siti di SharePoint nella sottoscrizione corrente di Microsoft 365 e per ogni sito consentire l'accesso a Bonnie Kearney aggiungendo il nome di accesso al gruppo Membri del sito (ForEach {Add-SPOUser -Site $_. URL -LoginName "bkearney@litwareinc.com" -Group "Members"}).
PowerShell per Microsoft 365 è ideale per filtrare i dati
L'interfaccia di amministrazione di Microsoft 365 offre diversi modi per filtrare i dati per individuare facilmente un subset di informazioni di destinazione. Ad esempio, Exchange facilita il filtro di qualsiasi proprietà relativa alla cassetta postale di un utente. Ad esempio, ecco l'elenco delle cassette postali per tutti gli utenti che vivono nella città di Bloomington:
L'interfaccia di amministrazione di Exchange consente anche di combinare i criteri di filtro. Ad esempio, è possibile trovare le cassette postali per tutte le persone che vivono a Bloomington e lavorano nel reparto Finanze.
Esistono tuttavia limitazioni alle operazioni che è possibile eseguire nell'interfaccia di amministrazione di Exchange. Ad esempio, non è stato possibile trovare facilmente le cassette postali delle persone che vivono a Bloomington o San Diego o le cassette postali per tutte le persone che non vivono a Bloomington.
È possibile usare il comando di PowerShell seguente per Microsoft 365 per ottenere un elenco di cassette postali per tutte le persone che risiedono a Bloomington o San Diego:
Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City
Ecco un esempio dei risultati:
DisplayName City
----------- ----
Alex Darrow San Diego
Bonnie Kearney San Diego
Julian Isla Bloomington
Rob Young Bloomington
L'interpretazione di questo comando di PowerShell è: Ottenere tutti gli utenti dell'attuale sottoscrizione di Microsoft 365 che hanno una cassetta postale nella città di San Diego o Bloomington (dove {$_. RecipientTypeDetails -eq "UserMailbox" -and ($_. City -eq "San Diego" -or $_. City -eq "Bloomington")}), quindi visualizzare il nome e la città per ognuno (Selezionare DisplayName, City).
Ecco il comando per elencare tutte le cassette postali per le persone che vivono ovunque tranne Bloomington:
Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City
Ecco un esempio dei risultati:
DisplayName City
----------- ----
MOD Administrator Redmond
Alex Darrow San Diego
Allie Bellew Bellevue
Anne Wallace Louisville
Aziz Hassouneh Cairo
Belinda Newman Charlotte
Bonnie Kearney San Diego
David Longmuir Waukesha
Denis Dehenne Birmingham
Garret Vargas Seattle
Garth Fort Tulsa
Janet Schorr Bellevue
L'interpretazione di questo comando di PowerShell è: Ottenere tutti gli utenti dell'attuale sottoscrizione di Microsoft 365 che hanno una cassetta postale non situata nella città di Bloomington (dove {$_. RecipientTypeDetails -eq "UserMailbox" -and $_. City -ne "Bloomington"}), quindi visualizzare il nome e la città per ognuno.
Usare caratteri jolly
È anche possibile usare caratteri jolly nei filtri di PowerShell per trovare una corrispondenza con parte di un nome. Si supponga, ad esempio, di cercare un account utente. Tutto quello che si può ricordare è che il cognome dell'utente era Anderson o forse Henderson o Jorgenson.
È possibile tenere traccia di tale utente nell'interfaccia di amministrazione di Microsoft 365 usando lo strumento di ricerca ed eseguendo tre diverse ricerche:
Una per Anderson
Una per Henderson
Una per Jorgenson
Poiché tutti e tre questi nomi terminano con "figlio", è possibile indicare a PowerShell di visualizzare tutti gli utenti il cui nome termina con "figlio". Ecco il comando:
Get-User -Filter '{LastName -like "*son"}'
L'interpretazione di questo comando di PowerShell è: ottenere tutti gli utenti nella sottoscrizione corrente di Microsoft 365, ma usare un filtro che elenca solo gli utenti i cui cognome terminano con "son" (-Filter '{LastName -like "*son"}'). * indica qualsiasi set di caratteri, ovvero lettere nel cognome dell'utente.
PowerShell per Microsoft 365 semplifica la stampa o il salvataggio dei dati
L'interfaccia di amministrazione di Microsoft 365 consente di visualizzare gli elenchi di dati. Ecco un esempio dell'interfaccia di amministrazione di Skype for Business Online che mostra un elenco di utenti abilitati per Skype for Business Online:
Per salvare tali informazioni in un file, è necessario incollarle in un documento o in un foglio di lavoro di Microsoft Excel. Entrambi i casi potrebbero richiedere formattazione aggiuntiva. Inoltre, l'interfaccia di amministrazione di Microsoft 365 non offre un modo per stampare direttamente l'elenco visualizzato.
Fortunatamente, è possibile usare PowerShell non solo per visualizzare l'elenco, ma anche per salvarlo in un file che può essere facilmente importato in Excel. Di seguito è riportato un comando di esempio per salvare i dati utente di Skype for Business Online in un file con valori delimitati da virgole (CSV), che può quindi essere facilmente importato come tabella in un foglio di lavoro di Excel:
Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation
Ecco un esempio dei risultati:
L'interpretazione di questo comando di PowerShell è: Ottenere tutti gli utenti di Skype for Business Online nell'attuale sottoscrizione di Microsoft 365 (Get-CsOnlineUser); ottenere solo il nome utente, l'UPN e il percorso (selezionare DisplayName, UserPrincipalName, UsageLocation); e quindi salvare tali informazioni in un file CSV denominato C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).
È anche possibile usare le opzioni per salvare l'elenco come file XML o pagina HTML. Infatti, con altri comandi di PowerShell, è possibile salvarlo direttamente come file di Excel, con qualsiasi formattazione personalizzata desiderata.
È anche possibile inviare l'output di un comando di PowerShell che visualizza un elenco direttamente alla stampante predefinita in Windows. Ecco un comando di esempio:
Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer
Di seguito, è riportato l'aspetto del documento stampato:
L'interpretazione di questo comando di PowerShell è: Ottenere tutti gli utenti di Skype for Business Online nell'attuale sottoscrizione di Microsoft 365; ottenere solo il nome utente, l'UPN e la posizione; e quindi inviare tali informazioni alla stampante Windows predefinita (Out-Printer).
Il documento stampato ha la stessa formattazione semplice della visualizzazione nella finestra di comando di PowerShell. Per ottenere una copia cartacea, è sufficiente aggiungere | Out-Printer alla fine del comando.
PowerShell per Microsoft 365 consente di gestire i prodotti server
I componenti che costituiscono Microsoft 365 sono progettati per funzionare insieme. Si supponga, ad esempio, di aggiungere un nuovo utente a Microsoft 365 e di specificare tali informazioni, ad esempio il reparto e il numero di telefono dell'utente. Tali informazioni saranno quindi disponibili se si accede alle informazioni dell'utente in uno dei servizi di Microsoft 365: Skype for Business Online, Exchange o SharePoint.
Si tratta di informazioni generali che interessano la famiglia di prodotti. Le informazioni specifiche del prodotto, ad esempio le informazioni sulla cassetta postale di Exchange di un utente, non sono in genere disponibili nella suite. Ad esempio, le informazioni relative all'abilitazione o meno della cassetta postale di un utente sono disponibili solo nell'interfaccia di amministrazione di Exchange.
Si supponga di voler creare un report che mostra le seguenti informazioni per tutti gli utenti:
Nome visualizzato dell'utente
Indica se l'utente ha una licenza per Microsoft 365
L'abilitazione della cassetta postale di Exchange dell'utente.
L'abilitazione per Skype for Business online dell'utente
Non è possibile produrre facilmente un report di questo tipo nell'interfaccia di amministrazione di Microsoft 365. È invece necessario creare un documento separato per archiviare le informazioni, ad esempio un foglio di lavoro di Excel. Ottenere quindi tutti i nomi utente e le informazioni sulle licenze dall'interfaccia di amministrazione di Microsoft 365, ottenere le informazioni sulla cassetta postale dall'interfaccia di amministrazione di Exchange, ottenere informazioni su Skype for Business Online dall'interfaccia di amministrazione di Skype for Business Online e quindi combinare tali informazioni.
L'alternativa consiste nell'usare uno script di PowerShell per compilare il report.
Lo script di esempio seguente è più complicato dei comandi visualizzati finora in questo articolo. Tuttavia, mostra il potenziale dell'uso di PowerShell per creare visualizzazioni di informazioni difficili da ottenere in caso contrario. Ecco lo script per compilare e visualizzare l'elenco necessario:
Connect-MgGraph -Scopes "User.ReadBasic.All"
$x = Get-MgUser -All
foreach ($i in $x)
{
$y = Get-Mailbox -Identity $i.UserPrincipalName
$i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled
$y = Get-CsOnlineUser -Identity $i.UserPrincipalName
$i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled
}
$x | Select DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB
Ecco un esempio dei risultati:
DisplayName IsLicensed IsMailboxEnabled EnabledForSfB
----------- ---------- ---------------- --------------
Bonnie Kearney True True True
Fabrice Canel True True True
Brian Johnson False True False
Anne Wallace True True True
Alex Darrow True True True
David Longmuir True True True
Katy Jordan False True False
Molly Dempsey False True False
L'interpretazione di questo script di PowerShell è:
- Ottenere tutti gli utenti nella sottoscrizione corrente di Microsoft 365 e archiviare le informazioni in una variabile denominata $x ($x = Get-MgUser).
- Avviare un ciclo che viene eseguito su tutti gli utenti nella variabile $x (foreach ($i in $x)).
- Definire una variabile denominata $y e archiviarle le informazioni sulla cassetta postale dell'utente ($y = Get-Mailbox -Identity $i.UserPrincipalName).
- Aggiungere una nuova proprietà alle informazioni utente denominate IsMailBoxEnabled. Impostarlo sul valore della proprietà IsMailBoxEnabled della cassetta postale dell'utente ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
- Definire una variabile denominata $y e archiviarle le informazioni di Skype for Business Online dell'utente ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
- Aggiungere una nuova proprietà alle informazioni utente denominate EnabledForSfB. Impostarlo sul valore della proprietà Enabled delle informazioni di Skype for Business Online dell'utente ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
- Visualizzare l'elenco degli utenti, ma includere solo il nome, la licenza e le due nuove proprietà che indicano se la cassetta postale è abilitata e se è abilitata per Skype for Business Online ($x | Selezionare DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB).
Vedere anche
Guida introduttiva a PowerShell per Microsoft 365
Gestire gli account utente, le licenze e i gruppi di Microsoft 365 con PowerShell