PowerShell is erg handig als het gaat om het bekijken van Exchange-agenda’s, of je nu wilt zien welke evenementen gepland staan of een specifieke afspraak wilt verwijderen. Het beheren van agenda’s in Exchange of Microsoft 365 kan soms wat omslachtig aanvoelen, vooral als je de grafische gebruikersinterface of de interface van de gebruiker niet wilt gebruiken. Het gebruik van PowerShell-scripts kan veel tijd besparen, maar het is ook een beetje vreemd omdat er meerdere manieren zijn om dit aan te pakken, afhankelijk van wat je precies nodig hebt. Zo is het opvragen van een lijst met alle agenda-evenementen van een gebruiker één ding, maar het verwijderen van een specifieke vergadering of het wissen van hele agenda’s kan totaal verschillende dingen zijn – soms met dezelfde tools, soms niet. Houd er rekening mee dat opdrachten soms wel werken in de ene configuratie en soms niet in de andere, vooral met betrekking tot machtigingen of modules. Deze handleiding zou je in ieder geval moeten helpen om te begrijpen hoe je agenda-evenementen kunt weergeven en verwijderen in de meeste configuraties, of je nu Exchange Online of een on-premises server gebruikt. Het resultaat? Je kunt alle aankomende vergaderingen bekijken of een agenda leegmaken wanneer het tijd is om op te ruimen, zonder dat je handmatig op elk account hoeft in te loggen. Het is misschien een beetje een trucje, maar het is wel sneller dan urenlang klikken. Bekijk de onderstaande commando’s en kijk welke het beste bij jouw situatie past.
Agenda-evenementen in Exchange weergeven en verwijderen via PowerShell
Gebruikersagenda-evenementen in Microsoft 365 weergeven met PowerShell
Dit is vooral handig als je snel wilt zien wat er in de agenda van een gebruiker staat gepland – bijvoorbeeld voor audits of om te zien wat er nog op de planning staat. Dit werkt omdat de Microsoft Graph API wordt ingeschakeld, waardoor je toegang krijgt tot agenda-items als je de juiste machtigingen hebt. Normaal gesproken moet je een app registreren in Azure AD ( Azure-portal > App-registraties > Nieuwe registratie ) en deze vervolgens Calendars. Readde Calendars. ReadBasic. Allbenodigde machtigingen verlenen, zodat je script de agendagegevens kan inzien. Als je de module nog niet hebt geïnstalleerd, voer dan het volgende commando uit:
Install-Module Microsoft. Graph -Scope AllUsers
Zodra dat geregeld is, gebruikt u de ID van uw Azure-app, een vingerafdruk van het certificaat en uw tenant-ID om te authenticeren. Hier is een eenvoudig voorbeeld van hoe u verbinding maakt:
$certThumbprint = "9CF05589A4B29BECEE6456F08A76EBC3DC2BC581" $AzureAppID = "111111-2222-3333-4444-12345678" $tenant = "woshub.onmicrosoft.com" Connect-MgGraph -AppId $AzureAppID -CertificateThumbprint $certThumbprint -TenantId $tenant
In sommige configuraties kan dit de eerste keer mislukken. Probeer in dat geval opnieuw verbinding te maken of controleer uw machtigingen, want Windows maakt het natuurlijk graag ingewikkelder dan nodig. Nadat de verbinding tot stand is gebracht, kunt u de agenda-evenementen van de gebruiker als volgt ophalen:
$StartDate = (Get-Date -Day 1) $EndDate = (Get-Date -Day 1).AddMonths(1) Get-MgUserCalendarView -UserId "[email protected]" -CalendarId "Calendar" -StartDateTime $StartDate -EndDateTime $EndDate | Select-Object -Property @{Name='EventStart';Expression={ $_. Start. DateTime }}, @{Name='EventEnd';Expression={ $_. End. DateTime }}, Subject, BodyPreview
Hier vind je een overzicht van de vergaderingen met begin- en eindtijden, onderwerpen en een korte samenvatting van de inhoud. Handig voor een controle of om te zien wat er gepland staat zonder direct het portaal te hoeven openen.
Methode 1: Aankomende evenementen in de Exchange-agenda verwijderen
Als u aankomende afspraken wilt verwijderen – bijvoorbeeld omdat een medewerker op vakantie is en u zijn of haar agenda wilt opschonen – kunt u de cmdlet Remove-CalendarEvents gebruiken. Hiermee vertelt u PowerShell: “Verwijder alle geplande vergaderingen binnen de komende 15 dagen die deze gebruiker heeft georganiseerd”, of u kunt een datumbereik opgeven. Hier is een voorbeeld:
Remove-CalendarEvents -Identity [email protected] -CancelOrganizedMeetings -QueryWindowInDays 15
Dit is handig voor snelle opruimacties wanneer iemand binnenkort vertrekt of wanneer je even snel iets moet opruimen. Je kunt ook specifieke datumbereiken instellen:
Remove-CalendarEvents -Identity [email protected] -CancelOrganizedMeetings -QueryStartDate 2023-04-10 -QueryWindowInDays 60
In sommige configuraties -PreviewOnly -Verboseis het handig om eerst te zien wat er verwijderd zou worden, zodat je niet per ongeluk alles verwijdert. Wees echter gewaarschuwd: deze cmdlet haalt alleen aankomende evenementen op en filtert niet op onderwerp of organisator. Het is een snelle opschoontool, vooral bedoeld voor het opruimen na ontslagen of snelle resets.
Als u eerdere gebeurtenissen wilt opzoeken of met oudere gegevens op een on-premise Exchange-server wilt werken (bijvoorbeeld uit 2016, 2013, enz.), kunt u de functies ‘Zoeken in mailbox’ of ‘Nieuwe compliance-zoekopdracht’ gebruiken, vooral als u met specifieke onderwerpen of inhoud in de agenda-items te maken hebt. Bijvoorbeeld:
Search-Mailbox -Identity [email protected] -SearchQuery "Subject:'Discuss: AD Schema Update' AND Kind:meetings AND Received:01/12/2023..15/01/2024" -TargetMailbox report_mbx -TargetFolder SearchMailboxResult -LogOnly -LogLevel Full
Hiermee worden specifieke vergaderingen gevonden die overeenkomen met het onderwerp en de datumrange. Om te verwijderen, vervangt u -LogOnlydit door -DeleteContent. Hetzelfde principe geldt voor Exchange Online, maar dan voornamelijk met behulp van ComplianceSearch. Hier is een kort voorbeeld:
New-ComplianceSearch -Name DeleteOldMeetings -ContentMatchQuery "kind:meetings AND subject:weekly_it_meeting" Start-ComplianceSearch -identity DeleteOldMeetings Get-ComplianceSearch -identity DeleteOldMeetings | fl
Zodra uw zoekopdracht is voltooid (status geeft ‘ Voltooid’ aan ), kunt u het volgende uitvoeren:
New-ComplianceSearchAction -SearchName DeleteOldMeetings -Purge
Deze aanpak vergt iets meer zoekwerk, maar is erg krachtig als je specifieke evenementen wilt opsporen of oude agenda’s in één keer wilt opruimen.
Samenvatting
Het beheren van agenda-evenementen met PowerShell lijkt in eerste instantie misschien wat overweldigend, vooral met de vele verschillende tools en commando’s, maar als je het eenmaal onder de knie hebt, is het een redder in nood. Of je nu alleen evenementen wilt bekijken of ze wilt verwijderen, er is een methode die geschikt is voor vrijwel elke situatie. Controleer wel even je commando’s en de reikwijdte voordat je bulkverwijderingen uitvoert – er is niets erger dan per ongeluk alles te wissen. In één configuratie werkte het direct; in een andere was een snelle herstart of vernieuwing nodig. Toch bespaart het meestal enorm veel tijd in vergelijking met handmatig klikken, vooral in een grote organisatie. Veel succes met het beheren van je agenda’s!
Samenvatting
- Gebruik PowerShell-modules zoals Microsoft. Graph om kalendergegevens te lezen.
- Registreer apps in Azure en verleen de juiste machtigingen voordat u verbinding maakt.
- Gebruik Remove-CalendarEvents om snel aankomende vergaderingen te verwijderen.
- Voor oudere of specifieke gebeurtenissen kunt u zoeken en verwijderen met Search-Mailbox of ComplianceSearch.
- Test opdrachten altijd eerst met -PreviewOnly voordat je grote hoeveelheden data verwijdert.