Поделиться через


Разработка подключаемого модуля шлюза

Подключаемый модуль шлюза Windows Admin Center обеспечивает обмен данными API из пользовательского интерфейса средства или решения на целевой узел. Windows Admin Center размещает службу шлюза, которая передает команды и скрипты из подключаемых модулей шлюза, выполняемых на целевых узлах. Служба шлюза может быть расширена, чтобы включить пользовательские подключаемые модули шлюза, поддерживающие протоколы, отличные от стандартных.

Эти подключаемые модули шлюза включены по умолчанию в Windows Admin Center:

  • Подключаемый модуль шлюза PowerShell
  • Подключаемый модуль шлюза WMI

Если вы хотите взаимодействовать с протоколом, отличным от PowerShell или WMI, например с помощью REST, можно создать собственный подключаемый модуль шлюза. Подключаемые модули шлюза загружаются в отдельный домен приложений из существующего процесса шлюза, но используйте тот же уровень повышения прав.

Примечание.

Не знакомы с различными типами расширений? Дополнительные сведения об архитектуре расширяемости и типах расширений.

Внимание

Пакет SDK для Windows Admin Center и средства разработчика еще не были обновлены для поддержки разработки подключаемых модулей шлюза, совместимых с обновленным шлюзом Windows Admin Center. После выполнения этого руководства расширение не приведет к совместимости с обновленным шлюзом.

Если вы заинтересованы в разработке подключаемого модуля шлюза для модернизированного шлюза или обновлении существующего подключаемого модуля шлюза, отправьте сообщение электронной почты wacextensionrequest@microsoft.com.

Подготовка среды

Если вы еще не сделали этого, подготовьте среду, установив зависимости и глобальные предварительные требования, необходимые для всех проектов.

Создание подключаемого модуля шлюза (библиотека C#)

Чтобы создать пользовательский подключаемый модуль шлюза, создайте класс C#, реализующий IPlugIn интерфейс из Microsoft.ManagementExperience.FeatureInterfaces пространства имен.

Примечание.

Интерфейс IFeature , доступный в более ранних версиях пакета SDK, теперь помечен как устаревший. Все разработки подключаемого модуля шлюза должны использовать IPlugIn (или при необходимости абстрактный класс HttpPlugIn).

Скачивание примера из GitHub

Чтобы быстро приступить к работе с пользовательским подключаемым модулем шлюза, можно клонировать или скачать копию примера проекта подключаемого модуля C# на сайте GitHub пакета SDK для Windows Admin Center.

Добавление содержимого

Добавьте новое содержимое в клонированную копию примера проекта подключаемого модуля C# (или собственного проекта), чтобы содержать пользовательские API, а затем создайте пользовательский DLL-файл подключаемого модуля шлюза, который будет использоваться в следующих шагах.

Развертывание подключаемого модуля для тестирования

Проверьте библиотеку DLL пользовательского подключаемого модуля шлюза, загрузив ее в процесс шлюза Windows Admin Center.

Windows Admin Center ищет все подключаемые модули в plugins папке "Данные приложения" текущего компьютера (используя значение CommonApplicationData перечисления Environment.SpecialFolder). В Windows 10 это расположение C:\ProgramData\Server Management Experience. plugins Если папка еще не существует, ее можно создать самостоятельно.

Примечание.

Вы можете переопределить расположение подключаемого модуля в отладочной сборке, обновив значение конфигурации StaticsFolder. Если вы выполняете локальную отладку, этот параметр находится в app.Config решения desktop.

Внутри папки подключаемых модулей (в этом примере ) C:\ProgramData\Server Management Experience\plugins

  • Создайте новую папку с тем же именем, что Name и значение свойства в библиотеке DLL подключаемого модуля пользовательского Feature шлюза (в нашем примере проекта— Name пример uno)
  • Скопируйте DLL-файл пользовательского подключаемого модуля шлюза в новую папку
  • Перезапустите процесс Windows Admin Center

После перезапуска процесса администратора Windows вы сможете выполнять API-интерфейсы в библиотеке DLL подключаемого модуля пользовательского шлюза путем выдачи get, PUT, PATCH, DELETE или POST в http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}

Необязательно. Присоединение к подключаемого модуля для отладки

В Visual Studio 2017 в меню отладки выберите "Присоединиться к процессу". В следующем окне прокрутите список доступных процессов и выберите SMEDesktop.exe, а затем нажмите кнопку "Подключить". После запуска отладчика можно поместить точку останова в код функции, а затем выполнить упражнение с помощью приведенного выше формата URL-адреса. Для нашего примера проекта (имя функции: "Пример uno") URL-адрес: "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

Создание расширения средства с помощью пакета SDK Для Windows Admin Center

Теперь необходимо создать расширение средства, из которого можно вызвать подключаемый модуль пользовательского шлюза. Создайте или перейдите к папке, в которой вы хотите хранить файлы проекта, откройте командную строку и задайте эту папку в качестве рабочего каталога. Используя пакет SDK Для Windows Admin Center, установленный ранее, создайте новое расширение со следующим синтаксисом:

wac create --company "{!Company Name}" --tool "{!Tool Name}"
Значение Объяснение Пример
{!Company Name} Название вашей компании (с пробелами) Contoso Inc
{!Tool Name} Имя средства (с пробелами) Manage Foo Works

Ниже приведен пример использования:

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

При этом создается новая папка в текущем рабочем каталоге с помощью имени, указанного для средства, копирует все необходимые файлы шаблонов в проект и настраивает файлы с именем вашей компании и средства.

Затем измените каталог в только что созданную папку, а затем установите необходимые локальные зависимости, выполнив следующую команду:

npm install

После завершения работы вы настроили все, что необходимо загрузить новое расширение в Windows Admin Center.

Подключение расширения средства к подключаемого модуля пользовательского шлюза

Теперь, когда вы создали расширение с пакетом SDK Для Windows Admin Center, вы можете подключить расширение средства к подключаемого модуля пользовательского шлюза, выполнив следующие действия.

Сборка и загрузка расширения на стороне

Затем создайте и загрузите расширение в Windows Admin Center. Откройте командное окно, измените каталог на исходный каталог, а затем готовы к сборке.

  • Создание и обслуживание с помощью gulp:

    gulp build
    gulp serve -p 4201
    

Обратите внимание, что необходимо выбрать порт, который в настоящее время является бесплатным. Убедитесь, что вы не пытаетесь использовать порт, на котором запущен Центр администрирования Windows.

Проект можно загрузить на локальный экземпляр Центра администрирования Windows для тестирования, подключив локально обслуживаемый проект в Центр администрирования Windows.

  • Запуск Центра администрирования Windows в веб-браузере

  • Открытие отладчика (F12)

  • Откройте консоль и введите следующую команду:

    MsftSme.sideLoad("http://localhost:4201")
    
  • Обновление веб-браузера

Теперь проект будет отображаться в списке инструментов с (загруженной на стороне) рядом с именем.

Нацелимся на другую версию пакета SDK Для Windows Admin Center

Отслеживание актуальности расширения с изменениями пакета SDK и изменениями платформы легко. Узнайте, как использовать другую версию пакета SDK для Windows Admin Center.