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:
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:
Dubbelklik op de weergavenaam van de gebruiker.
Selecteer details in het weergavevenster gebruikerseigenschappen.
Selecteer aanvullende details in de detailweergave.
Schuif totdat u de kop Land of regio vindt:
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:
- 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).
- 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:
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:
- Schakel in de instellingen voor nieuwe Skype voor Bedrijven Online-vergaderingen (Set-CsMeetingConfiguration) anonieme gebruikers automatisch toegang tot vergaderingen uit (-AdmitAnonymousUsersByDefault $False).
- Schakel de mogelijkheid uit voor deelnemers om vergaderingen op te nemen (-AllowConferenceRecording $False).
- 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:
Selecteer de URL van de site.
Selecteer in het vak Eigenschappen van de siteverzameling de koppeling Websiteadres om de site te openen.
Selecteer delen op de site.
Selecteer in het dialoogvenster Delen de koppeling met alle gebruikers met machtigingen voor de site:
Selecteer In het dialoogvenster Gedeeld met de optie Geavanceerd.
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:
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:
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:
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:
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:
- 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).
- Start een lus die wordt uitgevoerd voor alle gebruikers in de variabele $x (foreach ($i in $x)).
- Definieer een variabele met de naam $y en sla daarin de postvakgegevens van de gebruiker op ($y = Get-Mailbox -Identity $i.UserPrincipalName).
- 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).
- 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).
- 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).
- 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
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor