/
/

Microsoft 365-clients monitoren en beheren met Microsoft Graph API en Windows PowerShell

door Team Ninja
Using Microsoft Graph API with Windows PowerShell to Monitor and Manage Microsoft 365 Clients blog banner image

Directe samenvatting

Deze blogpost van NinjaOne biedt een uitgebreide basislijst met CMD-commands en een deep dive duik in Windows-commands met meer dan 70 essentiële cmd-commands voor zowel beginners als gevorderden. Het legt praktische opdrachtpromptcommando’s uit voor file management, directory navigation, network troubleshooting, disk operations en automatisering met echte voorbeelden om de productiviteit te verbeteren. Of u nu fundamentele cmd-commands leert of geavanceerde Windows CLI-tools onder de knie krijgt, deze gids helpt u de Command Prompt effectiever te gebruiken.

Belangrijkste punten

  • Microsoft Graph API is één REST-endpoint dat programmatische toegang geeft tot Microsoft 365-services zoals Intune, Microsoft Entra ID, Exchange Online en Teams.
  • MSP’s en bedrijfs-IT-teams gebruiken Microsoft Graph API voor het monitoren van device compliance, het controleren van licentiegebruik, geautomatiseerde beleidshandhaving, remediation-workflows die door notificaties worden gestart en rapportagedashboards over meerdere tenants.
  • Voordat u verbinding maakt met de Microsoft Graph PowerShell SDK, heeft u een Microsoft 365-tenant met global admin- of gedelegeerde admin-toegang nodig, de SDK geïnstalleerd met PowerShell 5.1 of hoger en de juiste permission scopes voor de handelingen die u wilt uitvoeren.
  • De compliancestatus van devices, lijsten met niet-compliant devices en details van afzonderlijke devices haalt u allemaal op met Get-MgDeviceManagementManagedDevice-query’s; remote wipe- en lock-acties start u met Invoke-MgDeviceManagement-commando’s.
  • Beleid dat via Microsoft Graph is uitgerold controleert u op endpointniveau via HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\ in het Windows-register; de enrollmentstatus van een device verifieert u met dsregcmd /status.
  • Bescherm authenticatietokens van Microsoft Graph met Lokaal groepsbeleid: schakel opslag van referenties uit en sta alleen ondertekende PowerShell-scripts toe.

Microsoft Graph API is één endpoint waarmee beheerders via Windows PowerShell programmatisch toegang krijgen tot allerlei Microsoft 365-services, zoals Intune, Microsoft Entra (voorheen Azure AD), Exchange Online, Teams en nog veel meer.

Er zijn tal van toepassingen, zeker in grote omgevingen. Microsoft Graph API kunt u gebruiken voor:

  • Monitoring van device compliance en de status van devices
  • Licentiegebruik en -toewijzing
  • Geautomatiseerd beleids- en groepsbeheer
  • Notificatie- en remediation-workflows
  • Rapportage over meerdere tenants voor MSP-dashboards

Vereisten:

  • U moet een Microsoft 365-tenant hebben met global admin- of gedelegeerde admin-toegang.
  • U moet Microsoft Graph registreren bij Microsoft Entra (voorheen Azure AD).
  • Voor sommige handelingen heeft u mogelijk Intune- en Microsoft Entra Premium-licenties nodig.
  • U heeft een GPO-baseline nodig om uw authenticatietokens te beschermen en te zorgen dat scripts veilig worden uitgevoerd.

Wilt u het snel visueel zien? Bekijk dan onze videogids: Microsoft 365-clients monitoren en beheren met Microsoft Graph API en Windows PowerShell.

Microsoft Graph PowerShell SDK installeren

Vereisten:

  • Het is aan te raden hiervoor Windows PowerShell 7 of hoger te gebruiken. Windows PowerShell 5.1 is het minimum. (Controleer uw PowerShell-versie )
  • U moet .NET Framework 4.7.2 of hoger geïnstalleerd hebben.
  • PowerShellGet moet zijn bijgewerkt naar de nieuwste versie. Typ daarvoor Install-Module PowerShellGet in Windows PowerShell en druk op Enter.
  • De execution policy moet zijn ingesteld op remote signed of minder streng. Typ Get-ExecutionPolicy in Windows PowerShell en druk op Enter om te controleren of u het juiste beleid heeft. Typ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned en druk op Enter om de execution policy op remote signed te zetten.

Stappen:

  1. Open het Startmenu en zoek naar Windows PowerShell.
  2. Klik met de rechtermuisknop op Windows PowerShell > Als administrator uitvoeren.
  3. Typ Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force en druk op Enter.

Let op: deze wijziging geldt alleen voor het huidige gebruikersprofiel. Wilt u de Microsoft Graph PowerShell SDK in alle gebruikersprofielen installeren, wijzig dan -Scope in AllUsers.

  1. Bevestig de installatie wanneer daarom wordt gevraagd.

Verbinding maken met de Microsoft Graph PowerShell SDK

  1. Typ Connect-MgGraph -Scopes "User.Read.All",”DeviceManagementManagedDevices.Read.All”,”Directory.Read.All” in Windows PowerShell en druk op Enter om verbinding te maken.

Let op: hiermee krijgt u toegang tot de volledige graph. U kunt de permissies naar wens aanpassen door de permissies achter -Scopes te bewerken. Typ Find-MgGraphCommand -command Get-MgGroup om alle beschikbare permissies te bekijken.

  1. Bent u al ingelogd, ga dan door naar de volgende stap. Zo niet, volg dan de instructies om in te loggen.
  2. U kunt ook Get-MgContext gebruiken om specifieke gegevens op te halen, zoals client-ID, tenant-ID, toegekende scopes en meer.

Let op: gebruik -TenantID voor multi-tenant toegang en -ClientID voor geregistreerde applicaties.

Device-informatie en compliancestatus ophalen

Typ dit commando en druk op Enter om al uw door Intune beheerde devices op te sommen:

Get-MgDeviceManagementManagedDevice |
Select DisplayName, ComplianceState, OperatingSystem

Wilt u binnen die lijst de niet-compliant devices vinden, typ dan dit commando en druk op Enter:

Get-MgDeviceManagementManagedDevice |
Where-Object {$_.ComplianceState -ne "compliant"}

U kunt ook specifieke devices op naam opzoeken:

Get-MgDeviceManagementManagedDevice -ManagedDeviceId <GUID>

Vervang <GUID> door het device-ID waarnaar u zoekt.

Gebruikersactiviteit en licenties monitoren

Typ dit commando en druk op Enter om alle gebruikers met hun licentiegegevens weer te geven:

Get-MgUser | Select-Object DisplayName, UserPrincipalName, AssignedLicenses

Typ dit commando en druk op Enter om gebruikers zonder licentie te vinden:

Get-MgUser | Where-Object { !$_.AssignedLicenses }
Aanmeldactiviteit ophalen (vereist AuditLog.Read.All):
Get-MgAuditLogSignIn -Top 50 | Select UserDisplayName, UserPrincipalName, Status, AppDisplayName

Remediation en beleidshandhaving automatiseren

Is een device kwijt of gecompromitteerd, dan kunt u de gegevens ervan wissen vanuit Microsoft Graph door dit commando te typen en op Enter te drukken:

Invoke-MgDeviceManagementManagedDeviceWipe -ManagedDeviceId <GUID>

Vervang <GUID> door het device-ID van het verloren of gecompromitteerde device.

Wilt u een device op afstand vergrendelen:

Invoke-MgDeviceManagementManagedDeviceRemoteLock -ManagedDeviceId <GUID>

Vervang <GUID> door het device-ID van het verloren of gecompromitteerde device.

Wilt u een compliancebeleid toewijzen, typ dan dit commando en druk op Enter:

New-MgDeviceManagementCompliancePolicyAssignment -CompliancePolicyId <PolicyID> -Target @{ “@odata.type” = “#microsoft.graph.groupAssignmentTarget”; “groupId” = “<EntraGroupId>” }

Vervang <PolicyID> door het policy-ID van het beleid dat u wilt toewijzen. Vervang <EntraGroupId> door de groep waaraan u het beleid wilt toewijzen.

Deze commando’s zijn handig als u geautomatiseerde remediation in verschillende omgevingen wilt inrichten. U kunt ze ook automatisch laten starten zodra uw systeem een notificatie ontvangt van uw endpoint management-tool.

Beleid valideren op endpointniveau (Windows-register, CMD)

U kunt in het Windows-register controleren of het beleid dat via Microsoft Graph is uitgevaardigd met succes is toegepast.

Ga bijvoorbeeld naar HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\ in het Windows-register en kijk of het beleid is toegepast (bijvoorbeeld Defender of een encryptiebeleid).

U kunt ook de opdrachtprompt gebruiken om het device in een MDM aan te melden en de status verder te monitoren.

  1. Open de opdrachtprompt als administrator.
  2. Typ dit en druk op Enter: start ms-device-enrollment:?mode=mdm

Typ om de join-/enrollmentstatus te verifiëren: dsregcmd /status

Tokengebruik beveiligen met lokaal groepsbeleid en endpointcontroles

Met lokaal groepsbeleid beschermt u de authenticatietokens van Microsoft Graph en uw PowerShell-automatisering op beheerde devices. Volg deze stappen:

  1. Open de Editor voor lokaal groepsbeleid.
  2. Ga naar Computerconfiguratie > Windows-instellingen > Beveiligingsinstellingen > Lokaal beleid > Beveiligingsopties
  3. Zoek Opslag van wachtwoorden en referenties voor netwerkverificatie niet toestaan en dubbelklik erop.
  4. Zet de instelling op Ingeschakeld.
  5. Klik op Toepassen > OK.
  6. Ga naar Computerconfiguratie > Beheersjablonen > Windows-onderdelen > Windows PowerShell.
  7. Zoek Scriptuitvoering inschakelen en dubbelklik erop.
  8. Zet de instelling op Ingeschakeld.
  9. Klik op het keuzemenu en selecteer Alleen ondertekende scripts toestaan.
  10. Klik op Toepassen > OK.

Waar u verder op moet letten bij Microsoft Graph API

  • Met Graph Explorer test u de API online zonder dat u iets op uw devices hoeft te installeren.
  • Zorg dat u applicatiepermissies toepast voor achtergrondtaken en multi-tenant scripts.
  • U kunt rate limiting en retry-logica toepassen op productiescripts.
  • Met conditional access policies in Microsoft Entra ID beperkt u het gebruik van Graph op onbeheerde devices.

Problemen met Microsoft Graph API oplossen

ProbleemMogelijke oorzakenOplossingen
Microsoft Graph mislukt.Er ontbreken permissies, waardoor de tenant dat commando niet mag uitvoeren.Geef die tenant de juiste permissies. U kunt ook een administratoraccount met volledige permissies gebruiken.
Het device is niet zichtbaar in de query.Dit betekent dat het device niet in Intune wordt beheerd of niet goed is gesynchroniseerd.Controleer de enrollment in Microsoft Endpoint Management (MEM) en de devicestatus in Microsoft Entra (voorheen AAD).
U loopt tegen de rate limit van de API aan.Er lopen te veel gelijktijdige query’s.Gebruik het commando -Top en batching.
De registerwaarden van een bepaald beleid ontbreken.Het beleid is niet toegepast.Valideer de groepstargeting en start een synchronisatie om de wijziging op het device toe te passen.

Diensten van NinjaOne

NinjaOne vult Microsoft Graph API op verschillende manieren aan:

  • Microsoft Graph-scripts automatiseren in alle klant-tenants met een remote PowerShell-tool
  • Notificaties instellen zodat beheerders weten wanneer devices niet langer compliant zijn, met remediation die via Graph wordt gestart
  • Devices taggen met aangepaste velden op basis van metadata uit Microsoft Graph (bijvoorbeeld compliancestatus, risicostatus enzovoort)
  • Rapportagetaken inplannen op basis van informatie uit Microsoft Graph en zo het overzicht op tenantniveau centraliseren voor MSP’s.

Monitor uw beheerde devices met Microsoft Graph API

Microsoft Graph API is een krachtige tool waarmee beheerders via Windows PowerShell centraal en geautomatiseerd controle houden over de Microsoft 365-accounts binnen hun organisatie. Zodra u de API heeft geïnstalleerd en er via PowerShell verbinding mee heeft gemaakt, kunt u gebruikers en device compliance monitoren en device-acties en beleidstoewijzingen automatiseren.

U valideert die beleidstoewijzingen via het Windows-register en de opdrachtprompt. Met de automatiserings- en inzichtfuncties van NinjaOne tilt u uw workflows naar een nog hoger niveau.

Gerelateerde artikelen:

Quick-start guide

Wat NinjaOne kan met Microsoft Graph API en Windows PowerShell:

Integratie met Microsoft Graph API

NinjaOne ondersteunt integratie met Microsoft Graph API en PowerShell, met name voor:

  1. Service Principal Authentication (SPA):
    • NinjaOne biedt Service Principal Authentication voor Microsoft 365-back-ups
    • Vereist een global admin tijdens de eerste configuratie
    • Ondersteunt diverse scopes en permissies voor verschillende Microsoft 365-services
  2. Integratie met PowerShell:
    • NinjaOne biedt PowerShell-modules en -scripts voor API-interacties
    • Ondersteunt de autorisatieflow van OAuth 2.0
    • Biedt voorbeeldscripts om taken te automatiseren, zoals:
      • Vulnerability management
      • Tokens genereren
      • API-aanvragen afhandelen

Belangrijke aandachtspunten

  • Met de integratie monitort en beheert u Microsoft 365-clients
  • Ondersteunt handelingen als:
    • Back-up en herstel
    • Gebruikersbeheer
    • Device-informatie ophalen
    • Autorisatie- en tokenbeheer

FAQs

Microsoft Graph API (via de Microsoft Graph PowerShell SDK) is de huidige, uniforme interface voor alle Microsoft 365-services en geeft via één consistente API toegang tot Intune, Entra ID, Exchange Online, Teams en SharePoint. Azure AD PowerShell (de modules AzureAD en MSOnline) was de oude aanpak, en dan alleen voor identity- en directorybeheer. Scripts of automatisering die de modules AzureAD of MSOnline gebruiken moeten worden gemigreerd naar de equivalenten in de Graph SDK voordat ze in uw tenant stoppen met werken.

De minimaal vereiste permission scopes voor Intune device management via Microsoft Graph zijn DeviceManagementManagedDevices.Read.All voor alleen-lezen compliance- en statusgegevens, DeviceManagementManagedDevices.ReadWrite.All voor remote actions (wipe, lock) en DeviceManagementConfiguration.ReadWrite.All voor het maken en toewijzen van compliancebeleid. Voor query’s over gebruikers en licenties is User.Read.All nodig; voor toegang tot de aanmeldings-audittrail moet AuditLog.Read.All zijn toegekend.

Ja. U kunt de parameter -TenantId in Connect-MgGraph gebruiken om een klant-tenant op te geven of u registreert een multi-tenant applicatie in Microsoft Entra ID waarvoor klanten expliciet toestemming geven via een admin consent-URL. RMM-platformen zoals NinjaOne kunnen de uitvoering van Microsoft Graph-scripts ook in alle beheerde tenants tegelijk automatiseren, zodat u niet per klant handmatig verbinding hoeft te maken.

De Microsoft Graph PowerShell SDK verpakt de Microsoft Graph REST API in PowerShell-cmdlets. De SDK regelt authenticatie, het vernieuwen van tokens, paginering en foutafhandeling automatisch, wat het werk voor IT-beheerders en MSP’s een stuk eenvoudiger maakt.

Overschrijdt u de rate limit van de Graph API, dan geeft de API een 429 Too Many Requests-respons terug met een Retry-After-header die aangeeft hoelang u moet wachten. Bouw in productiescripts retry-logica in die 429-responses opvangt, de Retry-After-waarde uitleest, de aangegeven tijd wacht en de aanvraag opnieuw doet. Gebruik bij bulkbewerkingen de parameter -Top om de omvang van resultatensets te beperken, zet de Microsoft Graph Batch API ($batch-endpoint) in om meerdere aanvragen in één aanroep te combineren en spreid de uitvoeringsschema’s van scripts over de tenants zodat ze niet allemaal tegelijk draaien.

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?