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


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

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

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

  • Подключаемый модуль шлюза PowerShell
  • Подключаемый модуль шлюза инструментария управления Windows (WMI)

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

Примечание.

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

Внимание

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

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

Подключаемые модули шлюза, разработанные на .NET 6, когда обновление серверной части было в предварительной версии, могут не работать правильно с последней версией Windows Admin Center из-за , критических изменений между .NET 6 и .NET 8. Мы рекомендуем обновить расширение до .NET 8 как можно скорее.

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

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

Создание подключаемого модуля шлюза (библиотека 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.