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 vonFeature
in der DLL Ihres benutzerdefinierten Gateway-Plug-Ins (in unserem Beispielprojekt istName
„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:
- Hinzufügen eines leeren Moduls
- Verwenden Ihres benutzerdefinierten Gateway-Plug-Ins in der Toolerweiterung
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.