Microsoft To-Do Listen exportieren

Wie vor einigen Tagen informiert, wird Microsoft bei Geschäftskonten Ende Juni geteilte To-Do Listen von persönlichen Microsoft Konten trennen.

DatumAktion
Ab 30. Mai 2023Geschäftskonten können keinen neuen, geteilten Listen von persönlichen Konten beitreten.
Ab 30. Juni 2023Bestehende, geteilte Listen von persönlichen Konten werden für alle Geschäftskonten deaktiviert. Geschäftskonten können nicht mehr auf die Listen zugreifen.
Nicht betroffen sind intern geteilte Listen zwischen Geschäftskonten.

Für einen Überblick welche Konten im Tenant geteilte To-Do Listen erstellten schrieb ich das PowerShell Command Export-TAToDoLists.
Standardmässig wertet das Command alle Benutzerkonten mit To-Do Serviceplan aus, ob sie geteilte Listen einsetzen und ob sie die Besitzer der Liste sind. Alternativ ist die Auswertung aller Listen möglich.

Allgemeine Informationen und Einschränkungen
  • Das Command prüft an welche Benutzerkonten ein Microsoft To-Do Serviceplan zugewiesen ist und wertet alle geteilten Listen pro Konto aus. Hat ein Konto keine geteilten Listen wird es übersprungen.
  • Hat ein Konto Microsoft To-Do noch nie geöffnet/eingesetzt kann Graph keine Listen abfragen und gibt einen Fehler zurück. Das Konto wird übersprungen.
  • Im Vergleich zur alten Outlook API fehlen in der Graph API für Microsoft To-Do einige Informationen, für geteilte Listen beispielsweise der Freigabelink und mit wem die Listen geteilt sind. Die alte Outlook API ist nicht mehr im Support. In meinem Command nutze ich nur die Graph API.
  • Die Graph API für Microsoft To-Do ist aktuell nur für eine Listenanzahl um die 100 (pro Konto) ausgelegt. Für einen Test erstellte ich mir 130+ Listen. Graph gibt bei der Zahl nie alle Listen zurück. Ein Issue ist bereits länger offen. Von Microsoft gibt es offiziell keine Information wie viele Listen To-Do unterstützt.
Welche Inhalte sind in der Auswertung inkludiert?
  • Benutzername, das jeweilige Konto hat Microsoft To-Do bereits genutzt und betroffene Listen erstellt.
  • Listenname
  • Listentyp, in Summe gibt es drei Typen.
    • Systemlisten, von Microsoft vordefinierte Listen (Beispiel Default Liste und eine Liste für markierte E-Mails).
    • Persönliche Listen, manuell erstellt, nicht geteilt, der Ersteller ist Besitzer der Liste.
    • Geteilte Listen. Die Listen werden unterschieden zwischen von einem selbst geteilt (die Person ist Besitzer der Liste) oder von jemand anderen geteilt (die Person ist kein Besitzer der Liste). Im letzteren Fall sind interne und über persönliche Microsoft Konten geteilte Listen inkludiert.
  • Ob das Konto Besitzer der Liste ist.
  • Ob die Liste geteilt ist.
  • Ob das Konto 100+ Listen erstellt hat. In dem Fall könnte Graph nicht alle Liste zurückgeben.
Anforderungen
  • Das PowerShell Modul Microsoft.Graph.Authentication.
  • Für die Abfrage von To-Do Listen von anderen Konten sind Application Permissions notwendig. Über Delegated Permissions liefert To-Do nur Daten über das eigene Konto. Für das Command ist daher eine Azure App Registration mit folgenden zwei Berechtigungen erforderlich.
    • Microsoft Graph > Application > User.Read.All (für die Abfrage aller Benutzerkonten mit To-Do Serviceplan)
    • Microsoft Graph > Application > Tasks.Read.All (für die Abfrage von To-Do Listen pro Konto)
Screenshot
    Ausführung von Export-TAToDoLists

    Standardmässig sammelt das Command alle geteilten To-Do Listen.

    • Optional kannst du über die Parameter IncludePersonalLists und IncludeSystemLists weitere Listen in der Auswertung inkludieren.
    • Möchtest du die Auswertung nur für ein bestimmtes Konto kannst du über den Parameter UPN das Konto angeben.

    Für Details und Beispiele beachte die Dokumentation über Export-TAToDoLists. Lade das Command aus meinem GitHub Repo und verbinde dich über Connect-MgGraph mit deiner Azure App zu deinem Tenant.

    PowerShell
    Import-Module Microsoft.Graph.Authentication
    Connect-MgGraph -ClientID <AzureAppID> -TenantId <TenandID> -CertificateThumbprint <CertificateThumbprint>
    
    Export-TAToDoLists -IncludeSystemLists

    PowerShell

    Die Zusammenfassung wird in den lokalen Documents-Ordner von deinem Client exportiert und lässt sich mit Excel weiterbearbeiten. Für geteilte Listen solltest du folgende Spalten filtern.

    • ListType = Shared
    • isOwner = FALSE

    Beachte, Einträge mit isOwner = FALSE können sowohl intern in der Organisation als auch von persönlichen Konten geteilte Listen sein. Graph liefert im Moment kein Property für eine Unterscheidung. Betroffene Mitarbeitende können es mithilfe der Auswertung einfacher kontrollieren.

    Excel Auszug
    Share
    Avatar-Foto

    Tobias Asböck

    Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert