- Основные сведения о расширениях Windows Admin Center Understanding Windows Admin Center Extensions
- Расширения решения Solution extensions
- Расширения средства Tool extensions
- Подключаемые модули шлюза Gateway plugins
- Дальнейшие действия Next steps
- Публикация расширений Publishing Extensions
- Варианты публикации Publishing Options
- Публикация в веб-канале расширения центра администрирования Windows Publishing to the Windows Admin Center extension feed
- Публикация в другом веб-канале NuGet Publishing to a different NuGet feed
- Публикация в общую папку Publishing to a file share
- Подготовка расширения к выпуску Preparing your extension for release
- Рассмотрите возможность выпуска в качестве предварительной версии Consider releasing as a Preview release
- Создание пакета расширения Creating an extension package
- 1. Создание расширения 1. Build your extension
- Расширения пользовательского интерфейса UI Extensions
- Подключаемые модули шлюза Gateway Plugins
- 2. Создание файла nuspec 2. Create the .nuspec file
- Обязательные или Рекомендуемые свойства Required or Recommended Properties
- 3. Создание пакета NuGet для расширения 3. Build the extension NuGet package
- 4. Подписывание пакета NuGet для расширения 4. Signing your extension NuGet package
- 5. Тестирование пакета NuGet для расширения 5. Test your extension NuGet package
- Публикация расширения в веб-канале центра администрирования Windows Publishing your extension to the Windows Admin Center feed
- Отправка запроса на проверку расширения в корпорацию Майкрософт Submit an extension review request to Microsoft
- Отправка пакета расширения для проверки и публикации Submit your extension package for review and publishing
Основные сведения о расширениях Windows Admin Center Understanding Windows Admin Center Extensions
Область применения. Windows Admin Center, ознакомительная версия Windows Admin Center Applies To: Windows Admin Center, Windows Admin Center Preview
Если вы еще не знакомы с работой центра администрирования Windows, давайте начнем с высокоуровневой архитектуры. In case you’re not yet familiar with how Windows Admin Center works, let’s start with the high-level architecture. Windows Admin Center состоит из двух основных компонентов: Windows Admin Center is comprised of two main components:
- Упрощенная веб-служба, которая предоставляет веб-страницы с пользовательским интерфейсом Windows Admin Center в ответ на запросы браузера. Lightweight web service that serves Windows Admin Center UI web pages to web browser requests.
- Шлюзовой компонент, который принимает запросы API-интерфейса REST от веб-страниц и ретранслирует вызовы WMI и скрипты PowerShell для выполнения на целевом сервере или в кластере. Gateway component that listens for REST API requests from the web pages and relays WMI calls or PowerShell scripts to be executed on a target server or cluster.
Веб-страницы с пользовательским интерфейсом Windows Admin Center, предоставляемые веб-службой, состоят из двух основных компонентов пользовательского интерфейса с точки зрения расширяемости — решений и средств, реализованных как расширения, а также расширением третьего типа, называемым подключаемыми модулями шлюза. The Windows Admin Center UI web pages served by the web service has two main UI components from an extensibility perspective, solutions and tools, which are implemented as extensions, and, a third extension type called gateway plugins.
Расширения решения Solution extensions
На начальном экране центра администрирования Windows по умолчанию можно добавлять подключения одного из четырех типов: подключения Windows Server, подключения к КОМПЬЮТЕРам Windows, кластеры серверов и подключения к виртуальным машинам Azure. In the Windows Admin Center home screen, by default, you can add connections that are one of four types – Windows Server connections, Windows PC connections, server clusters connections and Azure VMs connections. После добавления подключения имя и тип подключения будут отображаться на главной странице. Once a connection is added, the connection name and type will be displayed in the home screen. При нажатии имени подключения производится попытка подключения к целевому серверу или кластеру и последующая загрузка пользовательского интерфейса для этого подключения. Clicking on the connection name will attempt to connect to the target server or cluster and then load the UI for the connection.
Каждый из этих типов подключения сопоставляется с решением, а решения определяются с помощью типа расширения, называемого расширением «решения». Each of these connection types map to a solution and solutions are defined through a type of extension called “solution” extensions. Решения обычно определяют уникальный тип объекта, которым вы хотите управлять через Windows Admin Center, например серверы, ПК или отказоустойчивые кластеры. Solutions typically define a unique type of object you wish to manage through Windows Admin Center, such as servers, PCs or failover clusters. Можно также определить новое решение для подключения и управления другими устройствами, например сетевыми коммутаторами и Linux-серверами или даже службами, такими как службы удаленных рабочих столов. You could also define a new solution for connecting to and managing other devices such as network switches and Linux servers, or even services such as Remote Desktop Services.
Расширения средства Tool extensions
При нажатии на подключение на главной странице Windows Admin Center и подключении загружается расширение решения для выбранного типа подключения, и отображается пользовательский интерфейс решения, включая список средств в левой панели навигации. When you click on a connection in the Windows Admin Center home screen and connect, the solution extension for the selected connection type will be loaded and you will then be presented with the solution UI including a list of tools in the left navigation pane. При нажатии на средство загружается пользовательский интерфейс этого средства, и он отображается в правой панели. When you click on a tool, the tool UI is loaded and displayed in the right pane.
Каждое из этих средств определяется через второй тип расширения, называемый расширением «средства». Each of these tools are defined through a second type of extension called “tool” extensions. После загрузки средства оно может выполнять вызовы WMI и скрипты PowerShell на целевом сервере или в кластере и отображать информацию в пользовательском интерфейсе или выполнять команды на основании введенных пользователем данных. When a tool is loaded, it can execute WMI calls or PowerShell scripts on a target server or cluster and display information in the UI or execute commands based on user input. Расширение средства определяет, для каких решений оно должно отображаться, что обуславливает различие наборов средств для разных решений. A tool extension defines which solutions it should be displayed for, resulting in a different set of tools for each solution. При создании нового расширения решения вам дополнительно потребуется написать одно или несколько расширений средства, предоставляющих функциональные возможности для решения. If you are creating a new solution extension, you’ll additionally need to write one or more tool extensions that provide functionality for the solution.
Подключаемые модули шлюза Gateway plugins
Служба шлюза предоставляет API-интерфейсы REST для вызовов из пользовательского интерфейса и ретранслирует команды и скрипты для выполнения в целевой системе. The gateway service exposes REST APIs for the UI to call and relays commands and scripts to be executed on the target. Службу шлюза можно расширить с помощью подключаемых модулей шлюза, поддерживающих различные протоколы. The gateway service can be extended by gateway plugins that support different protocols. Windows Admin Center предварительно оснащается двумя подключаемыми модулями шлюза; один предназначен для выполнения скриптов PowerShell, а другой — для команд WMI. Windows Admin Center is pre-packaged with two gateway plugins, one for executing PowerShell scripts and the other for WMI commands. Если вам потребуется взаимодействовать с целевой системой по протоколу, отличному от PowerShell и WMI, например REST, вы можете создать предназначенный для этого подключаемый модуль шлюза. If you need to communicate with the target through a protocol other than PowerShell or WMI, such as REST, you can build a gateway plugin for this.
Дальнейшие действия Next steps
В зависимости от того, какие возможности необходимо создать в Windows Admin Center, достаточным может оказаться создание расширения средства для существующего серверного или кластерного решения, и это самый простой первый шаг в создании расширений. Depending on what capabilities you want to build in Windows Admin Center, building a tool extension for an existing server or cluster solution may be sufficient, and is the easiest first step into building extensions. Тем не менее, если ваш компонент предназначен для управления устройством, службой или чем-то совершенно новым, не сервером и не кластером, рассмотрите возможность создания расширения решения с помощью одного или нескольких средств. However, if your feature is for managing a device, service or something completely new, rather than a server or cluster, you should consider building a solution extension with one or more tools. И, наконец, если необходимо взаимодействовать с целевым объектом с помощью протокола, отличного от WMI или PowerShell, необходимо создать подключаемый модуль шлюза. And finally, if you need to communicate with the target through a protocol other than WMI or PowerShell, you’ll need to build a gateway plugin. Продолжите чтение сведенийо том, как настроить среду разработки и начать создание первого расширения. Continue reading on to learn how to set up your development environment and start writing your first extension.
Публикация расширений Publishing Extensions
Область применения. Windows Admin Center, ознакомительная версия Windows Admin Center Applies To: Windows Admin Center, Windows Admin Center Preview
После разработки расширения необходимо опубликовать его и сделать доступным для тестирования или использования другими пользователями. Once you’ve developed your extension, you will want to publish it and make it available to others to test or use. В зависимости от аудитории и целей публикации существует несколько вариантов, которые будут представлены ниже вместе с действиями и требованиями для публикации. Depending on your audience and purpose of publishing, there are a few options which we’ll introduce below along with the steps and requirements for publishing.
Варианты публикации Publishing Options
Существует три основных варианта для настраиваемых источников пакетов, поддерживаемых центром администрирования Windows. There are three primary options for configurable package sources that Windows Admin Center supports:
- Общедоступный веб-канал NuGet центра администрирования Windows для Microsoft Microsoft’s public Windows Admin Center NuGet feed
- Собственный частный веб-канал NuGet Your own private NuGet feed
- Локальный или сетевой файловый ресурс Local or network file share
Публикация в веб-канале расширения центра администрирования Windows Publishing to the Windows Admin Center extension feed
По умолчанию центр администрирования Windows подключен к веб-каналу NuGet, поддерживаемому группой разработчиков центра администрирования Windows корпорации Майкрософт. By default, Windows Admin Center is connected to a NuGet feed maintained by the Windows Admin Center product team at Microsoft. Предварительные версии новых расширений, разработанных корпорацией Майкрософт, могут быть опубликованы в этом веб-канале и доступны пользователям центра администрирования Windows. Early preview versions of new extensions developed by Microsoft may be published to this feed and available to Windows Admin Center users. Разработчики, планирующие создание и выпуск расширений для внешних разработчиков, могут также Отправить запрос на публикацию в этом веб-канале. External developers planning to build and release extensions publicly may also submit a request to publish to this feed. Перед публикацией в этом веб-канале внешние разработчики должны согласиться с соглашением об издателе расширений и политикой участия в расширениииздателя Windows Admin. Prior to publishing to this feed, external developers will have to agree to Windows Admin Center’s Extension Publisher Agreement and Extension Participation Policy.
Публикация в другом веб-канале NuGet Publishing to a different NuGet feed
Вы также можете создать собственный веб-канал NuGet для публикации расширений, используя один из множества различных вариантов настройки частного источника или службы размещения NuGet. You may also create your own NuGet feed to publish your extensions to using one of the many different options for setting up a private source or using a NuGet hosting service. Канал NuGet должен поддерживать API-интерфейс NuGet v2. The NuGet feed must support the NuGet v2 API. Так как центр администрирования Windows в настоящее время не поддерживает проверку подлинности веб-канала, веб-канал должен быть настроен так, чтобы иметь доступ на чтение для всех пользователей. Since Windows Admin Center does not currently support feed authentication, the feed needs to be configured to allow read access to anyone.
Публикация в общую папку Publishing to a file share
Чтобы ограничить доступ вашего расширения к Организации или группе людей с ограниченными правами, можно использовать файловый ресурс SMB в качестве веб-канала расширения. To restrict access of your extension to your organization or to a limited group of people, you can use an SMB file share as an extension feed. В этом случае разрешения общей папки и папок будут применяться для предоставления доступа к веб-каналу. In this case, the file share and folder permissions will be applied for allowing access to the feed.
Подготовка расширения к выпуску Preparing your extension for release
Убедитесь, что прочитали и рассмотрите следующие темы по разработке: Make sure you read and consider the following development topics:
Рассмотрите возможность выпуска в качестве предварительной версии Consider releasing as a Preview release
Если вы выпустили предварительную версию расширения для целей оценки, рекомендуется выполнить следующие действия. If you are releasing a preview version of your extension for evaluation purposes, we recommend that you:
- Добавьте «(Предварительная версия)» в конец заголовка расширения в nuspec-файле. Append «(Preview)» to the end of your extension’s title in the .nuspec file
- Объясните ограничения в описании расширения в файле nuspec Explain the limitations in your extension’s description in the .nuspec file
Создание пакета расширения Creating an extension package
Центр администрирования Windows использует пакеты NuGet и каналы для распространения и скачивания расширений. Windows Admin Center utilizes NuGet packages and feeds for distributing and downloading extensions. Для отправки пакета необходимо создать пакет NuGet, содержащий подключаемые модули и расширения. In order for your package to be shipped, you will need to generate a NuGet package containing your plugins and extensions. Один пакет может содержать как расширение пользовательского интерфейса, так и подключаемый модуль шлюза, и в следующем разделе будет рассмотрен процесс. A single package can contain both a UI extension as well as a Gateway plugin, and the following section will walk you through the process.
1. Создание расширения 1. Build your extension
Как только вы будете готовы начать упаковку расширения, создайте новый каталог в файловой системе, откройте консоль и перейдете в нее компакт-диск. As soon as you are ready to start packaging your extension, create a new directory on your file system, open a console, and CD into it. Это будет корневой каталог, который будет использоваться для хранения всех каталогов nuspec и содержимого, которые будут представлять наш пакет. This will be the root directory that we will use to contain all the nuspec and content directories that will make up our package. Мы будем ссылаться на эту папку как на «пакет NuGet» в течение этого документа. We will reference this folder as «NuGet Package» for the duration of this document.
Расширения пользовательского интерфейса UI Extensions
Чтобы начать процесс сбора всего содержимого, необходимого для расширения пользовательского интерфейса, выполните в средстве «gulp Build» и убедитесь, что сборка выполнена успешно. To begin the process on gathering all the content needed for a UI extension, run «gulp build» on your tool and make sure the build is successful. Этот процесс упаковывает все компоненты вместе в папку с именем «пакет», расположенную в корневом каталоге расширения (на том же уровне каталога src). This process packages all the components together in a folder called «bundle» located in the root directory of your extension (at the same level of the src directory). Скопируйте этот каталог и все его содержимое в папку «пакет NuGet». Copy this directory and all it’s contents into the «NuGet Package» folder.
Подключаемые модули шлюза Gateway Plugins
С помощью инфраструктуры сборки (это может быть так же просто, как открытие Visual Studio и нажатие кнопки «построить»), скомпилируйте и создайте подключаемый модуль. Using your Build infrastructure (this could be as simple as opening Visual Studio and clicking the Build button), compile and build your plugin. Откройте выходной каталог сборки и скопируйте библиотеки DLL, представляющие подключаемый модуль, и вставьте их в новую папку в каталоге «пакет NuGet» с именем «Package». Open up your build output directory, and copy the Dll(s) that represent your plugin, and put them in a new folder inside the «NuGet Package» directory called «package». Вам не нужно копировать библиотеку DLL Феатуреинтерфаце, а только библиотеки DLL, представляющие код. You do not need to copy the FeatureInterface dll, just the Dll(s) that represent your code.
2. Создание файла nuspec 2. Create the .nuspec file
Чтобы создать пакет NuGet, сначала необходимо создать nuspec-файл. To create the NuGet package, you need to first create a .nuspec file. Файл. nuspec — это XML-манифест, содержащий метаданные пакета NuGet. A .nuspec file is an XML manifest that contains NuGet package metadata. Этот манифест используется при построении пакета и содержит дополнительные сведения для его потребителей. This manifest is used both to build the package and to provide information to consumers. Поместите этот файл в корень папки «пакет NuGet». Place this file at the root of the «NuGet Package» folder.
Ниже приведен пример файла. nuspec и список обязательных или рекомендуемых свойств. Here’s an example .nuspec file and the list of required or recommended properties. Полную схему см. в справочнике по nuspec. For the full schema, see the .nuspec reference. Сохраните nuspec-файл в корневую папку проекта с именем выбранного файла. Save the .nuspec file to your project’s root folder with a file name of your choice.
Значение в файле nuspec должно совпадать со «name» значением в manifest.json файле проекта, иначе Ваше опубликованное расширение не будет успешно загружено в центр администрирования Windows. The value in the .nuspec file needs to match the «name» value in your project’s manifest.json file, or else your published extension won’t load successfully in Windows Admin Center.
Обязательные или Рекомендуемые свойства Required or Recommended Properties
Имя свойства Property Name | Обязательно/рекомендуется Required / Recommended | Описание Description |
---|---|---|
packageType packageType | Обязательно Required | Используйте «Виндовсадминцентерекстенсион», который является типом пакета NuGet, определенным для расширений центра администрирования Windows. Use «WindowsAdminCenterExtension» which is the NuGet package type defined for Windows Admin Center extensions. |
идентификатор id | Обязательно Required | Уникальный идентификатор пакета в веб-канале. Unique Package identifier within the feed. Это значение должно соответствовать значению «Name» в manifest.jsфайла проекта. This value needs to match the «name» value in your project’s manifest.json file. Инструкции см. в разделе Выбор уникального идентификатора пакета. See Choosing a unique package identifier for guidance. |
title title | Требуется для публикации в веб-канале центра администрирования Windows Required for publishing to the Windows Admin Center feed | Понятное имя пакета, отображаемое в диспетчере расширений центра администрирования Windows. Friendly name for the package that is displayed in Windows Admin Center Extension Manager. |
version version | Обязательно Required | Версия расширения. Extension version. Рекомендуется использовать семантическое управление версиями (соглашение SemVer) , но не является обязательным. Using Semantic Versioning (SemVer convention) is recommended but not required. |
authors authors | Обязательно Required | При публикации от имени компании используйте название вашей компании. If publishing on behalf of your company, use your company name. |
description; description | Обязательно Required | Введите описание функциональных возможностей расширения. Provide a description of the extension’s functionality. |
iconUrl iconUrl | Рекомендуется при публикации в веб-канале центра администрирования Windows Recommended when publishing to the Windows Admin Center feed | URL-адрес для значка, отображаемого в диспетчере расширений. URL for icon to display in the Extension Manager. |
projectUrl projectUrl | Требуется для публикации в веб-канале центра администрирования Windows Required for publishing to the Windows Admin Center feed | URL-адрес веб-сайта расширения. URL to your extension’s website. Если у вас нет отдельного веб-сайта, используйте URL-адрес веб-страницы пакета в канале NuGet. If you do not have a separate website, use the URL for the package webpage on the NuGet feed. |
licenseUrl licenseUrl | Требуется для публикации в веб-канале центра администрирования Windows Required for publishing to the Windows Admin Center feed | URL-адрес лицензионного соглашения для вашего расширения. URL to your extension’s end user license agreement. |
файлы files | Обязательно Required | Эти два параметра задают структуру папок, которую Центр администрирования Windows ожидает для расширений пользовательского интерфейса и подключаемых модулей шлюза. These two settings set up the folder structure that Windows Admin Center expects for UI extensions and Gateway plugins. |
3. Создание пакета NuGet для расширения 3. Build the extension NuGet package
Используя созданный ранее файл. nuspec, вы создадите файл NuGet Package. nupkg, который можно передать и опубликовать в веб-канале NuGet. Using the .nuspec file you created above, you will now create the NuGet package .nupkg file which you can upload and publish to the NuGet feed.
- Скачайте средство nuget.exe CLI с веб-сайта средств клиента NuGet. Download the nuget.exe CLI tool from the NuGet client tools website.
- Выполните команду «пакет nuget.exe [. nuspec]», чтобы создать файл nupkg. Run «nuget.exe pack [.nuspec file name]» to create the .nupkg file.
4. Подписывание пакета NuGet для расширения 4. Signing your extension NuGet package
Все DLL-файлы, входящие в расширение, должны быть подписаны сертификатом из доверенного центра сертификации (ЦС). Any .dll files included in your extension are required to be signed with a certificate from a trusted Certificate Authority (CA). По умолчанию неподписанные DLL-файлы будут заблокированы, когда центр администрирования Windows работает в рабочем режиме. By default, unsigned .dll files will be blocked from being executed when Windows Admin Center is running in Production Mode.
Также настоятельно рекомендуется подписать пакет NuGet для расширения, чтобы обеспечить целостность пакета, но это не обязательное действие. We also highly recommend that you sign the extension NuGet package to ensure the integrity of the package, but this is not a required step.
5. Тестирование пакета NuGet для расширения 5. Test your extension NuGet package
Теперь пакет расширения готов к тестированию. Your extension package is now ready for testing! Отправьте файл. nupkg в веб-канал NuGet или скопируйте его в общую папку. Upload the .nupkg file to a NuGet feed or copy it to a file share. Чтобы просмотреть и скачать пакеты из другого канала или общей папки, необходимо изменить конфигурацию веб-канала , чтобы она указывала на ваш канал NuGet или общую папку. To view and download packages from a different feed or file share, you’ll need to change your feed configuration to point to your NuGet feed or file share. При тестировании убедитесь, что свойства правильно отображаются в диспетчере расширений, и вы можете успешно установить и удалить расширение. When testing, make sure the properties are displayed correctly in Extension Manager and you can successfully install and uninstall your extension.
Публикация расширения в веб-канале центра администрирования Windows Publishing your extension to the Windows Admin Center feed
Публикация в веб-канале центра администрирования Windows позволяет сделать расширение доступным любому пользователю центра администрирования Windows. By publishing to the Windows Admin Center feed, you can make your extension available to any Windows Admin Center user. Так как пакет SDK для Windows Admin Center по-прежнему находится на этапе предварительной версии, мы хотели бы тесно работать с вами, чтобы помочь в устранении проблем разработки и убедиться, что вы можете предоставить пользователям качественный продукт и опыт работы с ним. Since the Windows Admin Center SDK is still in preview, we’d like to work closely with you to help resolve development issues, and, make sure you are able to deliver a quality product and experience to your users.
Перед отправкой запроса на проверку расширения в корпорацию Майкрософт необходимо отправить сообщение электронной почты, чтобы wacextensionrequest@microsoft.com выразить цель публикации расширения в общедоступном веб-канале. Prior to submitting an extension review request to Microsoft, you must send an email to wacextensionrequest@microsoft.com expressing the intent to publish an extension to the public feed. Мы предложим вам копии соглашения издателя расширения и политики участия в расширении для проверки и подтверждения в написании. We will provide you will copies of the Extension Publisher Agreement and the Extension Participation Policy to review and acknowledge in writing.
Прежде чем выпустить первоначальную версию расширения, рекомендуется отправить запрос на проверку расширения в корпорацию Майкрософт по крайней мере до 2-3 недель перед выпуском, чтобы убедиться, что у нас достаточно времени для проверки, и при необходимости внести изменения в расширение. Before releasing the initial version of your extension, we recommend that you submit an extension review request to Microsoft at least 2-3 weeks before release to ensure we have sufficient time to review and for you to make any changes to your extension if necessary. Когда ваше расширение будет готово к публикации, его необходимо отправить нам для проверки, а если он утвержден, мы будем публиковать его в веб-канале. Once your extension is ready to be published, you’ll need to send it to us for review, and if approved, we’ll publish it to the feed for you. Отправляя пакет расширений Майкрософт, вы соглашаетесь с условиями соглашения издателя расширения и политики участия в расширении. By sending Microsoft your extension package, you agree to be bound by the terms of the Extension Publisher Agreement and the Extension Participation Policy.
Затем, если вы хотите освободить обновление для расширения, необходимо отправить другой запрос на проверку. Afterwards, if you want to release an update to your extension, you will need to submit another request for review. В зависимости от области изменения время обработки для проверок обновлений должно быть короче. While depending on the scope of change, the turnaround time for update reviews should generally be shorter.
Отправка запроса на проверку расширения в корпорацию Майкрософт Submit an extension review request to Microsoft
Чтобы отправить запрос на проверку расширения, введите следующие сведения и отправьте их по электронной почте в wacextensionrequest@microsoft.com . To submit an extension review request, enter the following information and send as an email to wacextensionrequest@microsoft.com. Мы ответим на ваш адрес электронной почты в течение недели. We will reply to your email within a week.
Отправка пакета расширения для проверки и публикации Submit your extension package for review and publishing
Убедитесь, что вы выполняйте приведенные выше инструкции по созданию пакета расширения , и файл nuspec определен правильно, и файлы подписаны. Make sure you follow the instructions above for creating an extension package and the .nuspec file is defined properly and files are signed. Также рекомендуется наличие веб-сайта проекта, включая следующие: We also recommend that you have a project website including the following:
- Подробное описание расширения, включая снимки экрана или видео Detailed description of your extension including screenshots or video
- Адрес электронной почты или компонент веб-сайта для получения отзывов или вопросов Email address or website feature to receive feedback or questions