Getty Images

Was ist neu in Microsoft Graph PowerShell v2?

Microsoft hat die Version von Graph überarbeitet und PowerShell-Module aktualisiert, die ältere Methoden zur Verwaltung der Cloud-basierten Dienste ersetzen.

Da Microsoft ältere PowerShell-Verwaltungsmethoden für seine Cloud-Dienste in den Ruhestand versetzt, müssen Administratoren lernen, wie sie mit den neueren Tools, wie Microsoft Graph, arbeiten.

Entwickler arbeiten mit der Microsoft Graph API, um Anwendungen für die Cloud-Produkte von Microsoft zu erstellen, aber auch Administratoren können damit Änderungen an der Kollaborationsplattform Microsoft 365 und dem Cloud-Zugriffs- und Identitätsmanagementprodukt Microsoft Entra ID, früher Azure Active Directory (Azure AD), vornehmen.

Mit Microsoft Graph interagieren Administratoren mit Daten aus mehreren Microsoft-Diensten in einer einzigen Anfrage. Es sind zwei Endpunkte verfügbar: Der Endpunkt v1.0 ist stabil und wird für den produktiven Einsatz empfohlen, während der Beta-Endpunkt aus APIs im Vorschaustatus besteht, die für Tests verwendet werden.

Das Microsoft Graph PowerShell SDK ist die Bibliothek, die als API-Wrapper mit Cmdlets fungiert, die das gesamte API-Set für PowerShell aufdecken. Die Standard-PowerShell-Module, wie zum Beispiel Azure AD und MSOnline, verwendeten dienstspezifische APIs. Als Microsoft nach und nach alle unabhängigen APIs in die einheitliche API von Microsoft Graph zusammenführte, mussten PowerShell-Befehle entweder neu geschrieben, verworfen oder in eine Bibliothek migriert werden.

Das Microsoft-Graph-PowerShell-Modul, das das Microsoft Graph PowerShell SDK verwendet, um die Microsoft-Graph-API anzuzapfen, stellt Administratoren cmdlets zur Verfügung, mit denen sie Daten abrufen oder Änderungen am Microsoft-365-Tenant und den Kollaborationsdiensten, wie Exchange Online und SharePoint Online, vornehmen können. Administratoren nutzen die PowerShell-Automatisierung, um eine Vielzahl von Aufgaben: Zum Beispiel Massenlizenzierungsänderungen vorzunehmen, Verwaltungsbenachrichtigungen zu senden und Berichte über die Dienstnutzung zu erstellen.

Was waren die Nachteile von Microsoft Graph PowerShell SDK v1?

Microsoft Graph PowerShell SDK v1 verwendete einen V1.0-Endpunkt für die Produktion und einen Beta-Endpunkt zum Testen von Funktionen, die noch nicht allgemein verfügbar waren. Um einen der beiden Endpunkte zu verwenden, würden Sie den folgenden PowerShell-Befehlen:

Select-MgProfile -Name "V1.0"
Select-MgProfile -Name "Beta"
erforderlicher Wechsel von Microsoft Graph PowerShell SDK
Abbildung 1: Microsoft Graph PowerShell SDK v1 erforderte den Wechsel von der v1.0- und der Beta-Endversion.

Bei diesem Ansatz kann es zu Problemen kommen, wenn Sie die falsche Endpunktversion verwenden und mit Ihrem PowerShell-Code nicht die erwarteten Ergebnisse erzielen. Außerdem kann es vorkommen, dass für ein und dasselbe Skript beide Endpunkte verwendet werden müssen, was für die Ausführung bestimmter Aufgaben oft erforderlich ist. Dazu müssen Sie die Profile häufig austauschen, was nicht der effizienteste Ansatz ist.

Select-MgProfile -Name "V1.0"
$users = Get-MgUser

Select-MgProfile -Name "Beta"
$alerts = Get-MgSecurityAlert

Im Beispielcode wird jeder Befehl, der nach dem Abrufen der Sicherheitswarnungen ausgeführt wird, mit dem Beta-Endpunkt ausgeführt, es sei denn, Sie setzen auf den v1-Endpunkt zurück.

Was sind die Vorteile von Microsoft Graph PowerShell SDK v2?

Nach einer kurzen öffentlichen Vorschauphase hat Microsoft das Microsoft Graph PowerShell SDK v2 im Juli 2023 zur allgemeinen Verfügbarkeit freigegeben, um einige Nachteile des SDK v1 zu beheben. Außerdem bietet Microsoft Graph PowerShell SDK v2 Versionierung und verschiedene andere Verbesserungen.

Aktualisieren Sie die PowerShell-Module Microsoft.Graph und Microsoft.Graph.Beta, um mit dieser neuen SDK-Version arbeiten zu können. Sie passen den Beispielcode an und verwenden Namensanpassungen für die cmdlets basierend auf dem benötigten Modul.

$users = Get-MgUser
$alerts = Get-MgBetaSecurityAlert

Solange beide Module installiert sind, können Sie neuere Funktionen nutzen, ohne zum Beta-Profil zu wechseln.

Install-Module Microsoft.Graph
Install-Module Microsoft.Graph.Beta
Import-Module Microsoft.Graph
Import-Module Microsoft.Graph.Beta

Die Installationsgröße des Microsoft Graph PowerShell SDK v2 beträgt circa 635 MByte im Vergleich zu den 969 MByte des Microsoft Graph PowerShell SDK v1. Dieser Größenunterschied trägt zur Beschleunigung des Modulimports in die Konsole bei und verbessert die Automatisierungsbemühungen, insbesondere innerhalb von Azure.

Microsoft Graph PowerShell SDK v2 bietet eine neue Authentifizierungsmethode, die die Sicherheit erhöht und gleichzeitig die Komplexität reduziert. Microsoft Graph PowerShell SDK v2 unterstützt verwaltete Identität für die Authentifizierung über den Befehl Connect-MgGrpah. Mit verwalteter Identität kann das v2-Modul auf Token für Azure-Ressourcen zugreifen, die von Microsoft Entra ID geschützt werden. Die Azure-Plattform verwaltet die Identität und erfordert keine Bereitstellung oder Rotation von Geheimnissen. Sie können vom System zugewiesene verwaltete Identitäten und vom Benutzer zugewiesene verwaltete Identitäten verwenden.

Connect-MgGraph -Identity
Connect-MgGraph -Identity -ClientId "c853667c-e346-4f40-b07b-49edbf8eb8d5."

Microsoft Graph PowerShell SDK v2 unterstützt auch Client Secrets durch Hinzufügen des Parameters -ClientSecretCredential zum Cmdlet Connect-MgGraph, um Arbeiten am Tenant ohne Anmeldung durchzuführen.

# Client Secret Connection
$secret = Get-Credential `
-Username "c853667c-e346-4f40-b07b-49edbf8eb8d5"
Connect-MgGraph `
     -TenantId "320a9610-d27d-4772-875c-03934f561c76" `
     -ClientSecretCredential $secret

Außerdem führt Microsoft Graph PowerShell SDK v2 eine weitere neue Authentifizierungsmethode mit Zertifikatsanmeldeinformationen sowohl für den aktuellen Benutzer als auch für den lokalen Computer ein.

# Certificate Connection
Connect-MgGraph `
     -ClientId "c853667c-e346-4f40-b07b-49edbf8eb8d5" `
     -Tenant "320a9610-d27d-4772-875c-03934f561c76" `
     -CertificateThumbprint "a909502dd82ae41433e6f83886b00d4288a32a7c"

Sie können auch Umgebungsvariablen als Speicher für Authentifizierungseigenschaften verwenden. Das Speichern von Parameterschlüsseln und -werten in Umgebungsvariablen verhindert, dass sensible Informationen bei der gemeinsamen Nutzung von Skripten verloren gehen.

Der aktualisierte Befehl Connect-MgGraph unterstützt die auf Umgebungsvariablen basierenden Authentifizierung mit dem Flag EnvironmentVariable.

# Add environment variables
$Env:CLIENT_ID = "c853667c-e346-4f40-b07b-49edbf8eb8d5"
$Env:TENANT_ID = "320a9610-d27d-4772-875c-03934f561c76"
$Env:CLIENT_SECRET = "~w28Q~lkHcX9GyStTAZP-Ymaz95c7nOl1_-oUa4Z"

# Connect using environment variables
Connect-MgGraph –EnvironmentVariable

Zu beachtende Änderungen in Microsoft Graph PowerShell v2

Wenn Code geändert oder aktualisiert wird, funktionieren häufig Funktionen oder Komponenten nicht mehr oder werden an neue Stellen verschoben. Beim Microsoft PowerShell Graph SDK v2 ist das nicht anders.

Die Beta-Entitätstypen befinden sich jetzt im Namespace Microsoft.Graph.Beta.PowerShell.Modules. <Entity>, um sie von den Standardtypen zu unterscheiden.

Microsoft hat auch die Eigenschaft AccessToken geändert, die Sie mit dem Befehl Connect-MgGraph verwenden. Es handelt sich um einen SecureString- und nicht um einen String-Datentyp, als Teil der allgemeinen Arbeit zur Härtung der PowerShell-Module gegen Sicherheitsschwachstellen. Die Bibliothek unterstützt nicht mehr die Eigenschaft Force Refresh mit dem Connect-MgGraph-Befehl. Stattdessen müssen Sie sich mit dem Disconnect-MgGraph-Befehl abmelden und erneut verbinden.

So aktualisieren Sie auf Microsoft Graph PowerShell v2

Um mit Microsoft Graph PowerShell SDK v2 zu beginnen, müssen Sie die aktualisierten PowerShell-Module Microsoft.Graph und Microsoft.Graph.Beta installieren.

# Install Microsoft.Graph and allow the prerelease version to install
Install-Module Microsoft.Graph -AllowPrerelease -AllowClobber -Force

# Install Microsoft.Graph.Beta and allow the prerelease version to install
Install-Module Microsoft.Graph.Beta -AllowPrerelease -AllowClobber -Force

Um die aktuelle Version zu ersetzen, entfernen Sie die Eigenschaft AllowClobber. Um die beiden Versionen nebeneinander laufen zu lassen, behalten Sie die Eigenschaft AllowClobber bei.

Nach der Installation laden Sie das Modul, das Sie verwenden möchten, mit dem Befehl Import-Module.

Import-Module Microsoft.Graph
Import-Module Microsoft.Graph.Beta

Um die geladenen Module zu überprüfen, führen Sie Folgendes aus:

Get-Module -Name Microsoft.Graph*
Ausführung des Befehls Get-Module
Abbildung 2: Führen Sie den Befehl Get-Module aus, um sicherzustellen, dass Sie die v2 Microsoft Graph PowerShell-Module geladen haben.

Sobald sie geladen sind, können Sie die Module v1 und beta verwenden und die Befehle v1 und beta in einem Skript ausführen, ohne den Befehl Select-MgProfile verwenden zu müssen.

Get-MgUser
Get-MgBetaUser

Microsoft Graph PowerShell SDK v2-Änderungen erleichtern die Verwaltungsarbeit

Microsoft Graph PowerShell SDK vereinfacht die Verwaltung von Mandanten durch die Automatisierung täglicher Aufgaben. Das SDK verwaltet komplexe Funktionen wie Drosselung, Wiederholungen, Umleitungen und Authentifizierung.

Die Veröffentlichung von Microsoft Graph PowerShell SDK v2 bringt eine verbesserte Erfahrung. Die Module v1 und beta verwenden unterschiedliche Präfixe in ihren Cmdlets. Das hilft Ihnen, robustere und weniger fehleranfällige Skripte zu schreiben. Die Präfixe in den Cmdlets helfen bei der Identifizierung, wo sich die Vorschaufunktionalität befindet, und machen es weniger zweideutig, die Verwendung von Produktions- und Vorschauendpunkten in einem Skript zu kombinieren.

Erfahren Sie mehr über Serverbetriebssysteme