Varför du behöver använda PowerShell för Microsoft 365

Denna artikel gäller för både Microsoft 365 Enterprise och Office 365 Enterprise.

Med Administrationscenter för Microsoft 365 kan du hantera dina Microsoft 365-användarkonton och licenser. Du kan också hantera dina Microsoft 365-tjänster, till exempel Exchange Online, Teams och SharePoint. Om du i stället använder PowerShell för att hantera dessa tjänster kan du använda kommandorads- och skriptspråkmiljön för hastighet, automatisering och ytterligare funktioner.

Obs!

Azure Active Directory-modulen ersätts av Microsoft Graph PowerShell SDK. Du kan använda Microsoft Graph PowerShell SDK för att komma åt alla Microsoft Graph API:er. Mer information finns i Komma igång med Microsoft Graph PowerShell SDK. Vissa PowerShell för Microsoft 365-kommandon i den här artikeln har uppdaterats för att använda Microsoft Graph PowerShell.

Den här artikeln visar hur du använder PowerShell för att hantera Microsoft 365 för att:

  • Visa ytterligare information som du inte kan se i Administrationscenter för Microsoft 365

  • Konfigurera funktioner och inställningar som endast är möjliga med PowerShell

  • Utföra massåtgärder

  • Filtrera data

  • Skriva ut eller spara data

  • Hantera mellan tjänster

Tänk på att PowerShell för Microsoft 365 är en uppsättning moduler för Windows PowerShell, som är en kommandoradsmiljö för Windows-baserade tjänster och plattformar. Den här miljön skapar ett kommandogränssnittsspråk som kan utökas med ytterligare moduler. Det ger ett sätt att köra enkla eller komplexa kommandon eller skript. När du till exempel har installerat PowerShell för Microsoft 365-moduler och anslutit till din Microsoft 365-prenumeration kan du köra följande kommando för att visa alla användarpostlådor för Microsoft Exchange Online:

Get-Mailbox

Du kan också hämta listan över postlådor med hjälp av Administrationscenter för Microsoft 365 men det är inte lätt att räkna objekten i alla listor för alla webbplatser för alla dina webbappar.

PowerShell för Microsoft 365 är utformat för att hjälpa dig att hantera Microsoft 365, inte för att ersätta Administrationscenter för Microsoft 365. Administratörer måste kunna använda PowerShell för Microsoft 365 eftersom det finns vissa konfigurationsprocedurer som bara kan göras via PowerShell för Microsoft 365-kommandon. I dessa fall måste du veta hur du:

  • Installera PowerShell för Microsoft 365-moduler (görs bara en gång för varje administratörsdator).

  • Anslut till din Microsoft 365-prenumeration (en gång för varje PowerShell-session).

  • Samla in den information som behövs för att köra nödvändiga PowerShell-kommandon för Microsoft 365.

  • Kör PowerShell för Microsoft 365-kommandon.

När du har lärt dig dessa grundläggande kunskaper behöver du inte lista postlådeanvändare med hjälp av kommandot Get-Mailbox . Du behöver inte heller förstå hur du skapar ett nytt kommando som det kommando som angavs tidigare för att räkna alla objekt i alla listor för alla webbplatser för alla dina webbappar. Microsoft och communityn med administratörer kan hjälpa dig med sådana uppgifter efter behov.

PowerShell för Microsoft 365 kan visa information som du inte kan se med Administrationscenter för Microsoft 365

Administrationscenter för Microsoft 365 visar mycket användbar information, men den visar inte all information som Microsoft 365 lagrar om användare, licenser, postlådor och webbplatser. Här är ett exempel för användare och grupper i Administrationscenter för Microsoft 365:

Exempel på visning av användare och grupper i Administrationscenter för Microsoft 365.

Den här vyn innehåller den information som du behöver i många fall. Det finns dock tillfällen då du behöver mer. Microsoft 365-licensiering (och Microsoft 365-funktionerna som är tillgängliga för en användare) beror till exempel delvis på användarens geografiska plats. De principer och funktioner som du kan utöka till en användare som bor i USA kanske inte är samma som de som du kan utöka till en användare i Indien eller Belgien. Följ de här stegen i Administrationscenter för Microsoft 365 för att fastställa en användares geografiska plats:

  1. Dubbelklicka på användarens visningsnamn.

  2. I visningsfönstret för användaregenskaper väljer du information.

  3. I informationsvisningen väljer du ytterligare information.

  4. Rulla tills du hittar rubriken Land eller region:

    Exempel på regioninformation för en användare i Administrationscenter för Microsoft 365.

  5. Skriv användarens visningsnamn och plats på ett papper eller kopiera och klistra in det i Anteckningar.

Du måste upprepa den här proceduren för varje användare. Om du har många användare kan den här processen vara omständlig. Med PowerShell kan du visa den här informationen för alla användare med hjälp av följande kommandon.

Obs!

Azure Active Directory-modulen ersätts av Microsoft Graph PowerShell SDK. Du kan använda Microsoft Graph PowerShell SDK för att komma åt alla Microsoft Graph API:er. Mer information finns i Komma igång med Microsoft Graph PowerShell SDK.

Använd först ett Microsoft Entra DC-administratör, molnprogram Admin eller ett globalt administratörskonto för att ansluta till din Microsoft 365-klientorganisation.

För att få information för en användare krävs behörighetsomfånget User.ReadBasic.All eller någon av de andra behörigheterna som anges på referenssidan "Tilldela licens" Graph API.

Behörighetsomfånget Organization.Read.All krävs för att läsa de licenser som är tillgängliga i klientorganisationen.

Obs!

Azure AD- och MSOnline PowerShell-modulerna är inaktuella från och med den 30 mars 2024. Mer information finns i utfasningsuppdateringen. Efter det här datumet är stödet för dessa moduler begränsat till migreringshjälp till Microsoft Graph PowerShell SDK och säkerhetskorrigeringar. De inaktuella modulerna fortsätter att fungera till och med den 30 mars 2025.

Vi rekommenderar att du migrerar till Microsoft Graph PowerShell för att interagera med Microsoft Entra ID (tidigare Azure AD). Vanliga migreringsfrågor finns i Vanliga frågor och svar om migrering. Observera: Version 1.0.x av MSOnline kan uppleva störningar efter den 30 juni 2024.

Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation

Här är ett exempel på resultatet:

DisplayName                               UsageLocation
-----------                               -------------
Bonnie Kearney                            GB
Fabrice Canel                             BR
Brian Johnson (TAILSPIN)                  US
Anne Wallace                              US
Alex Darrow                               US
David Longmuir                            BR

Tolkningen av det här PowerShell-kommandot är: Hämta alla användare i den aktuella Microsoft 365-prenumerationen (Get-MgUser), men visa bara namn och plats för varje användare (Välj DisplayName, UsageLocation).

Eftersom PowerShell för Microsoft 365 stöder ett kommandogränssnittsspråk kan du ytterligare ändra informationen som hämtas av kommandot Get-MgUser . Du kanske till exempel vill sortera dessa användare efter deras plats, gruppera alla brasilianska användare tillsammans, alla USA användare tillsammans och så vidare. Här är kommandot:

Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName

Här är ett exempel på resultatet:

DisplayName                                 UsageLocation
-----------                                 -------------
David Longmuir                              BR
Fabrice Canel                               BR
Bonnie Kearney                              GB
Alex Darrow                                 US
Anne Wallace                                US
Brian Johnson (TAILSPIN)                    US

Tolkningen av det här PowerShell-kommandot är: Hämta alla användare i den aktuella Microsoft 365-prenumerationen, men visa bara namn och plats för varje användare och sortera dem först efter deras plats och sedan deras namn (Sort UsageLocation, DisplayName).

Du kan också använda ytterligare filtrering. Om du till exempel bara vill se information om användare som är baserade i Brasilien använder du det här kommandot:

Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country 

Här är ett exempel på resultatet:

DisplayName                                           UsageLocation
-----------                                           -------------
David Longmuir                                        BR
Fabrice Canel                                         BR

Tolkningen av det här PowerShell-kommandot är: Hämta alla användare i den aktuella Microsoft 365-prenumerationen vars plats är Brasilien (där {$_. UsageLocation -eq "BR"}) och visa sedan namn och plats för varje användare.

En anteckning om stora domäner

Om du har en stor domän med tiotusentals användare kan några av exemplen som vi visar i den här artikeln leda till begränsningar. Baserat på faktorer som beräkningskraft och tillgänglig nätverksbandbredd kanske du försöker göra för mycket åt gången. Stora organisationer kanske vill dela upp några av dessa PowerShell-åtgärder i två kommandon.

Följande kommando returnerar till exempel alla användarkonton och visar namn och plats för var och en:

Get-MgUser -All | Select DisplayName, UsageLocation

Det fungerar bra för mindre domäner. Men i en stor organisation kanske du vill dela upp åtgärden i två kommandon: ett kommando för att lagra användarkontoinformationen i en variabel och en annan för att visa nödvändig information. Här är ett exempel:

$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation

Tolkningen av den här uppsättningen PowerShell-kommandon är:

  1. Hämta alla användare i den aktuella Microsoft 365-prenumerationen och lagra informationen i en variabel med namnet $x ($x = Get-MgUser).
  2. Visa innehållet i variabeln $x, men inkludera bara namn och plats för varje användare ($x | Välj DisplayName, UsageLocation).

Microsoft 365 har funktioner som du bara kan konfigurera med PowerShell för Microsoft 365

Den Administrationscenter för Microsoft 365 är avsedd att ge åtkomst till vanliga, användbara administrativa uppgifter som gäller för de flesta miljöer. Med andra ord utformades Administrationscenter för Microsoft 365 så att den typiska administratören kan utföra de vanligaste hanteringsuppgifterna. Men det finns vissa uppgifter som inte kan utföras i administrationscentret.

Administrationscentret för Skype för företag Online innehåller till exempel några alternativ för att skapa anpassade mötesinbjudningar:

Exempel på visning av anpassade mötesinbjudningar i Skype för företag Online Admin center.

Med de här inställningarna kan du lägga till en touch av anpassning och professionalism i mötesinbjudningar. Men det finns mer i inställningar för möteskonfiguration än att bara skapa anpassade mötesinbjudningar. Till exempel tillåter möten som standard:

  • Anonyma användare för att få automatisk entré till varje möte.

  • Deltagare för att spela in mötet.

  • Alla användare från din organisation som ska utses till presentatörer när de ansluter till mötet.

De här inställningarna är inte tillgängliga från administrationscentret för Skype för företag Online. Du kan styra dem från PowerShell för Microsoft 365. Här är ett kommando som inaktiverar dessa tre inställningar:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"

Obs!

Om du vill köra det här kommandot måste du installera Skype för företag Online PowerShell-modulen.

Tolkningen av det här PowerShell-kommandot är:

  1. I inställningarna för nya Skype för företag Online-möten (Set-CsMeetingConfiguration) inaktiverar du så att anonyma användare kan få automatisk ingång till möten (-AdmitAnonymousUsersByDefault $False).
  2. Inaktivera möjligheten för deltagare att spela in möten (-AllowConferenceRecording $False).
  3. Ange inte alla användare från din organisation som presentatörer (-DesignateAsPresenter "None").

Om du vill återställa dessa standardinställningar (aktivera alternativen) kör du det här kommandot:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"

Det finns även andra liknande scenarier, vilket är anledningen till att administratörer bör veta hur de kör PowerShell för Microsoft 365-kommandon.

PowerShell för Microsoft 365 är perfekt för massåtgärder

Visuella gränssnitt som Administrationscenter för Microsoft 365 är mest värdefulla när du har en enda åtgärd att utföra. Om du till exempel behöver inaktivera ett användarkonto kan du använda administrationscentret för att snabbt hitta och avmarkera en kryssruta. Detta kan vara enklare än att utföra en liknande åtgärd i PowerShell.

Men om du behöver ändra många saker eller vissa valda saker i en stor uppsättning andra saker kanske Administrationscenter för Microsoft 365 inte är det bästa verktyget. Anta till exempel att du måste ändra prefixet på tusentals telefonnummer eller ta bort den specifika användaren Ken Myer från alla dina SharePoint-webbplatser. Hur skulle du göra det i Administrationscenter för Microsoft 365?

I det sista exemplet kan du säga att du har flera hundra SharePoint-webbplatser och att du inte vet vilka Ken Meyer är medlem i. Du måste börja vid Administrationscenter för Microsoft 365 och sedan utföra den här proceduren för varje plats:

  1. Välj webbplatsens URL .

  2. I rutan Egenskaper för webbplatssamling väljer du länken Webbplatsadress för att öppna webbplatsen.

  3. På webbplatsen väljer du Dela.

  4. I dialogrutan Dela väljer du länken som visar alla användare som har behörighet till webbplatsen:

    Exempel på att visa medlemmarna på en SharePoint-webbplats i SharePoint Admin center.

  5. I dialogrutan Delat med väljer du Avancerat.

  6. Rulla ned listan över användare, leta upp och välj Ken Myer (förutsatt att han har behörighet till webbplatsen) och välj sedan Ta bort användarbehörigheter.

Detta skulle ta lång tid för flera hundra platser.

Alternativet är att köra följande kommando i PowerShell för Microsoft 365 för att ta bort Ken Myer från alla dina webbplatser:

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}

Obs!

Det här kommandot kräver att du installerar SharePoint PowerShell-modulen.

Tolkningen av det här PowerShell-kommandot är: Hämta alla SharePoint-webbplatser i den aktuella Microsoft 365-prenumerationen (Get-SPOSite) och för varje webbplats tar du bort Ken Meyer från listan över användare som kan komma åt den (ForEach {Remove-SPOUser -Site $_. Url -LoginName "kenmyer@litwareinc.com"}).

Vi säger till Microsoft 365 att ta bort Ken Meyer från varje webbplats, inklusive de som han inte har åtkomst till. Resultatet visar därför fel för de webbplatser som han inte har åtkomst till. Vi kan använda ytterligare ett villkor för det här kommandot för att ta bort Ken Meyer endast från de platser som har honom på deras inloggningslista. Men de fel som returneras orsakar ingen skada för själva webbplatserna. Det här kommandot kan ta några minuter att köra mot hundratals platser, i stället för timmar av arbete genom Administrationscenter för Microsoft 365.

Här är ett annat exempel på massåtgärder. Använd det här kommandot för att lägga till Bonnie Kearney, en ny SharePoint-administratör, på alla webbplatser i organisationen:

Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}

Tolkningen av det här PowerShell-kommandot är: Hämta alla SharePoint-webbplatser i den aktuella Microsoft 365-prenumerationen och för varje webbplats tillåter Bonnie Kearney åtkomst genom att lägga till hennes inloggningsnamn i gruppen Medlemmar på webbplatsen (ForEach {Add-SPOUser -Site $_. Url -LoginName "bkearney@litwareinc.com" -Group "Members"}).

PowerShell för Microsoft 365 är bra på att filtrera data

I Administrationscenter för Microsoft 365 finns flera sätt att filtrera dina data för att enkelt hitta en riktad delmängd av informationen. Exchange gör det till exempel enkelt att filtrera på praktiskt taget alla egenskaper för en användarpostlåda. Här är till exempel listan över postlådor för alla användare som bor i staden Bloomington:

Exempel på avancerad sökning i Administrationscenter för Microsoft 365 för listan över postlådor för alla användare som bor i staden Bloomington.

Med administrationscentret för Exchange kan du också kombinera filterkriterier. Du kan till exempel hitta postlådorna för alla personer som bor i Bloomington och arbeta på ekonomiavdelningen.

Det finns dock begränsningar för vad du kan göra i Exchange Admin center. Du kunde till exempel inte lika enkelt hitta postlådorna för personer som bor i Bloomington eller San Diego, eller postlådorna för alla som inte bor i Bloomington.

Du kan använda följande PowerShell för Microsoft 365-kommando för att hämta en lista över postlådor för alla personer som bor i Bloomington eller San Diego:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City

Här är ett exempel på resultatet:

DisplayName                              City
-----------                              ----
Alex Darrow                              San Diego
Bonnie Kearney                           San Diego
Julian Isla                              Bloomington
Rob Young                                Bloomington

Tolkningen av det här PowerShell-kommandot är: Hämta alla användare i den aktuella Microsoft 365-prenumerationen som har en postlåda i staden San Diego eller Bloomington (där {$_. RecipientTypeDetails -eq "UserMailbox" - och ($_. Stad -eq "San Diego" -eller $_. Stad -eq "Bloomington")}) och visa sedan namn och stad för varje (Välj DisplayName, Stad).

Och här är kommandot för att lista alla postlådor för personer som bor var som helst utom Bloomington:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City

Här är ett exempel på resultatet:

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

Tolkningen av det här PowerShell-kommandot är: Hämta alla användare i den aktuella Microsoft 365-prenumerationen som har en postlåda som inte finns i staden Bloomington (där {$_. RecipientTypeDetails -eq "UserMailbox" - och $_. Stad -ne "Bloomington"}) och visa sedan namn och stad för var och en.

Använda jokertecken

Du kan också använda jokertecken i Dina PowerShell-filter för att matcha en del av ett namn. Anta till exempel att du letar efter ett användarkonto. Allt du kan komma ihåg är att användarens efternamn var Anderson eller kanske Henderson eller Jorgenson.

Du kan spåra användaren i Administrationscenter för Microsoft 365 med hjälp av sökverktyget och utföra tre olika sökningar:

  • En för Anderson

  • En för Henderson

  • En för Jorgenson

Eftersom alla tre namnen slutar med "son" kan du be PowerShell att visa alla användare vars namn slutar på "son". Här är kommandot:

Get-User -Filter '{LastName -like "*son"}'

Tolkningen av det här PowerShell-kommandot är: Hämta alla användare i den aktuella Microsoft 365-prenumerationen, men använd ett filter som endast visar de användare vars efternamn slutar med "son" (-Filtrera {LastName -like "*son"}). * står för alla teckenuppsättningar, som är bokstäver i användarens efternamn.

PowerShell för Microsoft 365 gör det enkelt att skriva ut eller spara data

Med Administrationscenter för Microsoft 365 kan du visa listor med data. Här är ett exempel på administrationscentret för Skype för företag Online som visar en lista över användare som har aktiverats för Skype för företag Online:

Exempel på Skype för företag Online Admin center som visar en lista över användare som har aktiverats för Skype för företag Online.

Om du vill spara informationen i en fil måste du klistra in den i ett dokument eller Microsoft Excel-kalkylblad. Båda fallen kan kräva ytterligare formatering. Dessutom ger Administrationscenter för Microsoft 365 inte något sätt att skriva ut den visade listan direkt.

Som tur är kan du använda PowerShell för att inte bara visa listan utan även spara den i en fil som enkelt kan importeras till Excel. Här är ett exempelkommando för att spara Skype för företag Online-användardata till en fil med kommaavgränsade värden (CSV), som sedan enkelt kan importeras som en tabell i ett Excel-kalkylblad:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation

Här är ett exempel på resultatet:

Exempel på en tabell som importerats till ett Excel-kalkylblad för Skype för företag Online-användardata som har sparats i en fil med kommaavgränsade värden.

Tolkningen av det här PowerShell-kommandot är: Hämta alla Skype för företag Online-användare i den aktuella Microsoft 365-prenumerationen (Get-CsOnlineUser); hämta endast användarnamnet, UPN och platsen (Välj DisplayName, UserPrincipalName, UsageLocation) och spara sedan informationen i en CSV-fil med namnet C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

Du kan också använda alternativ för att spara den här listan som en XML-fil eller en HTML-sida. Med ytterligare PowerShell-kommandon kan du faktiskt spara det direkt som en Excel-fil, med valfri anpassad formatering.

Du kan också skicka utdata från ett PowerShell-kommando som visar en lista direkt till standardskrivaren i Windows. Här är ett exempel på ett kommando:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer

Så här kommer det utskrivna dokumentet att se ut:

Exempel på ett utskrivet dokument som var utdata från ett PowerShell-kommando som skickades direkt till standardskrivaren i Windows.

Tolkningen av det här PowerShell-kommandot är: Hämta alla Skype för företag Online-användare i den aktuella Microsoft 365-prenumerationen, hämta endast användarnamnet, UPN och platsen och skicka sedan informationen till windows-standardskrivaren (Out-Printer).

Det utskrivna dokumentet har samma enkla formatering som visningen i PowerShell-kommandofönstret. Om du vill hämta en papperskopia lägger du bara till | Out-Printer till slutet av kommandot.

Med PowerShell för Microsoft 365 kan du hantera flera serverprodukter

Komponenterna som utgör Microsoft 365 är utformade för att fungera tillsammans. Anta till exempel att du lägger till en ny användare i Microsoft 365 och anger sådan information som användarens avdelning och telefonnummer. Den informationen blir sedan tillgänglig om du kommer åt användarens information i någon av Microsoft 365-tjänsterna: Skype för företag Online, Exchange eller SharePoint.

Men det är för vanlig information som sträcker sig över produktsviten. Produktspecifik information, till exempel information om en användares Exchange-postlåda, är vanligtvis inte tillgänglig i hela sviten. Information om till exempel om en användares postlåda är aktiverad eller inte är endast tillgänglig i administrationscentret för Exchange.

Anta att du vill skapa en rapport som visar följande information för alla användare:

  • Användarens visningsnamn

  • Om användaren är licensierad för Microsoft 365

  • Om användarens Exchange-postlåda har aktiverats

  • Om användaren är aktiverad för Skype för företag Online

Du kan inte enkelt skapa en sådan rapport i Administrationscenter för Microsoft 365. I stället måste du skapa ett separat dokument för att lagra informationen, till exempel ett Excel-kalkylblad. Hämta sedan alla användarnamn och licensieringsinformation från Administrationscenter för Microsoft 365, hämta postlådeinformation från administrationscentret för Exchange, hämta Skype för företag Online-information från Skype för företag Online-Admin och kombinera den informationen.

Alternativet är att använda ett PowerShell-skript för att kompilera rapporten åt dig.

Följande exempelskript är mer komplicerat än de kommandon som du har sett hittills i den här artikeln. Men den visar potentialen med att använda PowerShell för att skapa informationsvyer som är svåra att få i annat fall. Här är skriptet för att kompilera och visa den lista som du behöver:

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

Här är ett exempel på resultatet:

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

Tolkningen av det här PowerShell-skriptet är:

  1. Hämta alla användare i den aktuella Microsoft 365-prenumerationen och lagra informationen i en variabel med namnet $x ($x = Get-MgUser).
  2. Starta en loop som körs över alla användare i variabeln $x (foreach ($i i $x)).
  3. Definiera en variabel med namnet $y och lagra användarens postlådeinformation i den ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. Lägg till en ny egenskap i användarinformationen med namnet IsMailBoxEnabled. Ange värdet för egenskapen IsMailBoxEnabled för användarens postlåda ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. Definiera en variabel med namnet $y och lagra användarens Skype för företag Online-information i den ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. Lägg till en ny egenskap i användarinformationen med namnet EnabledForSfB. Ange värdet för egenskapen Enabled för användarens Skype för företag Online-information ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. Visa listan över användare, men inkludera bara deras namn, om de är licensierade och de två nya egenskaperna som anger om deras postlåda är aktiverad och om de är aktiverade för Skype för företag Online ($x | Välj DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB).

Se även

Börja använda PowerShell för Microsoft 365

Hantera Microsoft 365-användarkonton,-licenser och-grupper med PowerShell

Använda Windows PowerShell för att skapa rapporter i Microsoft 365