Sviluppare un plug-in del gateway

Un plug-in gateway di Windows Admin Center consente la comunicazione API dall'interfaccia utente dello strumento o della soluzione a un nodo di destinazione. Windows Admin Center ospita un servizio gateway che inoltra comandi e script dai plug-in del gateway da eseguire nei nodi di destinazione. Il servizio gateway può essere esteso per includere plug-in gateway personalizzati che supportano protocolli diversi da quelli predefiniti.

Questi plug-in gateway sono inclusi per impostazione predefinita con Windows Admin Center:

  • Plug-in del gateway PowerShell
  • Plug-in del gateway WMI

Se si vuole comunicare con un protocollo diverso da PowerShell o WMI, ad esempio con REST, è possibile creare un plug-in gateway personalizzato. I plug-in del gateway vengono caricati in un AppDomain separato dal processo del gateway esistente, ma usano lo stesso livello di elevazione dei diritti.

Nota

Non si ha familiarità con i diversi tipi di estensione? Altre informazioni sull'architettura di estendibilità e sui tipi di estensione.

Importante

Windows Admin Center SDK e gli strumenti di sviluppo non sono ancora stati aggiornati per supportare lo sviluppo di plug-in gateway compatibili con il gateway modernizzato di Windows Admin Center. Seguendo questa guida, non verrà restituita un'estensione compatibile con il gateway modernizzato.

Se si è interessati allo sviluppo di un plug-in gateway per il gateway modernizzato o all'aggiornamento del plug-in gateway esistente, inviare un messaggio di posta elettronica a wacextensionrequest@microsoft.com.

Predisporre l'ambiente

Se non è già stato fatto, preparare l'ambiente installando le dipendenze e i prerequisiti globali necessari per tutti i progetti.

Creare un plug-in gateway (libreria C#)

Per creare un plug-in gateway personalizzato, creare una nuova classe C# che implementa l'interfaccia IPlugIn dallo spazio dei nomi Microsoft.ManagementExperience.FeatureInterfaces.

Nota

L'interfaccia IFeature, disponibile nelle versioni precedenti dell'SDK, è ora contrassegnata come obsoleta. Tutto lo sviluppo del plug-in del gateway deve usare IPlugIn (o facoltativamente la classe astratta HttpPlugIn).

Scaricare l'esempio da GitHub

Per iniziare rapidamente a usare un plug-in gateway personalizzato, è possibile clonare o scaricare una copia del progetto di plug-in C# di esempio dal sito di GitHub di Windows Admin Center SDK.

Aggiungere contenuto

Aggiungere nuovo contenuto alla copia clonata del progetto di plug-in C# di esempio (o un progetto personalizzato) per contenere le API personalizzate, quindi compilare il file DLL del plug-in del gateway personalizzato da usare nei passaggi successivi.

Distribuire il plug-in per i test

Testare la DLL del plug-in del gateway personalizzato caricandola nel processo del gateway di Windows Admin Center.

Windows Admin Center cerca tutti i plug-in in una cartella plugins nella cartella Dati applicazione del computer corrente (usando il valore CommonApplicationData dell'enumerazione Environment.SpecialFolder). In Windows 10 questo percorso è C:\ProgramData\Server Management Experience. Se la cartella plugins non esiste ancora, è possibile crearla manualmente.

Nota

È possibile eseguire l'override del percorso del plug-in in una compilazione di debug aggiornando il valore di configurazione "StaticsFolder". Se si esegue il debug in locale, questa impostazione si trova in App.Config della soluzione Desktop.

All'interno della cartella plug-in (in questo esempio C:\ProgramData\Server Management Experience\plugins)

  • Creare una nuova cartella con lo stesso nome del valore della proprietà Name di Feature nella DLL del plug-in del gateway personalizzato (nel progetto di esempio Name è "Sample Uno")
  • Copiare il file DLL del plug-in del gateway personalizzato in questa nuova cartella
  • Riavviare il processo di Windows Admin Center

Dopo il riavvio del processo di Windows Admin, sarà possibile usare le API nella DLL del plug-in del gateway personalizzato eseguendo un comando GET, PUT, PATCH, DELETE o POST per http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}

Facoltativo: collegarsi al plug-in per il debug

In VIsual Studio 2017, scegliere "Connetti a processo" dal menu Debug. Nella finestra successiva scorrere l'elenco Processi disponibili e selezionare SMEDesktop.exe, quindi fare clic su "Allega". Dopo l'avvio del debugger, è possibile inserire un punto di interruzione nel codice della funzionalità e quindi eseguire l'esercizio tramite il formato URL precedente. Per il progetto di esempio (nome funzionalità: "Sample Uno") l'URL è: "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

Creare un'estensione dello strumento con Windows Admin Center SDK

È ora necessario creare un'estensione dello strumento da cui è possibile chiamare il plug-in del gateway personalizzato. Creare o passare a una cartella in cui archiviare i file di progetto, aprire un prompt dei comandi e impostare tale cartella come directory di lavoro. Usando Windows Admin Center SDK installato in precedenza, creare una nuova estensione con la sintassi seguente:

wac create --company "{!Company Name}" --tool "{!Tool Name}"
Valore Spiegazione Esempio
{!Company Name} Nome aziendale (con spazi) Contoso Inc
{!Tool Name} Nome dello strumento (con spazi) Manage Foo Works

Ecco un esempio di utilizzo:

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

Verrà creata una nuova cartella all'interno della directory di lavoro corrente usando il nome specificato per lo strumento, verranno copiati tutti i file modello necessari nel progetto e verranno configurati i file con il nome dell'azienda e dello strumento.

Modificare quindi la directory nella cartella appena creata e installare le dipendenze locali necessarie eseguendo il comando seguente:

npm install

Al termine, si è configurato tutto il necessario per caricare la nuova estensione in Windows Admin Center.

Connettere l'estensione dello strumento al plug-in del gateway personalizzato

Dopo aver creato un'estensione con Windows Admin Center SDK, è possibile connettere l'estensione dello strumento al plug-in gateway personalizzato seguendo questa procedura:

Compilare e caricare localmente l'estensione

Successivamente, compilare e trasferire localmente l'estensione in Windows Admin Center. Aprire una finestra di comando, passare alla directory di origine e si sarà pronti per la compilazione.

  • Compilare e gestire con gulp:

    gulp build
    gulp serve -p 4201
    

Si noti che è necessario scegliere una porta attualmente libera. Assicurarsi di non tentare di usare la porta in cui è in esecuzione Windows Admin Center.

Il progetto può essere trasferito localmente in un'istanza locale di Windows Admin Center per il test, collegando il progetto gestito localmente in Windows Admin Center.

  • Avviare Windows Admin Center in un Web browser

  • Aprire il debugger (F12)

  • Aprire la console e immettere il comando seguente:

    MsftSme.sideLoad("http://localhost:4201")
    
  • Aggiornare il Web browser

Il progetto sarà ora visibile nell'elenco Strumenti con (sideload) accanto al nome.

Specificare come destinazione una versione diversa di Windows Admin Center SDK

Mantenere aggiornata l'estensione con le modifiche dell'SDK e le modifiche della piattaforma è facile. Leggere come specificare come destinazione una versione diversa di Windows Admin Center SDK.