Freigeben über


Entwickeln eines Gateway-Plug-Ins

Ein Windows Admin Center-Gateway-Plug-In ermöglicht die API-Kommunikation ausgehend von der Benutzeroberfläche Ihres Tools oder Ihrer Lösung mit einem Zielknoten. Windows Admin Center hostet einen Gatewaydienst, der Befehle und Skripts von Gateway-Plug-Ins weitergibt, die auf Zielknoten ausgeführt werden sollen. Der Gatewaydienst kann um benutzerdefinierte Gateway-Plug-Ins erweitert werden, die andere Protokolle als die Standardprotokolle unterstützen.

Diese Gateway-Plug-Ins sind standardmäßig in Windows Admin Center enthalten:

  • PowerShell-Gateway-Plug-In
  • Windows-Verwaltungsinstrumentation (WMI)-Gateway-Plug-In

Wenn Sie mit einem anderen Protokoll als PowerShell oder WMI kommunizieren möchten, z. B. mit REST, können Sie ein eigenes Gateway-Plug-In erstellen. Gateway-Plug-Ins werden vom vorhandenen Gatewayprozess in eine separate AppDomain geladen, verwenden jedoch die gleiche Rechteerweiterungsebene.

Hinweis

Sie sind mit den verschiedenen Erweiterungstypen noch nicht vertraut? Erfahren Sie mehr über die Erweiterbarkeitsarchitektur und die Erweiterungstypen.

Wichtig

Das Windows Admin Center SDK und die Entwicklertools wurden noch nicht aktualisiert, um die Entwicklung von Gateway-Plug-Ins zu unterstützen, die mit dem modernisierten Windows Admin Center-Gateway kompatibel sind. Nach diesem Leitfaden wird keine .NET 8-Erweiterung mit dem modernisierten Gateway kompatibel sein.

Wenn Sie an der Entwicklung eines Gateway-Plug-Ins für das modernisierte Gateway oder das Upgrade Ihres vorhandenen Gateway-Plug-Ins interessiert sind, senden Sie eine E-Mail an wacextensionrequest@microsoft.com.

Gateway-Plug-Ins, die in .NET 6 entwickelt wurden, während das Back-End-Update in der Vorschau war, funktionieren möglicherweise aufgrund einschneidenden Änderungen von .NET 6 zu .NET 8 nicht ordnungsgemäß mit der neuesten Version von Windows Admin Center. Wir empfehlen, die Erweiterung auf .NET 8 so schnell wie möglich zu aktualisieren.

Vorbereiten der Umgebung

Falls Sie dies noch nicht getan haben, bereiten Sie Ihre Umgebung vor. Installieren Sie hierzu Abhängigkeiten und globale Voraussetzungen, die für alle Projekte erforderlich sind.

Erstellen eines Gateway-Plug-Ins (C#-Bibliothek)

Um ein benutzerdefiniertes Gateway-Plug-In zu erstellen, erstellen Sie eine neue C#-Klasse, die die IPlugIn-Schnittstelle aus dem Microsoft.ManagementExperience.FeatureInterfaces-Namespace implementiert.

Hinweis

Die IFeature-Schnittstelle, die in früheren Versionen des SDK verfügbar war, gilt jetzt als veraltet. Alle Gateway-Plug-In-Entwicklungen sollten IPlugIn (oder optional die abstrakte HttpPlugIn-Klasse) verwenden.

Herunterladen eines Beispiels von GitHub

Um sich schnell mit der Entwicklung von benutzerdefinierten Gateway-Plug-Ins vertraut zu machen, können Sie eine Kopie unseres Plug-In-Beispielprojekts in C# von unserer GitHub-Website für Windows Admin Center SDK klonen oder herunterladen.

Inhalt hinzufügen

Fügen Sie Ihrer geklonten Kopie des Plug-In-Beispielprojekts in C# (oder eines eigenen Projekts) neue Inhalte hinzu, sodass Ihre benutzerdefinierten APIs enthalten sind, und erstellen Sie dann die DLL-Datei für Ihr benutzerdefinierte Gateway-Plug-In, die in den nächsten Schritten verwendet werden soll.

Bereitstellen des Plug-Ins für Tests

Testen Sie die DLL für Ihr benutzerdefiniertes Gateway-Plug-In, indem Sie sie in den Windows Admin Center-Gatewayprozess laden.

Windows Admin Center sucht nach allen Plug-Ins in einem plugins-Ordner im Ordner „Application Data“ des aktuellen Computers (unter Verwendung des CommonApplicationData-Werts der Environment.SpecialFolder-Enumeration). Unter Windows 10 ist dieser Ort C:\ProgramData\Server Management Experience. Wenn der plugins-Ordner noch nicht vorhanden ist, können Sie den Ordner selbst erstellen.

Hinweis

Sie können den Plug-In-Speicherort in einem Debugbuild überschreiben, indem Sie den StaticsFolder-Konfigurationswert aktualisieren. Wenn Sie lokal debuggen, befindet sich diese Einstellung in der App.Config-Datei der Desktoplösung.

Gehen Sie im plugins-Ordner (in diesem Beispiel C:\ProgramData\Server Management Experience\plugins) folgendermaßen vor:

  • Erstellen Sie einen neuen Ordner mit demselben Namen wie der Name-Eigenschaftswert von Feature in der DLL Ihres benutzerdefinierten Gateway-Plug-Ins (in unserem Beispielprojekt ist Name „Sample Uno“).
  • Kopieren Sie die DLL-Datei des benutzerdefinierten Gateway-Plug-Ins in diesen neuen Ordner.
  • Starten Sie den Windows Admin Center-Prozess neu.

Nachdem der Windows-Verwaltungsprozess neu gestartet wurde, können Sie die APIs in Ihrem benutzerdefinierten Gateway-Plug-In-DLL verwenden, indem Sie eine GET-, PUT-, PATCH-, DELETE- oder POST-Anfrage an http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier} senden.

Optional: Anhängen des Plug-Ins zum Debuggen

Wählen Sie in Visual Studio 2017 im Menü „Debuggen” die Option „An Prozess anhängen” aus. Scrollen Sie im nächsten Fenster durch die Liste „Verfügbare Prozesse”, und wählen Sie SMEDesktop.exe aus, und klicken Sie dann auf „Anfügen”. Nachdem der Debugger gestartet wurde, können Sie einen Haltepunkt in Ihrem Funktionscode platzieren und dann das URL-Format testen. Für unser Beispielprojekt (Featurename: „Sample Uno“) lautet die URL: "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

Erstellen einer Toolerweiterung mit dem Windows Admin Center SDK

Jetzt müssen wir eine Toolerweiterung erstellen, in der Sie Ihr benutzerdefiniertes Gateway-Plug-In aufrufen können. Erstellen Sie einen Ordner, in dem Sie Ihre Projektdateien speichern möchten, oder navigieren Sie dorthin. Öffnen Sie eine Eingabeaufforderung, und legen Sie diesen Ordner als Arbeitsverzeichnis fest. Erstellen Sie mithilfe des zuvor installierten Windows Admin Center SDK eine neue Erweiterung mit der folgenden Syntax:

wac create --company "{!Company Name}" --tool "{!Tool Name}"
Wert Erklärung Beispiel
{!Company Name} Name Ihres Unternehmens (mit Leerzeichen) Contoso Inc
{!Tool Name} Name Ihres Tools (mit Leerzeichen) Manage Foo Works

Beispiel zur Verwendung:

wac create --company "Contoso Inc" --tool "Manage Foo Works"

Dieser Befehl erstellt einen neuen Ordner im aktuellen Arbeitsverzeichnis unter Verwendung des für Ihr Tool angegebenen Namens, kopiert alle erforderlichen Vorlagendateien in Ihr Projekt und konfiguriert die Dateien mit ihrem Firmen- und Toolnamen.

Ändern Sie als Nächstes das Verzeichnis in den Ordner, und installieren Sie dann die erforderlichen lokalen Abhängigkeiten, indem Sie den folgenden Befehl ausführen:

npm install

Sobald dieser Befehl abgeschlossen ist, haben Sie alles, was Sie benötigen, um Ihre neue Erweiterung in das Windows Admin Center zu laden.

Verbinden Ihrer Toolerweiterung mit Ihrem benutzerdefinierten Gateway-Plug-In

Nachdem Sie nun eine Erweiterung mit dem Windows Admin Center SDK erstellt haben, können Sie Ihre Toolerweiterung mit Ihrem benutzerdefinierten Gateway-Plug-In verbinden, indem Sie die folgenden Schritte ausführen:

Erstellen und Querladen der Erweiterung

Erstellen Sie als Nächstes die Erweiterung, und laden Sie sie in Windows Admin Center. Öffnen Sie ein Befehlsfenster, und wechseln Sie in Ihr Quellverzeichnis, um die Erweiterung zu erstellen.

  • Führen Sie die Erstellung und Bereitstellung mit gulp aus:

    gulp build
    gulp serve -p 4201
    

Der von Ihnen ausgewählte Port muss zurzeit kostenlos sein. Stellen Sie sicher, dass Sie nicht versuchen, den Port zu verwenden, auf dem Windows Admin Center ausgeführt wird.

Sie können Ihr Projekt zu Testzwecken in eine lokale Windows Admin Center-Instanz querladen, indem Sie das lokal bereitgestellte Projekt an Windows Admin Center anhängen.

  • Starten Sie Windows Admin Center in einem Webbrowser.

  • Öffnen Sie den Debugger (F12).

  • Öffnen Sie die Konsole, und geben Sie den folgenden Befehl ein:

    MsftSme.sideLoad("http://localhost:4201")
    
  • Aktualisieren Sie den Webbrowser.

Ihr Projekt wird nun in der Liste der verfügbaren Tools mit dem Zusatz „(quergeladen)“ neben dem Namen angezeigt.

Verwenden einer anderen Version des Windows Admin Center SDK als Ziel

Halten Sie Ihre Erweiterung mit SDK- und Plattformänderungen problemlos auf dem neuesten Stand. Weitere Informationen zur Verwendung einer anderen Version des Windows Admin Center SDK als Ziel finden Sie hier.