Справочник по схеме шаблона приложения для UE-V 2.x
Виртуализация средств взаимодействия с пользователем (Майкрософт) (UE-V) 2.0, 2.1 и 2.1 с пакетом обновления 1 (SP1) используют шаблоны расположения параметров XML для определения параметров классического приложения и параметров Windows, которые записываются и применяются UE-V. UE-V включает набор шаблонов расположения параметров по умолчанию. Вы также можете создавать настраиваемые шаблоны расположения параметров с помощью генератора UE-V.
Опытный пользователь может настроить XML-файл для шаблона расположения параметров. В этом разделе подробно описана XML-структура шаблонов расположения параметров UE-V 2.1 (SP1) и 2.0, а также приведены рекомендации по редактированию этих файлов.
Справочник по схеме шаблона приложения UE-V 2.1 и 2.1 с пакетом обновления 1 (SP1)
В этом разделе подробно описана XML-структура шаблона расположения параметров UE-V 2.1 и 2.1 с пакетом обновления 1 (SP1), а также приведены рекомендации по редактированию этого файла.
В этом разделе
Атрибут объявления и кодирования XML
Обязательный: True
Тип: String
В объявлении XML должен быть указан атрибут XML версии 1.0 (<?xml version="1.0">). Шаблоны расположения параметров, созданные генератором UE-V, сохраняются в кодировке UTF-8, хотя кодировка явно не указана. Рекомендуется включить атрибут encoding="UTF-8" в этот элемент, как рекомендуется. Все шаблоны, включенные в продукт, также указывают этот тег (см. документы в %ProgramFiles%\Виртуализация средств взаимодействия с пользователем (Майкрософт)\Templates для справки). Пример:
<?xml version="1.0" encoding="UTF-8"?>
Пространство имен и корневой элемент
Обязательный: True
Тип: String
UE-V использует https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate
пространство имен для всех приложений. SettingsLocationTemplate
является корневым элементом и содержит все остальные элементы. Ссылка SettingsLocationTemplate
во всех шаблонах с помощью этого тега:
<SettingsLocationTemplate xmlns='https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate'>
Типы данных
Это типы данных для схемы шаблона приложения UE-V.
GUID GUID описывает стандартное глобально уникальное регулярное выражение идентификатора в виде "\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}. Используется в элементе Filesetting\Root\KnownFolder для проверки форматирования известных папок.
FilenameString FilenameString ссылается на имя файла процесса, который необходимо отслеживать. Его значения ограничены регулярным выражением [^\\\?\\*\|<>/:]+, (то есть они не могут содержать символы обратной косой черты, звездочки или вопросительного знака wild-карта символы, символы конвейера, символы больше или меньше знака, косой черты или двоеточия).
IDString IDString — это значение идентификатора элементов Application, SettingsLocationTemplate и Common (используется для описания наборов приложений с общими параметрами). Он ограничен тем же регулярным выражением, что и FilenameString ([^\\\?\*\|<>/:]+).
TemplateVersion TemplateVersion — это целочисленное значение, используемое для описания редакции шаблона расположения параметров. Его значение может варьироваться от 0 до 2147483647.
Пустой Пустой означает значение NULL. Этот параметр используется в Process\ShellProcess, чтобы указать на отсутствие процесса для мониторинга. Это значение не должно использоваться ни в каких шаблонах приложений.
Автор Тип данных Author — это сложный тип, который определяет автора шаблона. Он содержит два дочерних элемента: Name и Email. В типе данных Author элемент Name является обязательным, а элемент Email является необязательным. Этот тип описан более подробно в элементе SettingsLocationTemplate.
Диапазон Range определяет целочисленный класс, состоящий из двух дочерних элементов: Minimum и Maximum. Этот тип данных реализован в типе данных ProcessVersion. Если задано значение , необходимо включить значения Минимальное и Максимальное.
ProcessVersion ProcessVersion определяет тип с четырьмя дочерними элементами: Основной, Дополнительный, Сборка и Исправление. Этот тип данных используется элементом Process для заполнения значений ProductVersion и FileVersion. Данные для этого типа являются значением Range. Основной дочерний элемент является обязательным, а остальные — необязательным.
Архитектура Архитектура перечисляет два возможных значения: Win32 и Win64. Эти значения используются для указания архитектуры процесса.
Процесс Тип данных Process — это контейнер, используемый для описания процессов, отслеживаемых UE-V. Он содержит шесть дочерних элементов: Filename, Architecture, ProductName, FileDescription, ProductVersion и FileVersion. В этой таблице подробно описаны соответствующие типы данных каждого элемента:
Элемент |
Тип данных |
Обязательное |
Имени файла |
FilenameString |
True |
Architecture (Архитектура) |
Architecture (Архитектура) |
False |
ProductName |
Строка |
False |
FileDescription |
Строка |
False |
ProductVersion |
ProcessVersion |
False |
FileVersion |
ProcessVersion |
False |
Процессов Тип данных Processes представляет контейнер для коллекции из одного или нескольких элементов Process. В типе последовательности процессов поддерживаются два дочерних элемента: Process и ShellProcess. Process — это элемент типа Process, а shellProcess имеет тип данных Empty. В последовательности должен быть определен по крайней мере один элемент.
Путь Путь используется RegistrySetting и FileSetting для ссылки на пути к реестру и файлам. Этот элемент поддерживает два необязательных атрибута: Recursive и DeleteIfNotFound. Для обоих значений задано значение default="False".
Рекурсивный указывает, что путь и все вложенные папки включены для параметров файла или что для параметров реестра включены все дочерние разделы реестра. В обоих случаях все элементы на текущем уровне включаются в захваченные данные. Для объекта FileSettings все файлы в указанной папке включаются в данные, захваченные UE-V, но папки не включаются. Для путей реестра все значения в текущем пути записываются, но дочерние разделы реестра не записываются. В обоих случаях следует соблюдать осторожность, чтобы избежать записи больших наборов данных или большого количества элементов.
Атрибут DeleteIfNotFound удаляет параметр из данных пути к хранилищу параметров пользователя. Это может быть желательно в тех случаях, когда удаление этих параметров из пакета сэкономит большой объем дискового пространства на файловом сервере пути к хранилищу параметров.
FileMask FileMask указывает только определенные типы файлов для папки, определенной путем. Например, Путь может иметь значение C:\users\username\files
, а FileMask — *.txt
для включения только текстовых файлов.
RegistrySetting RegistrySetting представляет контейнер для разделов и значений реестра и соответствующего требуемого поведения агента UE-V. В этом типе определены четыре дочерних элемента: Path, Name, Exclude и последовательность значений Path и Name.
FileSetting FileSetting содержит параметры, связанные с файлами и путями к файлам. Определены четыре дочерних элемента: Root, Path, FileMask и Exclude. Root является обязательным, а остальные — необязательными.
Параметры Параметры — это контейнер для всех параметров, применимых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction, описанных ранее. Кроме того, он также может содержать следующие дочерние элементы с описанным поведением:
Элемент |
Описание |
Асинхронная репликация |
Пакеты асинхронных параметров применяются без блокировки запуска приложения, поэтому запуск приложения продолжается, пока параметры еще применяются. Это полезно для параметров, которые могут применяться асинхронно, например |
PreventOverlappingSynchronization |
По умолчанию UE-V сохраняет параметры только для приложения, когда последний экземпляр приложения, использующий шаблон, закрыт. Если для этого элемента задано значение false, UE-V экспортирует параметры, даже если выполняются другие экземпляры приложения. Подходящие шаблоны ( те, которые содержат раздел элемента Common), которые поставляются с UE-V, используют этот флаг, чтобы разрешить общий экспорт параметров при закрытии приложения, предотвращая экспорт параметров приложения до закрытия последнего экземпляра. |
AlwaysApplySettings |
(появилось в версии 2.1) Этот параметр принудительно применяет импортированный пакет параметров, даже если между пакетом и текущим состоянием приложения нет различий. Этот параметр следует использовать только в особых случаях, так как он может замедлить импорт параметров. |
Элемент Name
Обязательный: True
Тип: String
Имя указывает уникальное имя шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Как правило, не следует ссылаться на сведения о версии, так как это можно возразить из элемента ProductVersion. Например, укажите <Name>My Application</Name>
вместо <Name>My Application 1.1</Name>
.
Примечание UE-V не ссылается на внешние DTD, поэтому невозможно использовать именованные сущности в шаблоне расположения параметров. Например, не используйте ® для ссылки на знак зарегистрированной торговой марки ® . Вместо этого используйте канонические нумерованные ссылки, чтобы включить эти типы специальных символов, например ® для символа ®. Это правило применяется ко всем строковым значениям в этом документе.
Полный список сущностей символов см. в этой статье http://www.w3.org/TR/xhtml1/dtds.html . Документы в кодировке UTF-8 могут содержать символы Юникода напрямую. Сохранение шаблонов с помощью генератора UE-V автоматически преобразует сущности символов в их представления в Юникоде.
Элемент ID
Обязательный: True
Тип: String
Идентификатор заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения (например, см. выходные данные Get-UevTemplate и Get-UevTemplateProgram командлетов PowerShell). По соглашению этот тег не должен содержать пробелы, что упрощает создание скриптов. Номера версий приложений должны быть указаны в этом элементе, чтобы упростить идентификацию шаблона, например <ID>MicrosoftCalculator6</ID>
или <ID>MicrosoftOffice2010Win64</ID>
.
Элемент Version
Обязательный: True
Тип: Целое число
Минимальное значение: 0
Максимальное значение: 2147483647
Версия определяет версию шаблона расположения параметров для административного отслеживания изменений. Генератор UE-V автоматически увеличивает это число на единицу при каждом сохранении шаблона. Обратите внимание, что это поле должно быть целым числом; дробные значения, такие как <Version>2.5</Version>
, не допускаются.
Подсказка: Заметки об изменениях версий можно сохранять с помощью тегов комментариев <!-- -->
XML, например:
<!--
Version History
Version 1 Jul 05, 2012 Initial template created by Generator - Denise@Contoso.com
Version 2 Jul 31, 2012 Added support for app.exe v2.1.3 - Mark@Contoso.com
Version 3 Jan 01, 2013 Added font settings support - Mark@Contoso.com
Version 4 Jan 31, 2013 Added support for plugin settings - Tony@Contoso.com
-->
<Version>4</Version>
Важно Это значение запрашивается, чтобы определить, следует ли применять новую версию шаблона к существующему шаблону в следующих экземплярах:
При выполнении запланированной задачи автоматического обновления шаблона
При выполнении командлета PowerShell Update-UevTemplate
Когда метод microsoft\uev:SettingsLocationTemplate Update вызывается через WMI
Элемент Author
Обязательный: False
Тип: String
Автор определяет создателя шаблона расположения параметров. Поддерживаются два необязательных дочерних элемента: Name и Email. Оба атрибута являются необязательными, но если указан Email дочерний элемент, он должен сопровождаться элементом Name. Автор ссылается на полное имя контакта для шаблона расположения параметров, а адрес электронной почты должен ссылаться на адрес электронной почты автора. Рекомендуется включить эти сведения в шаблоны, опубликованные публично, например в коллекции шаблонов UE-V.
Processes and Process Element
Обязательный: True
Тип: Элемент
Процессы содержат по крайней мере один <Process>
элемент, который, в свою очередь, содержит следующие дочерние элементы: Filename, Architecture, ProductName, FileDescription, ProductVersion и FileVersion. Дочерний элемент Filename является обязательным, а остальные — необязательными. Полностью заполненный элемент содержит теги, аналогичные следующему примеру:
<Process>
<Filename>MyApplication.exe</Filename>
<Architecture>Win64</Architecture>
<ProductName> MyApplication </ProductName>
<FileDescription>MyApplication.exe</FileDescription>
<ProductVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</ProductVersion>
<FileVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</FileVersion>
</Process>
Имени файла
Обязательный: True
Тип: String
Имя файла — это фактическое имя файла исполняемого файла, отображаемое в файловой системе. Этот элемент задает основное условие, которое UE-V использует для оценки того, применяется ли шаблон к процессу. Этот элемент должен быть указан в XML-файле шаблона расположения параметров.
Допустимые имена файлов не должны соответствовать регулярному выражению [^\\\?\\|<>/:]+, то есть они не могут содержать символы обратной косой черты, звездочки или вопросительного знака wild-карта символы, символы конвейера, больше или меньше знака, косой черты или двоеточия (\ ? * | <> или : символы.).
Подсказка: Чтобы протестировать строку для этого регулярного выражения, используйте командное окно PowerShell и замените имя исполняемого файла именем YourFileName:
"YourFileName.exe" -match "[\\\?\*\|<>/:]+"
Значение True указывает, что строка содержит недопустимые символы. Ниже приведены некоторые примеры недопустимых значений.
\\server\share\program.exe
Программа*.exe
Pro?ram.exe
Программа<1>.exe
Примечание Генератор UE-V кодирует символы больше и меньше, > чем и < соответственно.
В редких случаях значение FileName не обязательно будет включать расширение .exe, но оно должно быть указано как часть значения. Например, <Filename>MyApplictication.exe</Filename>
следует указать вместо <Filename>MyApplictication</Filename>
. Во втором примере шаблон не применяется к процессу, если фактическое имя исполняемого файла — "MyApplication.exe".
Architecture (Архитектура)
Обязательный: False
Тип: Архитектура (строка)
Архитектура относится к архитектуре процессора, для которой был скомпилирован целевой исполняемый файл. Допустимые значения: Win32 для 32-разрядных приложений или Win64 для 64-разрядных приложений. Если он имеется, этот тег ограничивает применимость шаблона расположения параметров к определенной архитектуре приложения. В качестве примера сравните файлы %ProgramFiles%\Виртуализация средств взаимодействия с пользователем (Майкрософт)\templates\ MicrosoftOffice2010Win32.xml и MicrosoftOffice2010Win64.xml, включенные в UE-V. Это полезно, если относительные пути меняются между разными версиями исполняемого файла или если параметры были добавлены или удалены при переходе от одной архитектуры процессора к другой.
Если этот элемент отсутствует, шаблон расположения параметров игнорирует архитектуру процесса и применяется как к 32-разрядным, так и к 64-разрядным процессам, если применяются имя файла и другие атрибуты.
Примечание UE-V не поддерживает процессоры ARM в этой версии.
ProductName
Обязательный: False
Тип: String
ProductName — это необязательный элемент, используемый для идентификации продукта в целях администрирования или создания отчетов. ProductName отличается от filename тем, что нет ограничений регулярного выражения на его значение. Это позволяет получить более понятные описания процесса, в котором имя исполняемого файла может быть неочевидным. Пример:
<Process>
<Filename>MyApplication.exe</Filename>
<ProductName>My Application 6.x by Contoso.com</ProductName>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
FileDescription
Обязательный: False
Тип: String
FileDescription — это необязательный тег, который позволяет использовать административное описание исполняемого файла. Это свободное текстовое поле, которое может быть полезно для различения нескольких исполняемых файлов в программном пакете, где необходимо определить функцию исполняемого файла.
Например, в подходящем приложении может быть полезно предоставить напоминания о функции двух исполняемых файлов (MyApplication.exe и MyApplicationHelper.exe), как показано ниже:
<Processes>
<Process>
<Filename>MyApplication.exe</Filename>
<FileDescription>My Application Main Engine</ FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
<Process>
<Filename>MyApplicationHelper.exe</Filename>
<FileDescription>My Application Background Process Executable</FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
</Processes>
ProductVersion
Обязательный: False
Тип: String
ProductVersion относится к основным и дополнительным версиям продукта файла, а также к уровню сборки и исправлений. ProductVersion является необязательным элементом, но если он указан, он должен содержать по крайней мере дочерний элемент Major. Значение должно выражать диапазон в форме Minimum="X" Maximum="Y", где X и Y являются целыми числами. Значения Минимум и Максимум могут быть идентичными.
Элементы версии продукта и файла могут быть оставлены неуказанными. Это делает шаблон "не зависящим от версии", то есть шаблон будет применяться ко всем версиям указанного исполняемого файла.
Пример 1.
Версия продукта: 1.0, указанная в генераторе UE-V, создает следующий XML-код:
<ProductVersion>
<Major Minimum="1" Maximum="1" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
Пример 2.
Версия файла: 5.0.2.1000, указанная в генераторе UE-V, создает следующий XML-код:
<FileVersion>
<Major Minimum="5" Maximum="5" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="2" Maximum="2" />
<Patch Minimum="1000" Maximum="1000" />
</FileVersion>
Неправильный пример 1 — неполный диапазон:
Присутствует только атрибут Minimum. Максимальное значение также должно быть включено в диапазон.
<ProductVersion>
<Major Minimum="2" />
</ProductVersion>
Неправильный пример 2. Дополнительный параметр, указанный без элемента Major:
Присутствует только элемент Minor. Майор также должен быть включен.
<ProductVersion>
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
FileVersion
Обязательный: False
Тип: String
FileVersion различает версию выпуска опубликованного приложения и сведения о внутренней сборке исполняемого файла компонента. Для большинства коммерческих приложений эти числа идентичны. Если они различаются, версия продукта файла указывает на универсальную версию файла, а версию файла — конкретную сборку файла (как в случае исправления или обновления). Это уникально идентифицирует файлы без нарушения логики обнаружения.
Чтобы определить версию продукта и версию файла конкретного исполняемого файла, щелкните правой кнопкой мыши файл в Windows Обозреватель, выберите Свойства, а затем перейдите на вкладку Сведения.
Включение элемента FileVersion для приложения обеспечивает более детализированную логику точной настройки обнаружения, но не требуется для большинства приложений. Сначала проверяются параметры элемента ProductVersion, а затем — FileVersion. Будет применен более строгий параметр.
Дочерние элементы и правила синтаксиса для FileVersion идентичны элементам ProductVersion.
<Process>
<Filename>MSACCESS.EXE</Filename>
<Architecture>Win32</Architecture>
<ProductVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
<FileVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</FileVersion>
</Process>
Элемент Application
Приложение — это контейнер для параметров, применяемых к конкретному приложению. Это коллекция следующих полей и типов.
Поле или тип |
Описание |
Имя |
Задает уникальное имя для шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя. |
ID |
Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор. |
Описание |
Необязательное описание шаблона. |
LocalizedNames |
Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка. |
Локализованные описания |
Необязательное описание шаблона, локализованное языковым стандартом. |
Версия |
Определяет версию шаблона расположения параметров для административного отслеживания изменений. Дополнительные сведения см. в разделе Версия. |
DeferToMSAccount |
Определяет, включен ли этот шаблон вместе с учетной записью Майкрософт. Если для пользователя на компьютере включена синхронизация MSA, этот шаблон будет автоматически отключен. |
DeferToOffice365 |
Как и в случае с MSA, этот шаблон определяет, включен ли этот шаблон вместе с Office365. Если для синхронизации параметров используется Office 365, этот шаблон будет автоматически отключен. |
FixedProfile (появилось в версии 2.1) |
Указывает, что этот шаблон может быть связан только с профилем, указанным в этом элементе, и не может быть изменен с помощью WMI или PowerShell. |
Процессы |
Контейнер для коллекции из одного или нескольких элементов Process. Дополнительные сведения см. в разделе Процессы. |
Параметры |
Контейнер для всех параметров, применяемых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction. Дополнительные сведения см. в разделе Параметры в типах данных. |
Элемент Common
Common похож на элемент Application, но он всегда связан с двумя или более элементами Application. Раздел Общие представляет набор параметров, которые совместно используются этими экземплярами приложения. Это коллекция следующих полей и типов.
Поле или тип |
Описание |
Имя |
Задает уникальное имя для шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя. |
ID |
Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор. |
Описание |
Необязательное описание шаблона. |
LocalizedNames |
Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка. |
Локализованные описания |
Необязательное описание шаблона, локализованное языковым стандартом. |
Версия |
Определяет версию шаблона расположения параметров для административного отслеживания изменений. Дополнительные сведения см. в разделе Версия. |
DeferToMSAccount |
Определяет, включен ли этот шаблон вместе с учетной записью Майкрософт. Если для пользователя на компьютере включена синхронизация MSA, этот шаблон будет автоматически отключен. |
DeferToOffice365 |
Как и в случае с MSA, этот шаблон определяет, включен ли этот шаблон вместе с Office365. Если для синхронизации параметров используется Office 365, этот шаблон будет автоматически отключен. |
FixedProfile (появилось в версии 2.1) |
Указывает, что этот шаблон может быть связан только с профилем, указанным в этом элементе, и не может быть изменен с помощью WMI или PowerShell. |
Параметры |
Контейнер для всех параметров, применяемых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction. Дополнительные сведения см. в разделе Параметры в типах данных. |
Элемент SettingsLocationTemplate
Этот элемент определяет параметры для одного приложения или набора приложений.
Поле или тип |
Описание |
Имя |
Задает уникальное имя для шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя. |
ID |
Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор. |
Описание |
Необязательное описание шаблона. |
LocalizedNames |
Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка. |
Локализованные описания |
Необязательное описание шаблона, локализованное языковым стандартом. |
Приложение: SettingsLocationTemplate.xsd
Ниже приведен файл SettingsLocationTemplate.xsd с элементами, дочерними элементами, атрибутами и параметрами:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UevSettingsLocationTemplate"
targetNamespace="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
elementFormDefault="qualified"
xmlns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
xmlns:mstns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="Guid">
<xs:restriction base="xs:string">
<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FilenameString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IDString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:.]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CompositeIDString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:.]+([.][^\\\?\*\|<>/:.]+)?" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TemplateVersion">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="2147483647" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Empty">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="LocalizedString">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Locale" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LocalizedName">
<xs:sequence>
<xs:element name="Name" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocalizedDescription">
<xs:sequence>
<xs:element name="Description" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReplacedTemplates">
<xs:sequence>
<xs:element name="ID" type="CompositeIDString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Author">
<xs:all>
<xs:element name="Name" type="xs:string" minOccurs="1" />
<xs:element name="Email" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="Range">
<xs:attribute name="Minimum" type="xs:integer" use="required"/>
<xs:attribute name="Maximum" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="ProcessVersion">
<xs:sequence>
<xs:element name="Major" type="Range" minOccurs="1" />
<xs:element name="Minor" type="Range" minOccurs="0" />
<xs:element name="Build" type="Range" minOccurs="0" />
<xs:element name="Patch" type="Range" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Architecture">
<xs:restriction base="xs:string">
<xs:enumeration value="Win32"/>
<xs:enumeration value="Win64"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Process">
<xs:sequence>
<xs:element name="Filename" type="FilenameString" minOccurs="1" />
<xs:element name="Architecture" type="Architecture" minOccurs="0" />
<xs:element name="ProductName" type="xs:string" minOccurs="0" />
<xs:element name="FileDescription" type="xs:string" minOccurs="0" />
<xs:element name="ProductVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="FileVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Processes">
<xs:sequence>
<xs:choice minOccurs="1">
<xs:element name="Process" type="Process" />
<xs:element name="ShellProcess" type="Empty" />
</xs:choice>
<xs:element name="Process" type="Process" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Path">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Recursive" type="xs:boolean" default="false"/>
<xs:attribute name="DeleteIfNotFound" type="xs:boolean" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RegistrySetting">
<xs:sequence>
<xs:element name="Path" type="Path" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FileSetting">
<xs:sequence>
<xs:element name="Root">
<xs:complexType>
<xs:choice>
<xs:element name="KnownFolder" type="Guid" />
<xs:element name="RegistryEntry" type="xs:string" />
<xs:element name="EnvironmentVariable" type="xs:string" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Path" minOccurs="0" type="Path" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CustomActionSetting">
<xs:restriction base="xs:anyURI"/>
</xs:simpleType>
<xs:simpleType name="SystemParameterSetting">
<xs:restriction base="xs:string">
<!-- Accessibility parameters -->
<xs:enumeration value="AccessTimeout"/>
<xs:enumeration value="AudioDescription"/>
<xs:enumeration value="ClientAreaAnimation"/>
<xs:enumeration value="DisableOverlappedContent"/>
<xs:enumeration value="FilterKeys"/>
<xs:enumeration value="FocusBorderHeight"/>
<xs:enumeration value="FocusBorderWidth"/>
<xs:enumeration value="HighContrast"/>
<xs:enumeration value="MessageDuration"/>
<xs:enumeration value="MouseClickLock"/>
<xs:enumeration value="MouseClickLockTime"/>
<xs:enumeration value="MouseKeys"/>
<xs:enumeration value="MouseSonar"/>
<xs:enumeration value="MouseVanish"/>
<xs:enumeration value="ScreenReader"/>
<xs:enumeration value="ShowSounds"/>
<xs:enumeration value="SoundSentry"/>
<xs:enumeration value="StickyKeys"/>
<xs:enumeration value="ToggleKeys"/>
<!-- Input parameters -->
<xs:enumeration value="Beep"/>
<xs:enumeration value="BlockSendInputResets"/>
<xs:enumeration value="DefaultInputLang"/>
<xs:enumeration value="DoubleClickTime"/>
<xs:enumeration value="DoubleClkHeight"/>
<xs:enumeration value="DoubleClkWidth"/>
<xs:enumeration value="KeyboardCues"/>
<xs:enumeration value="KeyboardDelay"/>
<xs:enumeration value="KeyboardPref"/>
<xs:enumeration value="KeyboardSpeed"/>
<xs:enumeration value="Mouse"/>
<xs:enumeration value="MouseButtonSwap"/>
<xs:enumeration value="MouseHoverHeight"/>
<xs:enumeration value="MouseHoverTime"/>
<xs:enumeration value="MouseHoverWidth"/>
<xs:enumeration value="MouseSpeed"/>
<xs:enumeration value="MouseTrails"/>
<xs:enumeration value="SnapToDefButton"/>
<xs:enumeration value="WheelScrollChars"/>
<xs:enumeration value="WheelScrollLines"/>
<!-- Desktop parameters (limited subset) -->
<xs:enumeration value="DeskWallpaper"/>
<xs:enumeration value="DesktopColor"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Settings">
<xs:sequence>
<xs:element name="Asynchronous" type="xs:boolean" minOccurs="0" />
<xs:element name="PreventOverlappingSynchronization" type="xs:boolean" minOccurs="0" />
<xs:element name="AlwaysApplySettings" type="xs:boolean" minOccurs="0" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Registry" type="RegistrySetting" />
<xs:element name="File" type="FileSetting" />
<xs:element name="SystemParameter" type="SystemParameterSetting" />
<xs:element name="CustomAction" type="CustomActionSetting" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Common">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Application">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:element name="SettingsLocationTemplate">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:choice>
<!-- Single application -->
<xs:sequence>
<xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
<xs:element name="Version" type="TemplateVersion" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="FixedProfile" type="xs:string" minOccurs="0" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
<!-- Suite of applications -->
<xs:sequence>
<xs:element name="ManageSuiteOnly" type="xs:boolean" minOccurs="0" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="FixedProfile" type="xs:string" minOccurs="0" />
<xs:element name="Common" type="Common" />
<xs:element name="Application" type="Application" minOccurs="2" maxOccurs="unbounded" />
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- SettingsLocationTemplate -->
</xs:schema>
Справочник по схеме шаблона приложения UE-V 2.0
В этом разделе подробно описана XML-структура шаблона расположения параметров UE-V 2.0 и приведены рекомендации по редактированию этого файла.
В этом разделе
Атрибут объявления и кодирования XML
Обязательный: True
Тип: String
В объявлении XML должен быть указан атрибут XML версии 1.0 (<?xml version="1.0">). Шаблоны расположения параметров, созданные генератором UE-V, сохраняются в кодировке UTF-8, хотя кодировка явно не указана. Рекомендуется включить атрибут encoding="UTF-8" в этот элемент, как рекомендуется. Все шаблоны, включенные в продукт, также указывают этот тег (см. документы в %ProgramFiles%\Виртуализация средств взаимодействия с пользователем (Майкрософт)\Templates для справки). Пример:
<?xml version="1.0" encoding="UTF-8"?>
Пространство имен и корневой элемент
Обязательный: True
Тип: String
UE-V использует https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate
пространство имен для всех приложений. SettingsLocationTemplate
является корневым элементом и содержит все остальные элементы. Ссылка SettingsLocationTemplate
во всех шаблонах с помощью этого тега:
<SettingsLocationTemplate xmlns='https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate'>
Типы данных
Это типы данных для схемы шаблона приложения UE-V.
GUID GUID описывает стандартное глобально уникальное регулярное выражение идентификатора в виде "\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}. Используется в элементе Filesetting\Root\KnownFolder для проверки форматирования известных папок.
FilenameString FilenameString ссылается на имя файла процесса, который необходимо отслеживать. Его значения ограничены регулярным выражением [^\\\?\\*\|<>/:]+, (то есть они не могут содержать символы обратной косой черты, звездочки или вопросительного знака wild-карта символы, символы конвейера, символы больше или меньше знака, косой черты или двоеточия).
IDString IDString — это значение идентификатора элементов Application, SettingsLocationTemplate и Common (используется для описания наборов приложений с общими параметрами). Он ограничен тем же регулярным выражением, что и FilenameString ([^\\\?\*\|<>/:]+).
TemplateVersion TemplateVersion — это целочисленное значение, используемое для описания редакции шаблона расположения параметров. Его значение может варьироваться от 0 до 2147483647.
Пустой Пустой означает значение NULL. Этот параметр используется в Process\ShellProcess, чтобы указать на отсутствие процесса для мониторинга. Это значение не должно использоваться ни в каких шаблонах приложений.
Автор Тип данных Author — это сложный тип, который определяет автора шаблона. Он содержит два дочерних элемента: Name и Email. В типе данных Author элемент Name является обязательным, а элемент Email является необязательным. Этот тип описан более подробно в элементе SettingsLocationTemplate.
Диапазон Range определяет целочисленный класс, состоящий из двух дочерних элементов: Minimum и Maximum. Этот тип данных реализован в типе данных ProcessVersion. Если задано значение , необходимо включить значения Минимальное и Максимальное.
ProcessVersion ProcessVersion определяет тип с четырьмя дочерними элементами: Основной, Дополнительный, Сборка и Исправление. Этот тип данных используется элементом Process для заполнения значений ProductVersion и FileVersion. Данные для этого типа являются значением Range. Основной дочерний элемент является обязательным, а остальные — необязательным.
Архитектура Архитектура перечисляет два возможных значения: Win32 и Win64. Эти значения используются для указания архитектуры процесса.
Процесс Тип данных Process — это контейнер, используемый для описания процессов, отслеживаемых UE-V. Он содержит шесть дочерних элементов: Filename, Architecture, ProductName, FileDescription, ProductVersion и FileVersion. В этой таблице подробно описаны соответствующие типы данных каждого элемента:
Элемент | Тип данных | Обязательное |
---|---|---|
Имени файла |
FilenameString |
True |
Architecture (Архитектура) |
Architecture (Архитектура) |
False |
ProductName |
Строка |
False |
FileDescription |
Строка |
False |
ProductVersion |
ProcessVersion |
False |
FileVersion |
ProcessVersion |
False |
Процессов Тип данных Processes представляет контейнер для коллекции из одного или нескольких элементов Process. В типе последовательности процессов поддерживаются два дочерних элемента: Process и ShellProcess. Process — это элемент типа Process, а shellProcess имеет тип данных Empty. В последовательности должен быть определен по крайней мере один элемент.
Путь Путь используется RegistrySetting и FileSetting для ссылки на пути к реестру и файлам. Этот элемент поддерживает два необязательных атрибута: Recursive и DeleteIfNotFound. Для обоих значений задано значение default="False".
Рекурсивный указывает, что путь и все вложенные папки включены для параметров файла или что для параметров реестра включены все дочерние разделы реестра. В обоих случаях все элементы на текущем уровне включаются в захваченные данные. Для объекта FileSettings все файлы в указанной папке включаются в данные, захваченные UE-V, но папки не включаются. Для путей реестра все значения в текущем пути записываются, но дочерние разделы реестра не записываются. В обоих случаях следует соблюдать осторожность, чтобы избежать записи больших наборов данных или большого количества элементов.
Атрибут DeleteIfNotFound удаляет параметр из данных пути к хранилищу параметров пользователя. Это может быть желательно в тех случаях, когда удаление этих параметров из пакета сэкономит большой объем дискового пространства на файловом сервере пути к хранилищу параметров.
FileMask FileMask указывает только определенные типы файлов для папки, определенной путем. Например, Путь может иметь значение C:\users\username\files
, а FileMask — *.txt
для включения только текстовых файлов.
RegistrySetting RegistrySetting представляет контейнер для разделов и значений реестра и соответствующего требуемого поведения агента UE-V. В этом типе определены четыре дочерних элемента: Path, Name, Exclude и последовательность значений Path и Name.
FileSetting FileSetting содержит параметры, связанные с файлами и путями к файлам. Определены четыре дочерних элемента: Root, Path, FileMask и Exclude. Root является обязательным, а остальные — необязательными.
Параметры Параметры — это контейнер для всех параметров, применимых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction, описанных ранее. Кроме того, он также может содержать следующие дочерние элементы с описанным поведением:
Элемент | Описание |
---|---|
Асинхронная репликация |
Пакеты асинхронных параметров применяются без блокировки запуска приложения, поэтому запуск приложения продолжается, пока параметры еще применяются. Это полезно для параметров, которые могут применяться асинхронно, например |
PreventOverlappingSynchronization |
По умолчанию UE-V сохраняет параметры только для приложения, когда последний экземпляр приложения, использующий шаблон, закрыт. Если для этого элемента задано значение false, UE-V экспортирует параметры, даже если выполняются другие экземпляры приложения. Подходящие шаблоны ( те, которые содержат раздел элемента Common), которые поставляются с UE-V, используют этот флаг, чтобы разрешить общий экспорт параметров при закрытии приложения, предотвращая экспорт параметров приложения до закрытия последнего экземпляра. |
Элемент Name
Обязательный: True
Тип: String
Имя указывает уникальное имя шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Как правило, не следует ссылаться на сведения о версии, так как это можно возразить из элемента ProductVersion. Например, укажите <Name>My Application</Name>
вместо <Name>My Application 1.1</Name>
.
Примечание UE-V не ссылается на внешние DTD, поэтому невозможно использовать именованные сущности в шаблоне расположения параметров. Например, не используйте ® для ссылки на знак зарегистрированной торговой марки ® . Вместо этого используйте канонические нумерованные ссылки, чтобы включить эти типы специальных символов, например ® для символа ®. Это правило применяется ко всем строковым значениям в этом документе.
Полный список сущностей символов см. в этой статье http://www.w3.org/TR/xhtml1/dtds.html . Документы в кодировке UTF-8 могут содержать символы Юникода напрямую. Сохранение шаблонов с помощью генератора UE-V автоматически преобразует сущности символов в их представления в Юникоде.
Элемент ID
Обязательный: True
Тип: String
Идентификатор заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения (например, см. выходные данные Get-UevTemplate и Get-UevTemplateProgram командлетов PowerShell). По соглашению этот тег не должен содержать пробелы, что упрощает создание скриптов. Номера версий приложений должны быть указаны в этом элементе, чтобы упростить идентификацию шаблона, например <ID>MicrosoftCalculator6</ID>
или <ID>MicrosoftOffice2010Win64</ID>
.
Элемент Version
Обязательный: True
Тип: Целое число
Минимальное значение: 0
Максимальное значение: 2147483647
Версия определяет версию шаблона расположения параметров для административного отслеживания изменений. Генератор UE-V автоматически увеличивает это число на единицу при каждом сохранении шаблона. Обратите внимание, что это поле должно быть целым числом; дробные значения, такие как <Version>2.5</Version>
, не допускаются.
Подсказка: Заметки об изменениях версий можно сохранять с помощью тегов комментариев <!-- -->
XML, например:
<!--
Version History
Version 1 Jul 05, 2012 Initial template created by Generator - Denise@Contoso.com
Version 2 Jul 31, 2012 Added support for app.exe v2.1.3 - Mark@Contoso.com
Version 3 Jan 01, 2013 Added font settings support - Mark@Contoso.com
Version 4 Jan 31, 2013 Added support for plugin settings - Tony@Contoso.com
-->
<Version>4</Version>
Важно Это значение запрашивается, чтобы определить, следует ли применять новую версию шаблона к существующему шаблону в следующих экземплярах:
При выполнении запланированной задачи автоматического обновления шаблона
При выполнении командлета PowerShell Update-UevTemplate
Когда метод microsoft\uev:SettingsLocationTemplate Update вызывается через WMI
Элемент Author
Обязательный: False
Тип: String
Автор определяет создателя шаблона расположения параметров. Поддерживаются два необязательных дочерних элемента: Name и Email. Оба атрибута являются необязательными, но если указан Email дочерний элемент, он должен сопровождаться элементом Name. Автор ссылается на полное имя контакта для шаблона расположения параметров, а адрес электронной почты должен ссылаться на адрес электронной почты автора. Рекомендуется включить эти сведения в шаблоны, опубликованные публично, например в коллекции шаблонов UE-V.
Processes and Process Element
Обязательный: True
Тип: Элемент
Процессы содержат по крайней мере один <Process>
элемент, который, в свою очередь, содержит следующие дочерние элементы: Filename, Architecture, ProductName, FileDescription, ProductVersion и FileVersion. Дочерний элемент Filename является обязательным, а остальные — необязательными. Полностью заполненный элемент содержит теги, аналогичные следующему примеру:
<Process>
<Filename>MyApplication.exe</Filename>
<Architecture>Win64</Architecture>
<ProductName> MyApplication </ProductName>
<FileDescription>MyApplication.exe</FileDescription>
<ProductVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</ProductVersion>
<FileVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</FileVersion>
</Process>
Имени файла
Обязательный: True
Тип: String
Имя файла — это фактическое имя файла исполняемого файла, отображаемое в файловой системе. Этот элемент задает основное условие, которое UE-V использует для оценки того, применяется ли шаблон к процессу. Этот элемент должен быть указан в XML-файле шаблона расположения параметров.
Допустимые имена файлов не должны соответствовать регулярному выражению [^\\\?\\|<>/:]+, то есть они не могут содержать символы обратной косой черты, звездочки или вопросительного знака wild-карта символы, символы конвейера, больше или меньше знака, косой черты или двоеточия (\ ? * | <> или : символы.).
Подсказка: Чтобы протестировать строку для этого регулярного выражения, используйте командное окно PowerShell и замените имя исполняемого файла именем YourFileName:
"YourFileName.exe" -match "[\\\?\*\|<>/:]+"
Значение True указывает, что строка содержит недопустимые символы. Ниже приведены некоторые примеры недопустимых значений.
\\server\share\program.exe
Программа*.exe
Pro?ram.exe
Программа<1>.exe
Примечание Генератор UE-V кодирует символы больше и меньше, > чем и < соответственно.
В редких случаях значение FileName не обязательно будет включать расширение .exe, но оно должно быть указано как часть значения. Например, <Filename>MyApplictication.exe</Filename>
следует указать вместо <Filename>MyApplictication</Filename>
. Во втором примере шаблон не применяется к процессу, если фактическое имя исполняемого файла — "MyApplication.exe".
Architecture (Архитектура)
Обязательный: False
Тип: Архитектура (строка)
Архитектура относится к архитектуре процессора, для которой был скомпилирован целевой исполняемый файл. Допустимые значения: Win32 для 32-разрядных приложений или Win64 для 64-разрядных приложений. Если он имеется, этот тег ограничивает применимость шаблона расположения параметров к определенной архитектуре приложения. В качестве примера сравните файлы %ProgramFiles%\Виртуализация средств взаимодействия с пользователем (Майкрософт)\templates\ MicrosoftOffice2010Win32.xml и MicrosoftOffice2010Win64.xml, включенные в UE-V. Это полезно, если относительные пути меняются между разными версиями исполняемого файла или если параметры были добавлены или удалены при переходе от одной архитектуры процессора к другой.
Если этот элемент отсутствует, шаблон расположения параметров игнорирует архитектуру процесса и применяется как к 32-разрядным, так и к 64-разрядным процессам, если применяются имя файла и другие атрибуты.
Примечание UE-V не поддерживает процессоры ARM в этой версии.
ProductName
Обязательный: False
Тип: String
ProductName — это необязательный элемент, используемый для идентификации продукта в целях администрирования или создания отчетов. ProductName отличается от filename тем, что нет ограничений регулярного выражения на его значение. Это позволяет получить более понятные описания процесса, в котором имя исполняемого файла может быть неочевидным. Пример:
<Process>
<Filename>MyApplication.exe</Filename>
<ProductName>My Application 6.x by Contoso.com</ProductName>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
FileDescription
Обязательный: False
Тип: String
FileDescription — это необязательный тег, который позволяет использовать административное описание исполняемого файла. Это свободное текстовое поле, которое может быть полезно для различения нескольких исполняемых файлов в программном пакете, где необходимо определить функцию исполняемого файла.
Например, в подходящем приложении может быть полезно предоставить напоминания о функции двух исполняемых файлов (MyApplication.exe и MyApplicationHelper.exe), как показано ниже:
<Processes>
<Process>
<Filename>MyApplication.exe</Filename>
<FileDescription>My Application Main Engine</ FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
<Process>
<Filename>MyApplicationHelper.exe</Filename>
<FileDescription>My Application Background Process Executable</FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
</Processes>
ProductVersion
Обязательный: False
Тип: String
ProductVersion относится к основным и дополнительным версиям продукта файла, а также к уровню сборки и исправлений. ProductVersion является необязательным элементом, но если он указан, он должен содержать по крайней мере дочерний элемент Major. Значение должно выражать диапазон в форме Minimum="X" Maximum="Y", где X и Y являются целыми числами. Значения Минимум и Максимум могут быть идентичными.
Элементы версии продукта и файла могут быть оставлены неуказанными. Это делает шаблон "не зависящим от версии", то есть шаблон будет применяться ко всем версиям указанного исполняемого файла.
Пример 1.
Версия продукта: 1.0, указанная в генераторе UE-V, создает следующий XML-код:
<ProductVersion>
<Major Minimum="1" Maximum="1" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
Пример 2.
Версия файла: 5.0.2.1000, указанная в генераторе UE-V, создает следующий XML-код:
<FileVersion>
<Major Minimum="5" Maximum="5" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="2" Maximum="2" />
<Patch Minimum="1000" Maximum="1000" />
</FileVersion>
Неправильный пример 1 — неполный диапазон:
Присутствует только атрибут Minimum. Максимальное значение также должно быть включено в диапазон.
<ProductVersion>
<Major Minimum="2" />
</ProductVersion>
Неправильный пример 2. Дополнительный параметр, указанный без элемента Major:
Присутствует только элемент Minor. Майор также должен быть включен.
<ProductVersion>
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
FileVersion
Обязательный: False
Тип: String
FileVersion различает версию выпуска опубликованного приложения и сведения о внутренней сборке исполняемого файла компонента. Для большинства коммерческих приложений эти числа идентичны. Если они различаются, версия продукта файла указывает на универсальную версию файла, а версию файла — конкретную сборку файла (как в случае исправления или обновления). Это уникально идентифицирует файлы без нарушения логики обнаружения.
Чтобы определить версию продукта и версию файла конкретного исполняемого файла, щелкните правой кнопкой мыши файл в Windows Обозреватель, выберите Свойства, а затем перейдите на вкладку Сведения.
Включение элемента FileVersion для приложения обеспечивает более детализированную логику точной настройки обнаружения, но не требуется для большинства приложений. Сначала проверяются параметры элемента ProductVersion, а затем — FileVersion. Будет применен более строгий параметр.
Дочерние элементы и правила синтаксиса для FileVersion идентичны элементам ProductVersion.
<Process>
<Filename>MSACCESS.EXE</Filename>
<Architecture>Win32</Architecture>
<ProductVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
<FileVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</FileVersion>
</Process>
Элемент Application
Приложение — это контейнер для параметров, применяемых к конкретному приложению. Это коллекция следующих полей и типов.
Поле или тип | Описание |
---|---|
Name |
Задает уникальное имя для шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя. |
ID |
Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор. |
Описание |
Необязательное описание шаблона. |
LocalizedNames |
Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка. |
Локализованные описания |
Необязательное описание шаблона, локализованное языковым стандартом. |
Версия |
Определяет версию шаблона расположения параметров для административного отслеживания изменений. Дополнительные сведения см. в разделе Версия. |
DeferToMSAccount |
Определяет, включен ли этот шаблон вместе с учетной записью Майкрософт. Если для пользователя на компьютере включена синхронизация MSA, этот шаблон будет автоматически отключен. |
DeferToOffice365 |
Как и в случае с MSA, этот шаблон определяет, включен ли этот шаблон вместе с Office365. Если для синхронизации параметров используется Office 365, этот шаблон будет автоматически отключен. |
Процессы |
Контейнер для коллекции из одного или нескольких элементов Process. Дополнительные сведения см. в разделе Процессы. |
Параметры |
Контейнер для всех параметров, применяемых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction. Дополнительные сведения см. в разделе Параметры в типах данных. |
Элемент Common
Common похож на элемент Application, но он всегда связан с двумя или более элементами Application. Раздел Общие представляет набор параметров, которые совместно используются этими экземплярами приложения. Это коллекция следующих полей и типов.
Поле или тип | Описание |
---|---|
Name |
Задает уникальное имя для шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя. |
ID |
Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор. |
Описание |
Необязательное описание шаблона. |
LocalizedNames |
Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка. |
Локализованные описания |
Необязательное описание шаблона, локализованное языковым стандартом. |
Версия |
Определяет версию шаблона расположения параметров для административного отслеживания изменений. Дополнительные сведения см. в разделе Версия. |
DeferToMSAccount |
Определяет, включен ли этот шаблон вместе с учетной записью Майкрософт. Если для пользователя на компьютере включена синхронизация MSA, этот шаблон будет автоматически отключен. |
DeferToOffice365 |
Как и в случае с MSA, этот шаблон определяет, включен ли этот шаблон вместе с Office365. Если для синхронизации параметров используется Office 365, этот шаблон будет автоматически отключен. |
Параметры |
Контейнер для всех параметров, применяемых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction. Дополнительные сведения см. в разделе Параметры в типах данных. |
Элемент SettingsLocationTemplate
Этот элемент определяет параметры для одного приложения или набора приложений.
Поле или тип | Описание |
---|---|
Name |
Задает уникальное имя для шаблона расположения параметров. Он используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя. |
ID |
Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор. |
Описание |
Необязательное описание шаблона. |
LocalizedNames |
Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка. |
Локализованные описания |
Необязательное описание шаблона, локализованное языковым стандартом. |
Приложение: SettingsLocationTemplate.xsd
Ниже приведен файл SettingsLocationTemplate.xsd с элементами, дочерними элементами, атрибутами и параметрами:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UevSettingsLocationTemplate"
targetNamespace="https://schemas.microsoft.com/UserExperienceVirtualization/2013/SettingsLocationTemplate"
elementFormDefault="qualified"
xmlns="https://schemas.microsoft.com/UserExperienceVirtualization/2013/SettingsLocationTemplate"
xmlns:mstns="https://schemas.microsoft.com/UserExperienceVirtualization/2013/SettingsLocationTemplate"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="Guid">
<xs:restriction base="xs:string">
<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FilenameString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IDString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:.]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TemplateVersion">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="2147483647" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Empty">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="LocalizedString">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Locale" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LocalizedName">
<xs:sequence>
<xs:element name="Name" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocalizedDescription">
<xs:sequence>
<xs:element name="Description" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Author">
<xs:all>
<xs:element name="Name" type="xs:string" minOccurs="1" />
<xs:element name="Email" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="Range">
<xs:attribute name="Minimum" type="xs:integer" use="required"/>
<xs:attribute name="Maximum" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="ProcessVersion">
<xs:sequence>
<xs:element name="Major" type="Range" minOccurs="1" />
<xs:element name="Minor" type="Range" minOccurs="0" />
<xs:element name="Build" type="Range" minOccurs="0" />
<xs:element name="Patch" type="Range" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Architecture">
<xs:restriction base="xs:string">
<xs:enumeration value="Win32"/>
<xs:enumeration value="Win64"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Process">
<xs:sequence>
<xs:element name="Filename" type="FilenameString" minOccurs="1" />
<xs:element name="Architecture" type="Architecture" minOccurs="0" />
<xs:element name="ProductName" type="xs:string" minOccurs="0" />
<xs:element name="FileDescription" type="xs:string" minOccurs="0" />
<xs:element name="ProductVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="FileVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Processes">
<xs:sequence>
<xs:choice minOccurs="1">
<xs:element name="Process" type="Process" />
<xs:element name="ShellProcess" type="Empty" />
</xs:choice>
<xs:element name="Process" type="Process" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Path">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Recursive" type="xs:boolean" default="false"/>
<xs:attribute name="DeleteIfNotFound" type="xs:boolean" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RegistrySetting">
<xs:sequence>
<xs:element name="Path" type="Path" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FileSetting">
<xs:sequence>
<xs:element name="Root">
<xs:complexType>
<xs:choice>
<xs:element name="KnownFolder" type="Guid" />
<xs:element name="RegistryEntry" type="xs:string" />
<xs:element name="EnvironmentVariable" type="xs:string" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Path" minOccurs="0" type="Path" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="SystemParameterSetting">
<xs:restriction base="xs:string">
<!-- Accessibility parameters -->
<xs:enumeration value="AccessTimeout"/>
<xs:enumeration value="AudioDescription"/>
<xs:enumeration value="ClientAreaAnimation"/>
<xs:enumeration value="DisableOverlappedContent"/>
<xs:enumeration value="FilterKeys"/>
<xs:enumeration value="FocusBorderHeight"/>
<xs:enumeration value="FocusBorderWidth"/>
<xs:enumeration value="HighContrast"/>
<xs:enumeration value="MessageDuration"/>
<xs:enumeration value="MouseClickLock"/>
<xs:enumeration value="MouseClickLockTime"/>
<xs:enumeration value="MouseKeys"/>
<xs:enumeration value="MouseSonar"/>
<xs:enumeration value="MouseVanish"/>
<xs:enumeration value="ScreenReader"/>
<xs:enumeration value="ShowSounds"/>
<xs:enumeration value="SoundSentry"/>
<xs:enumeration value="StickyKeys"/>
<xs:enumeration value="ToggleKeys"/>
<!-- Input parameters -->
<xs:enumeration value="Beep"/>
<xs:enumeration value="BlockSendInputResets"/>
<xs:enumeration value="DefaultInputLang"/>
<xs:enumeration value="DoubleClickTime"/>
<xs:enumeration value="DoubleClkHeight"/>
<xs:enumeration value="DoubleClkWidth"/>
<xs:enumeration value="KeyboardCues"/>
<xs:enumeration value="KeyboardDelay"/>
<xs:enumeration value="KeyboardPref"/>
<xs:enumeration value="KeyboardSpeed"/>
<xs:enumeration value="Mouse"/>
<xs:enumeration value="MouseButtonSwap"/>
<xs:enumeration value="MouseHoverHeight"/>
<xs:enumeration value="MouseHoverTime"/>
<xs:enumeration value="MouseHoverWidth"/>
<xs:enumeration value="MouseSpeed"/>
<xs:enumeration value="MouseTrails"/>
<xs:enumeration value="SnapToDefButton"/>
<xs:enumeration value="WheelScrollChars"/>
<xs:enumeration value="WheelScrollLines"/>
<!-- Desktop parameters (limited subset) -->
<xs:enumeration value="DeskWallpaper"/>
<xs:enumeration value="DesktopColor"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Settings">
<xs:sequence>
<xs:element name="Asynchronous" type="xs:boolean" minOccurs="0" />
<xs:element name="PreventOverlappingSynchronization" type="xs:boolean" minOccurs="0" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Registry" type="RegistrySetting" />
<xs:element name="File" type="FileSetting" />
<xs:element name="SystemParameter" type="SystemParameterSetting" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Common">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Application">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:element name="SettingsLocationTemplate">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:choice>
<!-- Single application -->
<xs:sequence>
<xs:element name="Version" type="TemplateVersion" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
<!-- Suite of applications -->
<xs:sequence>
<xs:element name="ManageSuiteOnly" type="xs:boolean" minOccurs="0" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="Common" type="Common" />
<xs:element name="Application" type="Application" minOccurs="2" maxOccurs="unbounded" />
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- SettingsLocationTemplate -->
</xs:schema>
Связанные темы
Работа с пользовательскими шаблонами UE-V 2.x и генератором UE-V 2.x