Waarom u PowerShell voor Microsoft 365 moet gebruiken

Dit artikel is van toepassing op Microsoft 365 Enterprise en Office 365 Enterprise.

Met de Microsoft 365-beheercentrum kunt u uw Microsoft 365-gebruikersaccounts en -licenties beheren. U kunt ook uw Microsoft 365-services beheren, zoals Exchange Online, Teams en SharePoint. Als u in plaats daarvan PowerShell gebruikt om deze services te beheren, kunt u gebruikmaken van de opdrachtregel- en scripttaalomgeving voor snelheid, automatisering en aanvullende mogelijkheden.

Opmerking

De Azure Active Directory-module wordt vervangen door de Microsoft Graph PowerShell SDK. U kunt de Microsoft Graph PowerShell SDK gebruiken voor toegang tot alle Microsoft Graph API's. Zie Aan de slag met de Microsoft Graph PowerShell SDK voor meer informatie. Sommige PowerShell voor Microsoft 365-opdrachten in dit artikel zijn bijgewerkt voor het gebruik van Microsoft Graph PowerShell.

In dit artikel wordt beschreven hoe u PowerShell gebruikt om Microsoft 365 te beheren voor:

  • Aanvullende informatie weergeven die u niet kunt zien in de Microsoft 365-beheercentrum

  • Functies en instellingen configureren die alleen mogelijk zijn met PowerShell

  • Bulkbewerkingen uitvoeren

  • Gegevens filteren

  • Gegevens afdrukken of opslaan

  • Beheren tussen services

Houd er rekening mee dat PowerShell voor Microsoft 365 een set modules voor Windows PowerShell is. Dit is een opdrachtregelomgeving voor Windows-services en -platforms. In deze omgeving wordt een command-shell-taal gemaakt die kan worden uitgebreid met extra modules. Het biedt een manier om eenvoudige of complexe opdrachten of scripts uit te voeren. Nadat u bijvoorbeeld de PowerShell voor Microsoft 365-modules hebt geïnstalleerd en verbinding hebt gemaakt met uw Microsoft 365-abonnement, kunt u de volgende opdracht uitvoeren om alle gebruikerspostvakken voor Microsoft Exchange Online weer te geven:

Get-Mailbox

U kunt de lijst met postvakken ook ophalen met behulp van de Microsoft 365-beheercentrum, maar het tellen van de items in alle lijsten voor alle sites voor al uw web-apps is niet eenvoudig.

PowerShell voor Microsoft 365 is ontworpen om u te helpen bij het beheren van Microsoft 365, niet om de Microsoft 365-beheercentrum te vervangen. Beheerders moeten PowerShell voor Microsoft 365 kunnen gebruiken omdat er enkele configuratieprocedures zijn die alleen kunnen worden uitgevoerd via PowerShell voor Microsoft 365-opdrachten. Voor deze gevallen moet u weten hoe u het volgende kunt doen:

  • Installeer de PowerShell voor Microsoft 365-modules (slechts één keer voor elke beheerderscomputer).

  • Maak verbinding met uw Microsoft 365-abonnement (één keer voor elke PowerShell-sessie).

  • Verzamel de informatie die nodig is om de vereiste PowerShell voor Microsoft 365-opdrachten uit te voeren.

  • Voer PowerShell voor Microsoft 365-opdrachten uit.

Nadat u deze basisvaardigheden hebt geleerd, hoeft u uw postvakgebruikers niet meer te vermelden met behulp van de opdracht Get-Mailbox . U hoeft ook niet te begrijpen hoe u een nieuwe opdracht maakt zoals de eerder genoemde opdracht om alle items in alle lijsten voor alle sites voor al uw web-apps te tellen. Microsoft en de community van beheerders kunnen u zo nodig helpen met dergelijke taken.

PowerShell voor Microsoft 365 kan informatie onthullen die u niet kunt zien met de Microsoft 365-beheercentrum

De Microsoft 365-beheercentrum geeft veel nuttige informatie weer, maar niet alle mogelijke informatie die Microsoft 365 over gebruikers, licenties, postvakken en sites opslaat. Hier volgt een voorbeeld voor gebruikers en groepen in de Microsoft 365-beheercentrum:

Voorbeeld van de weergave van gebruikers en groepen in de Microsoft 365-beheercentrum.

Deze weergave bevat de informatie die u in veel gevallen nodig hebt. Er zijn echter momenten waarop u meer nodig hebt. Microsoft 365-licenties (en de Microsoft 365-functies die beschikbaar zijn voor een gebruiker) zijn bijvoorbeeld gedeeltelijk afhankelijk van de geografische locatie van de gebruiker. Het beleid en de functies die u kunt uitbreiden naar een gebruiker die in de Verenigde Staten woont, zijn mogelijk niet hetzelfde als de beleidsregels en functies die u kunt uitbreiden naar een gebruiker in India of België. Volg deze stappen in de Microsoft 365-beheercentrum om de geografische locatie van een gebruiker te bepalen:

  1. Dubbelklik op de weergavenaam van de gebruiker.

  2. Selecteer details in het weergavevenster gebruikerseigenschappen.

  3. Selecteer aanvullende details in de detailweergave.

  4. Schuif totdat u de kop Land of regio vindt:

    Voorbeeld van de regiogegevens voor een gebruiker in de Microsoft 365-beheercentrum.

  5. Schrijf de weergavenaam en locatie van de gebruiker op een vel papier of kopieer en plak deze in Kladblok.

U moet deze procedure voor elke gebruiker herhalen. Als u veel gebruikers hebt, kan dit proces omslachtig zijn. Met PowerShell kunt u deze informatie weergeven voor al uw gebruikers met behulp van de volgende opdrachten.

Opmerking

De Azure Active Directory-module wordt vervangen door de Microsoft Graph PowerShell SDK. U kunt de Microsoft Graph PowerShell SDK gebruiken voor toegang tot alle Microsoft Graph API's. Zie Aan de slag met de Microsoft Graph PowerShell SDK voor meer informatie.

Gebruik eerst een Microsoft Entra DC-beheerder, cloudtoepassingsaccount Beheer of globale beheerder om verbinding te maken met uw Microsoft 365-tenant.

Voor het ophalen van informatie voor een gebruiker is het machtigingsbereik User.ReadBasic.All of een van de andere machtigingen vereist die worden vermeld op de Graph API referentiepagina Licentie toewijzen.

Het machtigingsbereik Organization.Read.All is vereist om de licenties te lezen die beschikbaar zijn in de tenant.

Opmerking

Azure AD- en MSOnline PowerShell-modules zijn afgeschaft vanaf 30 maart 2024. Lees de afschaffingsupdate voor meer informatie. Na deze datum is ondersteuning voor deze modules beperkt tot hulp bij migratie naar Microsoft Graph PowerShell SDK en beveiligingspatches. De afgeschafte modules blijven functioneren tot en met 30 maart 2025.

U wordt aangeraden te migreren naar Microsoft Graph PowerShell om te communiceren met Microsoft Entra ID (voorheen Azure AD). Raadpleeg de veelgestelde vragen over migratie voor veelgestelde vragen over migratie. Opmerking: Versies 1.0.x van MSOnline kunnen na 30 juni 2024 worden onderbroken.

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

Hier volgt een voorbeeld van de resultaten:

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

De interpretatie van deze PowerShell-opdracht is: Alle gebruikers in het huidige Microsoft 365-abonnement ophalen (Get-MgUser), maar alleen de naam en locatie voor elke gebruiker weergeven (Selecteer DisplayName, UsageLocation).

Omdat PowerShell voor Microsoft 365 een command-shell-taal ondersteunt, kunt u de informatie die wordt verkregen door de opdracht Get-MgUser verder bewerken. Misschien wilt u deze gebruikers bijvoorbeeld sorteren op hun locatie, alle Braziliaanse gebruikers bij elkaar groeperen, alle Verenigde Staten gebruikers samen, enzovoort. Dit is de opdracht:

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

Hier volgt een voorbeeld van de resultaten:

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

De interpretatie van deze PowerShell-opdracht is: Haal alle gebruikers in het huidige Microsoft 365-abonnement op, maar geef alleen de naam en locatie voor elke gebruiker weer en sorteer ze eerst op hun locatie en vervolgens hun naam (Sort UsageLocation, DisplayName).

U kunt ook extra filters gebruiken. Als u bijvoorbeeld alleen informatie wilt zien over gebruikers in Brazilië, gebruikt u deze opdracht:

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

Hier volgt een voorbeeld van de resultaten:

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

De interpretatie van deze PowerShell-opdracht is: Haal alle gebruikers op in het huidige Microsoft 365-abonnement waarvan de locatie Brazilië is (waar {$_. UsageLocation -eq "BR"}) en vervolgens de naam en locatie voor elke gebruiker weergeven.

Een opmerking over grote domeinen

Als u een groot domein met tienduizenden gebruikers hebt, kan het proberen van enkele van de voorbeelden in dit artikel leiden tot beperking. Op basis van factoren zoals rekenkracht en beschikbare netwerkbandbreedte, probeert u mogelijk te veel tegelijk te doen. Grote organisaties willen sommige van deze PowerShell-bewerkingen mogelijk splitsen in twee opdrachten.

De volgende opdracht retourneert bijvoorbeeld alle gebruikersaccounts en toont de naam en locatie voor elke account:

Get-MgUser -All | Select DisplayName, UsageLocation

Dat werkt uitstekend voor kleinere domeinen. Maar in een grote organisatie wilt u die bewerking misschien opsplitsen in twee opdrachten: een opdracht om de gebruikersaccountgegevens op te slaan in een variabele en een andere om de benodigde informatie weer te geven. Hier volgt een voorbeeld:

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

De interpretatie van deze set PowerShell-opdrachten is:

  1. Haal alle gebruikers in het huidige Microsoft 365-abonnement op en sla de gegevens op in een variabele met de naam $x ($x = Get-MgUser).
  2. De inhoud van de variabele $x weergeven, maar alleen de naam en locatie voor elke gebruiker opnemen ($x | Selecteer DisplayName, UsageLocation).

Microsoft 365 heeft functies die u alleen kunt configureren met PowerShell voor Microsoft 365

De Microsoft 365-beheercentrum is bedoeld om toegang te bieden tot algemene, nuttige beheertaken die van toepassing zijn op de meeste omgevingen. Met andere woorden, de Microsoft 365-beheercentrum is zo ontworpen dat de typische beheerder de meest voorkomende beheertaken kan uitvoeren. Maar er zijn enkele taken die niet kunnen worden uitgevoerd in het beheercentrum.

Het Skype voor Bedrijven Online-beheercentrum biedt bijvoorbeeld enkele opties voor het maken van aangepaste uitnodigingen voor vergaderingen:

Voorbeeld van de weergave van aangepaste uitnodigingen voor vergaderingen in het Skype voor Bedrijven Online Beheer center.

Met deze instellingen kunt u een vleugje persoonlijke instellingen en professionaliteit toevoegen aan uitnodigingen voor vergaderingen. Maar er zijn meer instellingen voor de configuratie van vergaderingen dan alleen het maken van aangepaste uitnodigingen voor vergaderingen. Vergaderingen staan bijvoorbeeld standaard het volgende toe:

  • Anonieme gebruikers om automatisch toegang te krijgen tot elke vergadering.

  • Deelnemers om de vergadering op te nemen.

  • Alle gebruikers van uw organisatie moeten worden aangewezen als presentatoren wanneer ze deelnemen aan de vergadering.

Deze instellingen zijn niet beschikbaar in het Skype voor Bedrijven Online-beheercentrum. U kunt ze beheren vanuit PowerShell voor Microsoft 365. Hier volgt een opdracht waarmee deze drie instellingen worden uitgeschakeld:

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

Opmerking

Als u deze opdracht wilt uitvoeren, moet u de Skype voor Bedrijven Online PowerShell-module installeren.

De interpretatie van deze PowerShell-opdracht is:

  1. Schakel in de instellingen voor nieuwe Skype voor Bedrijven Online-vergaderingen (Set-CsMeetingConfiguration) anonieme gebruikers automatisch toegang tot vergaderingen uit (-AdmitAnonymousUsersByDefault $False).
  2. Schakel de mogelijkheid uit voor deelnemers om vergaderingen op te nemen (-AllowConferenceRecording $False).
  3. Wijs niet alle gebruikers van uw organisatie aan als presentatoren (-DesignateAsPresenter "None").

Als u deze standaardinstellingen wilt herstellen (de opties inschakelen), voert u deze opdracht uit:

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

Er zijn ook andere vergelijkbare scenario's, daarom moeten beheerders weten hoe ze PowerShell voor Microsoft 365-opdrachten moeten uitvoeren.

PowerShell voor Microsoft 365 is ideaal voor bulkbewerkingen

Visuele interfaces zoals de Microsoft 365-beheercentrum zijn het meest waardevol wanneer u één bewerking moet uitvoeren. Als u bijvoorbeeld één gebruikersaccount wilt uitschakelen, kunt u het beheercentrum gebruiken om snel een selectievakje te zoeken en uit te schakelen. Dit is mogelijk eenvoudiger dan het uitvoeren van een vergelijkbare bewerking in PowerShell.

Maar als u veel dingen of een aantal geselecteerde dingen binnen een grote set andere dingen moet wijzigen, is de Microsoft 365-beheercentrum mogelijk niet het beste hulpmiddel. Stel dat u het voorvoegsel op duizenden telefoonnummers moet wijzigen of de specifieke gebruiker Ken Myer van al uw SharePoint-sites moet verwijderen. Hoe zou je dat doen in de Microsoft 365-beheercentrum?

Stel voor het laatste voorbeeld dat u enkele honderden SharePoint-sites hebt en dat u niet weet van welke Sites Ken Meyer lid is. U moet beginnen bij de Microsoft 365-beheercentrum en vervolgens deze procedure voor elke site uitvoeren:

  1. Selecteer de URL van de site.

  2. Selecteer in het vak Eigenschappen van de siteverzameling de koppeling Websiteadres om de site te openen.

  3. Selecteer delen op de site.

  4. Selecteer in het dialoogvenster Delen de koppeling met alle gebruikers met machtigingen voor de site:

    Voorbeeld van het weergeven van de leden van een SharePoint-site in het SharePoint Beheer center.

  5. Selecteer In het dialoogvenster Gedeeld met de optie Geavanceerd.

  6. Schuif omlaag in de lijst met gebruikers, zoek en selecteer Ken Myer (ervan uitgaande dat hij machtigingen voor de site heeft) en selecteer vervolgens Gebruikersmachtigingen verwijderen.

Dit zou lang duren voor enkele honderden sites.

Het alternatief is om de volgende opdracht uit te voeren in PowerShell voor Microsoft 365 om Ken Myer van al uw sites te verwijderen:

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

Opmerking

Voor deze opdracht moet u de SharePoint PowerShell-module installeren.

De interpretatie van deze PowerShell-opdracht is: Haal alle SharePoint-sites op in het huidige Microsoft 365-abonnement (Get-SPOSite) en verwijder Ken Meyer voor elke site uit de lijst met gebruikers die er toegang toe hebben (ForEach {Remove-SPOUser -Site $_). URL -LoginName "kenmyer@litwareinc.com"}).

We vertellen Microsoft 365 Ken Meyer te verwijderen van elke site, inclusief sites waartoe hij geen toegang heeft. In de resultaten worden dus fouten weergegeven voor de sites waartoe hij geen toegang heeft. We kunnen een aanvullende voorwaarde voor deze opdracht gebruiken om Ken Meyer alleen te verwijderen van de sites waarop hij op hun aanmeldingslijst staat. Maar de fouten die worden geretourneerd, veroorzaken geen schade aan de sites zelf. Het kan enkele minuten duren voordat deze opdracht is uitgevoerd op honderden sites, in plaats van uren te werken via de Microsoft 365-beheercentrum.

Hier volgt nog een voorbeeld van een bulkbewerking. Gebruik deze opdracht om Bonnie Kearney, een nieuwe SharePoint-beheerder, toe te voegen aan alle sites in de organisatie:

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

De interpretatie van deze PowerShell-opdracht is: Haal alle SharePoint-sites in het huidige Microsoft 365-abonnement op en sta bonnie Kearney voor elke site toegang toe door haar aanmeldingsnaam toe te voegen aan de groep Leden van de site (ForEach {Add-SPOUser -Site $_). URL -LoginName "bkearney@litwareinc.com" -Groep "Leden"}).

PowerShell voor Microsoft 365 is geweldig in het filteren van gegevens

De Microsoft 365-beheercentrum biedt verschillende manieren om uw gegevens te filteren om eenvoudig een gerichte subset met informatie te vinden. Met Exchange kunt u bijvoorbeeld eenvoudig filteren op vrijwel elke eigenschap van een gebruikerspostvak. Hier ziet u bijvoorbeeld de lijst met postvakken voor alle gebruikers die in de stad Bloomington wonen:

Voorbeeld van het uitvoeren van een geavanceerde zoekopdracht in de Microsoft 365-beheercentrum naar de lijst met postvakken voor alle gebruikers die in de stad Bloomington wonen.

In het Exchange-beheercentrum kunt u ook filtercriteria combineren. U kunt bijvoorbeeld de postvakken vinden voor alle mensen die in Bloomington wonen en op de afdeling Financiën werken.

Maar er gelden beperkingen voor wat u kunt doen in het Exchange Beheer center. U kon bijvoorbeeld niet zo gemakkelijk de postvakken vinden van mensen die in Bloomington of San Diego wonen, of de postvakken voor alle mensen die niet in Bloomington wonen.

U kunt de volgende PowerShell voor Microsoft 365-opdracht gebruiken om een lijst met postvakken op te halen voor alle personen die in Bloomington of San Diego wonen:

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

Hier volgt een voorbeeld van de resultaten:

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

De interpretatie van deze PowerShell-opdracht is: Haal alle gebruikers in het huidige Microsoft 365-abonnement op die een postvak hebben in de stad San Diego of Bloomington (waar {$_. RecipientTypeDetails -eq "UserMailbox" -and ($_. Plaats -eq "San Diego" -of $_. Plaats -eq "Bloomington")}) en geef vervolgens de naam en plaats voor elke plaats weer (Selecteer DisplayName, Plaats).

En hier is de opdracht om alle postvakken weer te geven voor mensen die overal wonen, behalve Bloomington:

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

Hier volgt een voorbeeld van de resultaten:

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

De interpretatie van deze PowerShell-opdracht is: Haal alle gebruikers in het huidige Microsoft 365-abonnement op die een postvak hebben dat zich niet in de stad Bloomington bevindt (waar {$_. RecipientTypeDetails -eq "UserMailbox" -and $_. Plaats -ne "Bloomington"}) en geef vervolgens de naam en plaats weer voor elk.

Jokertekens gebruiken

U kunt ook jokertekens in uw PowerShell-filters gebruiken om een deel van een naam te vinden. Stel dat u op zoek bent naar een gebruikersaccount. U kunt zich alleen herinneren dat de achternaam van de gebruiker Anderson was of misschien Henderson of Jorgenson.

U kunt die gebruiker in de Microsoft 365-beheercentrum opsporen door het zoekprogramma te gebruiken en drie verschillende zoekopdrachten uit te voeren:

  • Eén voor Anderson

  • Eén voor Henderson

  • Eén voor Jorgenson

Omdat alle drie deze namen eindigen op 'son', kunt u PowerShell laten weten dat alle gebruikers worden weergegeven waarvan de naam eindigt op 'son'. Dit is de opdracht:

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

De interpretatie van deze PowerShell-opdracht is: Haal alle gebruikers in het huidige Microsoft 365-abonnement op, maar gebruik een filter dat alleen de gebruikers vermeldt waarvan de achternamen eindigen op 'son' (-Filter {LastName -like "*son"}'). De * staat voor een reeks tekens, die letters in de achternaam van de gebruiker zijn.

Met PowerShell voor Microsoft 365 kunt u eenvoudig gegevens afdrukken of opslaan

Met de Microsoft 365-beheercentrum kunt u lijsten met gegevens weergeven. Hier volgt een voorbeeld van het Skype voor Bedrijven Online-beheercentrum met een lijst met gebruikers die zijn ingeschakeld voor Skype voor Bedrijven Online:

Voorbeeld van het Skype voor Bedrijven Online Beheer centrum met een lijst met gebruikers die zijn ingeschakeld voor Skype voor Bedrijven Online.

Als u deze gegevens wilt opslaan in een bestand, moet u deze in een document of Microsoft Excel-werkblad plakken. In beide gevallen is mogelijk extra opmaak vereist. Bovendien biedt de Microsoft 365-beheercentrum geen manier om de weergegeven lijst rechtstreeks af te drukken.

Gelukkig kunt u PowerShell gebruiken om de lijst niet alleen weer te geven, maar ook om deze op te slaan in een bestand dat eenvoudig in Excel kan worden geïmporteerd. Hier volgt een voorbeeldopdracht om Skype voor Bedrijven Online-gebruikersgegevens op te slaan in een CSV-bestand (door komma's gescheiden waarden), dat vervolgens eenvoudig als een tabel in een Excel-werkblad kan worden geïmporteerd:

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

Hier volgt een voorbeeld van de resultaten:

Voorbeeld van een tabel die is geïmporteerd in een Excel-werkblad voor Skype voor Bedrijven Online-gebruikersgegevens die zijn opgeslagen in een bestand met door komma's gescheiden waarden.

De interpretatie van deze PowerShell-opdracht is: Haal alle Skype voor Bedrijven Online-gebruikers in het huidige Microsoft 365-abonnement (Get-CsOnlineUser) op; haal alleen de gebruikersnaam, UPN en locatie op (selecteer DisplayName, UserPrincipalName, UsageLocation). Sla deze gegevens vervolgens op in een CSV-bestand met de naam C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

U kunt ook opties gebruiken om deze lijst op te slaan als een XML-bestand of een HTML-pagina. Met extra PowerShell-opdrachten kunt u het rechtstreeks opslaan als een Excel-bestand, met elke gewenste aangepaste opmaak.

U kunt ook de uitvoer van een PowerShell-opdracht verzenden waarmee een lijst rechtstreeks naar de standaardprinter in Windows wordt weergegeven. Hier volgt een voorbeeldopdracht:

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

Uw afgedrukte document ziet er als volgt uit:

Voorbeeld van een afgedrukt document dat de uitvoer was van een PowerShell-opdracht die rechtstreeks naar de standaardprinter in Windows is verzonden.

De interpretatie van deze PowerShell-opdracht is: Haal alle Skype voor Bedrijven Online-gebruikers in het huidige Microsoft 365-abonnement op; haal alleen de gebruikersnaam, UPN en locatie op en verzend die informatie vervolgens naar de standaard Windows-printer (Out-Printer).

Het afgedrukte document heeft dezelfde eenvoudige opmaak als de weergave in het PowerShell-opdrachtvenster. Als u een kopiërend exemplaar wilt ophalen, voegt u | toe Out-Printer tot het einde van de opdracht.

Met PowerShell voor Microsoft 365 kunt u verschillende serverproducten beheren

De onderdelen waaruit Microsoft 365 bestaat, zijn ontworpen om samen te werken. Stel dat u een nieuwe gebruiker toevoegt aan Microsoft 365 en dat u deze gegevens opgeeft als de afdeling en het telefoonnummer van de gebruiker. Deze informatie is vervolgens beschikbaar als u de gegevens van de gebruiker opent in een van de Microsoft 365-services: Skype voor Bedrijven Online, Exchange of SharePoint.

Maar dat is voor algemene informatie die de reeks producten omvat. Productspecifieke informatie, zoals informatie over het Exchange-postvak van een gebruiker, is doorgaans niet beschikbaar in de hele suite. Informatie over het al dan niet ingeschakelde postvak van een gebruiker is bijvoorbeeld alleen beschikbaar in het Exchange-beheercentrum.

Stel dat u een rapport wilt maken met de volgende informatie voor al uw gebruikers:

  • De weergavenaam van de gebruiker

  • Of de gebruiker een licentie heeft voor Microsoft 365

  • Of het Exchange-postvak van de gebruiker is ingeschakeld

  • Of de gebruiker is ingeschakeld voor Skype voor Bedrijven Online

U kunt zo'n rapport niet eenvoudig maken in de Microsoft 365-beheercentrum. In plaats daarvan moet u een afzonderlijk document maken om de gegevens op te slaan, zoals een Excel-werkblad. Haal vervolgens alle gebruikersnamen en licentiegegevens op uit de Microsoft 365-beheercentrum, haal postvakgegevens op uit het Exchange-beheercentrum, haal Skype voor Bedrijven Online-gegevens op uit het Skype voor Bedrijven Online Beheer centrum en combineer dat vervolgens Informatie.

Het alternatief is om een PowerShell-script te gebruiken om het rapport voor u te compileren.

Het volgende voorbeeldscript is ingewikkelder dan de opdrachten die u tot nu toe in dit artikel hebt gezien. Maar het laat zien wat het potentieel is van het gebruik van PowerShell om informatieweergaven te maken die anders moeilijk te verkrijgen zijn. Dit is het script voor het compileren en weergeven van de lijst die u nodig hebt:

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

Hier volgt een voorbeeld van de resultaten:

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

De interpretatie van dit PowerShell-script is:

  1. Haal alle gebruikers in het huidige Microsoft 365-abonnement op en sla de gegevens op in een variabele met de naam $x ($x = Get-MgUser).
  2. Start een lus die wordt uitgevoerd voor alle gebruikers in de variabele $x (foreach ($i in $x)).
  3. Definieer een variabele met de naam $y en sla daarin de postvakgegevens van de gebruiker op ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. Voeg een nieuwe eigenschap toe aan de gebruikersgegevens met de naam IsMailBoxEnabled. Stel deze in op de waarde van de eigenschap IsMailBoxEnabled van het postvak van de gebruiker ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. Definieer een variabele met de naam $y en sla daarin de Skype voor Bedrijven Online-gegevens van de gebruiker op ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. Voeg een nieuwe eigenschap toe aan de gebruikersgegevens met de naam EnabledForSfB. Stel deze in op de waarde van de eigenschap Ingeschakeld van de Skype voor Bedrijven Online-gegevens van de gebruiker ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. De lijst met gebruikers weergeven, maar alleen hun naam, of ze een licentie hebben en de twee nieuwe eigenschappen die aangeven of hun postvak is ingeschakeld en of ze zijn ingeschakeld voor Skype voor Bedrijven Online ($x | Selecteer DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB).

Zie ook

Aan de slag met PowerShell voor Microsoft 365

Microsoft 365-gebruikersaccounts, -licenties en -groepen beheren met PowerShell

Windows PowerShell gebruiken om rapporten te maken in Microsoft 365