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
  • 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. Wenn Sie diesem Leitfaden folgen, führt dies nicht zu einer Erweiterung, die mit dem modernisierten Gateway kompatibel ist.

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.

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 dies der Speicherort 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 Admin Center-Prozess neu gestartet wurde, können Sie die APIs in der DLL Ihres benutzerdefinierten Gateway-Plug-Ins ausführen, indem Sie GET, PUT, PATCH, DELETE oder POST an http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier} ausgeben.

Optional: Anhängen des Plug-Ins zum Debuggen

Wählen Sie in Visual Studio 2017 im Menü „Debuggen“ die Option „An den Prozess anhängen“ aus. Scrollen Sie im nächsten Fenster durch die Liste „Verfügbare Prozesse“, wählen Sie „SMEDesktop.exe“ aus, und klicken Sie dann auf „Anfügen“. Sobald der Debugger gestartet wurde, können Sie einen Haltepunkt in Ihrem Featurecode einfügen und dann die Platzhalter im obigen URL-Format ersetzen. 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"

Dadurch wird ein neuer Ordner im aktuellen Arbeitsverzeichnis mit dem Namen erstellt, den Sie für Ihr Tool angegeben haben. Zudem werden alle erforderlichen Vorlagendateien in Ihr Projekt kopiert sowie die Dateien mit dem Namen Ihres Unternehmens und Ihres Tools konfiguriert.

Wechseln Sie als Nächstes in den soeben erstellten Ordner. Führen Sie den folgenden Befehl aus, um die erforderlichen lokalen Abhängigkeiten zu installieren:

npm install

Sie haben nun alle Einrichtungsschritte abgeschlossen, um Ihre neue Erweiterung in Windows Admin Center zu laden.

Verbinden Ihrer Toolerweiterung mit Ihrem benutzerdefinierten Gateway-Plug-In

Nachdem Sie eine Erweiterung mit dem Windows Admin Center SDK erstellt haben, können Sie jetzt 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
    

Beachten Sie, dass der ausgewählte Port frei sein muss. Stellen Sie sicher, dass Sie nicht den Port 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.