Développer un plug-in de passerelle

S’applique à : Windows Admin Center, Windows Admin Center Preview

Un plug-in de passerelle Windows Admin Center active la communication d’API à partir de l’interface utilisateur de votre outil ou solution vers un nœud cible. Windows Admin Center héberge un service de passerelle qui relaie les commandes et les scripts des plug-ins de passerelle à exécuter sur les nœuds cibles. Le service de passerelle peut être étendu pour inclure des plug-ins de passerelle personnalisés qui prennent en charge des protocoles autres que ceux par défaut.

Ces plug-ins de passerelle sont inclus par défaut avec Windows Admin Center :

  • Plug-in de passerelle PowerShell
  • Plug-in de passerelle WMI

Si vous souhaitez communiquer avec un protocole autre que PowerShell ou WMI, tel qu’avec REST, vous pouvez créer votre propre plug-in de passerelle. Les plug-ins de passerelle sont chargés dans un AppDomain distinct du processus de passerelle existant, mais utilisent le même niveau d’élévation pour les droits.

Notes

Vous n’êtes pas familiarisé avec les différents types d’extension ? En savoir plus sur l’architecture d’extensibilité et les types d’extension.

Important

Le kit de développement logiciel (SDK) et les outils de développement de Windows Admin Center n’ont pas encore été mis à jour pour prendre en charge le développement de plug-ins de passerelle compatibles avec la passerelle modernisée Windows Admin Center. Le fait de suivre ce guide ne permettra pas d’obtenir une extension compatible avec la passerelle modernisée.

Si vous souhaitez développer un plug-in de passerelle pour la passerelle modernisée ou mettre à niveau votre plug-in de passerelle existant, envoyez un email à wacextensionrequest@microsoft.com.

Préparation de votre environnement

Si ce n’est pas déjà fait, préparez votre environnement en installant les dépendances et les prérequis globaux requis pour tous les projets.

Créer un plug-in de passerelle (bibliothèque C#)

Pour créer un plug-in de passerelle personnalisé, créez une classe C# qui implémente l’interface IPlugIn à partir de l’espace Microsoft.ManagementExperience.FeatureInterfaces de noms.

Notes

L’interface IFeature, disponible dans les versions antérieures du Kit de développement logiciel (SDK), est désormais signalée comme obsolète. Tous les développements de plug-ins de passerelle doivent utiliser IPlugIn (ou éventuellement la classe abstraite HttpPlugIn).

Télécharger un exemple depuis GitHub

Pour commencer rapidement avec un plug-in de passerelle personnalisée, vous pouvez cloner ou télécharger une copie de notre exemple de projet de plug-in C# à partir de notre site GitHub du SDK Windows Admin Center.

Ajouter du contenu

Ajoutez un nouveau contenu à votre copie clonée de l’exemple de projet de plug-in C# (ou votre propre projet) pour contenir vos API personnalisées, puis générez votre fichier DLL de plug-in de passerelle personnalisé à utiliser dans les étapes suivantes.

Déployer le plug-in à des fins de test

Testez votre DLL de plug-in de passerelle personnalisé en la chargeant dans Windows Admin Center processus de passerelle.

Windows Admin Center recherche tous les plug-ins d’un plugins dossier dans le dossier Application Data de l’ordinateur actuel (à l’aide de la valeur CommonApplicationData de l’énumération Environment.SpecialFolder). Sur Windows 10 cet emplacement est C:\ProgramData\Server Management Experience. Si le plugins dossier n’existe pas encore, vous pouvez le créer vous-même.

Notes

Vous pouvez remplacer l’emplacement du plug-in dans une build de débogage en mettant à jour la valeur de configuration « StaticsFolder ». Si vous déboguez localement, ce paramètre se trouve dans le App.Config de la solution de bureau.

Dans le dossier plug-ins (dans cet exemple, C:\ProgramData\Server Management Experience\plugins)

  • Créez un nouveau dossier portant le même nom que la Name valeur de propriété de dans Feature votre DLL de plug-in de passerelle personnalisé (dans notre exemple de projet, le Name est « Sample Uno »)
  • Copiez votre fichier DLL de plug-in de passerelle personnalisé dans ce nouveau dossier
  • Redémarrez le processus Windows Admin Center

Une fois le processus Windows Administration redémarré, vous pouvez exercer les API dans votre DLL de plug-in de passerelle personnalisé en émettant un GET, PUT, PATCH, DELETE ou POST àhttp(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}

Facultatif : attacher au plug-in pour le débogage

Dans Visual Studio 2017, dans le menu Déboguer, sélectionnez « Attacher au processus ». Dans la fenêtre suivante, faites défiler la liste Processus disponibles et sélectionnez SMEDesktop.exe, puis cliquez sur « Attacher ». Une fois le débogueur démarré, vous pouvez placer un point d’arrêt dans votre code de fonctionnalité, puis effectuer un exercice au format d’URL ci-dessus. Pour notre exemple de projet (nom de fonctionnalité : « Sample Uno ») l’URL est la suivante : "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

Créer une extension d’outil avec le SDK de Windows Admin Center

Nous devons maintenant créer une extension d’outil à partir de laquelle vous pouvez appeler votre plug-in de passerelle personnalisé. Créez ou accédez à un dossier où vous souhaitez stocker vos fichiers projet, ouvrez une invite de commandes et définissez ce dossier comme répertoire de travail. À l’aide du Kit de développement logiciel (SDK) Windows Admin Center qui a été installé précédemment, créez une nouvelle extension avec la syntaxe suivante :

wac create --company "{!Company Name}" --tool "{!Tool Name}"
Valeur Explication Exemple
{!Company Name} Nom de votre entreprise (avec espaces) Contoso Inc
{!Tool Name} Nom de votre outil (avec espaces) Manage Foo Works

Voici un exemple d’utilisation :

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

Cela crée un dossier à l’intérieur du répertoire de travail actuel en utilisant le nom que vous avez spécifié pour votre outil, copie tous les fichiers de modèles nécessaires dans votre projet et configure les fichiers avec le nom de votre entreprise et de l’outil.

Ensuite, remplacez le répertoire dans le dossier que vous venez de créer, puis installez les dépendances locales requises en exécutant la commande suivante :

npm install

Une fois cette opération terminée, vous avez configuré tout ce dont vous avez besoin pour charger votre nouvelle extension dans Windows Admin Center.

Connecter votre extension d’outil à votre plug-in de passerelle personnalisé

Maintenant que vous avez créé une extension avec le SDK Windows Admin Center, vous êtes prêt à connecter votre extension d’outil à votre plug-in de passerelle personnalisé en procédant comme suit :

Générer et charger la version test de votre extension

Ensuite, générez et chargez la version test de votre extension dans Windows Admin Center. Ouvrez une fenêtre de commande, remplacez le répertoire par votre répertoire source, puis vous êtes prêt à générer.

  • Générer et servir avec gulp :

    gulp build
    gulp serve -p 4201
    

Notez que vous devez choisir un port actuellement gratuit. Veillez à ne pas essayer d’utiliser le port sur lequel Windows Admin Center s’exécute.

La version test de votre projet peut être chargée dans une instance locale de Windows Admin Center à des fins de test en attachant le projet servi localement à Windows Admin Center.

  • Lancer Windows Admin Center dans un navigateur web

  • Ouvrir le débogueur (F12)

  • Ouvrez la console et tapez la commande suivante :

    MsftSme.sideLoad("http://localhost:4201")
    
  • Actualiser le navigateur web

Votre projet est désormais visible dans la liste Outils avec (la version test chargée) en regard du nom.

Cibler une autre version du Kit de développement logiciel (SDK) Windows Admin Center

Il est facile de maintenir votre extension à jour avec les modifications apportées au Kit de développement logiciel (SDK) et à la plateforme. Découvrez comment cibler une autre version du Kit de développement logiciel (SDK) Windows Admin Center.