Импорт данных из Configuration Manager в Service Manager

Важно!

Поддержка этой версии Service Manager завершена. Мы рекомендуем выполнить обновление до Service Manager 2022.

В этой статье описывается создание, настройка, включение и отключение соединителя Configuration Manager, а также настройка расширенного файла SMS_def.mof в Configuration Manager для сбора данных об оборудовании. Соединитель используется для импорта данных из Configuration Manager в Service Manager.

Соединитель для Configuration Manager обнаруживает мобильные устройства и принадлежность пользователей устройству, после чего синхронизирует их в базе данных Service Manager.

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

Использование соединителя Configuration Manager позволяет импортировать шаблоны базовой конфигурации из Configuration Manager и использовать их для автоматического создания инцидентов для несовместимых элементов конфигурации.

Сведения о реализации изменений и конфигурации в Microsoft Operations Framework (MOF) см. в статье Положение SMF-файла изменения и конфигурации в жизненном цикле ИТ-службы MOF.

Завершите процесс регистрации хранилища данных

Перед созданием соединителя Configuration Manager необходимо убедиться, что процесс регистрации Data Warehouse завершен.

Дополнительные данные в Configuration Manager

В состав дополнительных данных в Configuration Manager входят данные о принадлежности пользователя устройству, данные о мобильных устройствах и данные о запросе программного обеспечения. Данные о принадлежности пользователя устройству в Configuration Manager позволяют точно определить, кто является основным пользователем компьютера или устройства. Эти данные, собранные соединителем Service Manager Configuration Manager, используются для заполнения полей UsesComputer и PrimaryUser в базе данных Service Manager.

Данные о мобильных устройствах Windows Phone, Windows Mobile Phone и Nokia собираются соединителем Service Manager Configuration Manager. Данные с других мобильных устройств, таких как телефоны iPhone, BlackBerry и Android, будут собираться при использовании соединителя Configuration Manager Exchange Server. Данные мобильных устройств импортируются в базу данных Service Manager в виде элементов конфигурации и могут быть сопоставлены с рабочими элементами, а также процессами управления изменениями и управления инцидентами.

Данные о запросе программного обеспечения используются для интеграции запросов самообслуживания с Configuration Manager. Данные административных категорий из Configuration Manager используются для выбора шаблонов запроса на обслуживание, применяемых при создании запроса из портала самообслуживания.

Расписание

Соединитель Configuration Manager можно настроить для обновления базы данных Service Manager по повторяющемуся расписанию. Также можно временно приостановить импорт данных из Configuration Manager, отключив соединитель. Например, можно отключить соединитель на период обслуживания базы данных сайта Configuration Manager, поскольку известно, что процесс обслуживания создает временные неточности в данных. В подходящий момент можно снова включить соединитель и возобновить импорт данных.

Расширенная инвентаризация данных оборудования с Configuration Manager

В Configuration Manager можно расширить инвентаризацию оборудования путем инвентаризации дополнительных классов инструментария управления Windows (WMI), дополнительных атрибутов классов WMI, разделов реестра и других настроек в соответствии с требованиями вашей организации. Дополнительные сведения о расширении инвентаризации оборудования в Configuration Manager см. в разделе Расширение инвентаризации оборудования.

Если вы расширили инвентаризацию оборудования в Configuration Manager, необходимо создать новый пакет управления соединителя Configuration Manager в Service Manager для сбора расширенного инвентаризации оборудования. Этот новый пакет управления может содержать только данные, необходимые для сбора данных расширенной инвентаризации оборудования в Configuration Manager, либо может состоять из всех компонентов исходного пакета управления соединителя Configuration Manager с добавлением средств расширенной инвентаризации оборудования. Сведения о создании нового пакета управления соединителя см. в статье Настройка соединителя Configuration Manager для расширенного файла SMS_def.mof.

Импорт элементов конфигурации программного обеспечения

Элементы конфигурации программного обеспечения можно импортировать с помощью соединителя Configuration Manager, импортировав следующие классы отчетов аналитики активов в Configuration Manager. Перед настройкой соединителя Configuration Manager в Service Manager следует активировать эти классы в Configuration Manager. Дополнительные сведения о включении аналитики активов в Configuration Manager см. в разделе Включение аналитики активов.

  • SMS_InstalledSoftware;

  • SMS_SystemConsoleUsage;

  • SMS_SystemConsoleUser;

  • SoftwareLicensingService;

  • SoftwareLicensingProduct.

Если программное обеспечение для определенного компьютера не отображается в представлении Все программное обеспечение в рабочей области Элементы конфигурации, просмотрите журнал событий Operations Manager на Service Manager основном сервере управления. Следует найти события с источниками "Соединитель Operations Manager" и "служба Lfx", после чего проверить их на наличие ошибок.

Создание соединителя Configuration Manager

Чтобы создать соединитель для импорта данных из Configuration Manager в System Center, можно использовать следующие процедуры: Service Manager и подтвердить состояние соединителя.

Важно!

Перед созданием соединителя Configuration Manager необходимо убедиться, что Configuration Manager установлен в вашей среде, и включить контроль учетных записей Windows (UAC). Дополнительные сведения об UAC см. в разделе Контроль учетных записей пользователей.

Создание соединителя Configuration Manager

  1. В консоли Service Manager выберите Администрирование.
  2. В области Администрирование разверните узел Администрирование и выберите Соединители.
  3. В области Задачи в разделе Соединители выберите Создать соединитель и Configuration Manager Соединитель. Запустится мастер создания соединителя Configuration Manager.
  4. На странице Перед началом работы нажмите кнопку Далее.
  5. На странице Общие сделайте следующее.
    1. В поле Имя введите имя нового соединителя. Например, введите Configuration Manager Соединитель в Сиэтл.
    2. В поле Описание введите описание нового соединителя. Например, введите соединитель Configuration Manager для сайта Seattle.
    3. Убедитесь, что установлен флажок Включено , и нажмите кнопку Далее.
  1. На странице Выбор пакета управления в списке Пакет управления выберите System Center Configuration Manager Connector Configuration (Конфигурация соединителя System Center Configuration Manager) или System Center Configuration Manager 2012 Connector Configuration (Конфигурация соединителя System Center Configuration Manager 2012) и нажмите кнопку Далее.
  1. На странице Выбор пакета управления в списке Пакет управления выберите System Center Configuration Manager Connector Configuration (Конфигурация соединителя System Center Configuration Manager) и нажмите кнопку Далее.
  1. На странице Подключение к базе данных System Center Configuration Manager выполните следующие действия.

    1. В поле Имя сервера базы данных введите имя сервера, на котором размещается база данных сайта Configuration Manager и именованный экземпляр базы данных, если применимо. Например, в гипотетическом Банке Woodgrove можно ввести woodgrove\instance1, если база данных Configuration Manager находится на именованном экземпляре Microsoft SQL Server, или ввести woodgrove, если база данных находится на экземпляре SQL Server по умолчанию.
    2. В поле Имя базы данных введите имя базы данных сайта Configuration Manager. Например, введите SMS_CM1.
    3. В области Учетные данные выберите учетную запись запуска от имени или создайте новую учетную запись запуска от имени. Учетная запись пользователя, указываемая в качестве учетной записи запуска от имени, должна входить в группы smsdbrole_extract и db_datareader в базе данных сайта Configuration Manager.
    4. В области Учетные данные выберите Проверить подключение.
    5. В диалоговом окне Учетные данные в поле Пароль введите пароль для учетной записи и нажмите кнопку ОК.
    6. Если в диалоговом окне Проверка подключения появится следующее сообщение с подтверждением, нажмите кнопку ОК: подключение к серверу выполнено успешно.
    7. Выберите Далее.
  2. На странице Коллекции выберите соответствующую коллекцию и нажмите кнопку Далее.

  3. На странице Расписание в списке Синхронизация задайте частоту и время синхронизации и нажмите кнопку Далее.

  4. На странице Сводка подтвердите параметры соединителя и нажмите кнопку Создать.

  5. На странице Подтверждение убедитесь, что вы получили следующее сообщение с подтверждением: Мастер соединителя System Center Configuration Manager успешно завершен. Затем нажмите кнопку Закрыть.

    Примечание

    Для импорта данных из Configuration Manager мастеру соединителя Configuration Manager System Center может потребоваться несколько часов.

Проверка создания соединителя Configuration Manager

  1. Убедитесь, что созданный соединитель Configuration Manager отображается в области Соединители .
  2. В консоли Service Manager выберите Элементы конфигурации. В области Элементы конфигурации разверните узлы Элементы конфигурации, Компьютеры и Выберите Все компьютеры Windows. Убедитесь, что предполагаемые компьютеры отображаются на панели Все компьютеры Windows .
  3. Дважды щелкните в средней области только что импортированный компьютер. Убедитесь, что в форме компьютера отображаются соответствующие сведения о компьютере.

Подтверждение состояния соединителя Configuration Manager

  • Просмотрите столбцы в области Соединитель . Здесь имеются сведения о времени запуска, времени завершения, состоянии и ходе выполнения.

Символ PowerShellДля создания нового соединителя Configuration Manager можно использовать команду Windows PowerShell. Сведения об использовании Windows PowerShell для создания нового соединителя Configuration Manager в Service Manager см. в разделе New-SCCMConnector.

Отключение и включение соединителя Configuration Manager

Для отключения или включения соединителя Configuration Manager и проверки состояния изменения можно использовать следующие процедуры.

Отключение соединителя Configuration Manager

  1. В консоли Service Manager выберите Администрирование.

  2. В области Администрирование разверните узел Администрирование и выберите Соединители.

  3. В области Соединители выберите соединитель Configuration Manager, который требуется отключить. Например, выберите Configuration Manager соединитель к SEA.

  4. В области Задачи под именем соединителя выберите Отключить.

    Примечание

    Если отключить соединитель во время синхронизации данных, процесс синхронизации может не остановиться. Однако отключенный соединитель не будет импортировать новые данные из базы данных Configuration Manager с этого момента.

Включение соединителя Configuration Manager

  1. В консоли Service Manager выберите Администрирование.
  2. В области Администрирование разверните узел Администрирование и выберите Соединители.
  3. В области Соединители выберите соединитель Configuration Manager, который требуется включить. Например, выберите Configuration Manager соединитель к SEA.
  4. В области Задачи под именем соединителя выберите Включить.

Проверка изменения состояния соединителя Configuration Manager

  1. После отключения или включения соединителя подождите 30 секунд. Затем в консоли Service Manager выберите Администрирование и Соединители.
  2. В области Соединители найдите соединитель, состояние которого вы изменили, и проверьте значение в столбце Включено .
  3. Если соединитель был включен, убедитесь, что он возобновил синхронизацию по расписанию. Если соединитель был выключен, убедитесь, что он прекратил синхронизацию по расписанию.

Снимок экрана: символ PowerShell.Для выполнения этих и других связанных задач можно использовать команды Windows PowerShell следующим образом:

  • Сведения о том, как использовать Windows PowerShell для запуска соединителя Service Manager, см. в статье о Start-SCSMConnector.
  • Сведения о получении соединителей, которые определены в Service Manager, и просмотре их состояния с помощью Windows PowerShell см. в статье Get-SCSMConnector.
  • Сведения об использовании Windows PowerShell для обновления свойств соединителя Service Manager см. в разделе Update-SCSMConnector.

Синхронизация соединителя Configuration Manager

Чтобы убедиться, что база данных Service Manager обновлена, соединитель System Center Configuration Manager синхронизируется с Configuration Manager каждый день после начальной синхронизации. Однако можно воспользоваться следующей процедурой для синхронизации соединителя вручную и проверки успешного выполнения синхронизации.

Ручная синхронизация соединителя Configuration Manager

  1. В консоли Service Manager выберите Администрирование.

  2. В области Администрирование разверните узел Администрирование и выберите Соединители.

  3. В области Соединители выберите соединитель Configuration Manager, который требуется синхронизировать.

  4. В области Задачи под именем соединителя выберите Синхронизировать сейчас.

    Примечание

    В зависимости от объема импортируемых данных может потребоваться дождаться завершения импорта.

Проверка синхронизации соединителя Configuration Manager

  1. В консоли Service Manager выберите Элементы конфигурации.
  2. В области Элементы конфигурации разверните узел Компьютеры и выберите Все компьютеры Windows. Проверьте, появились ли в средней области новые компьютеры из Configuration Manager.

Настройка соединителя Configuration Manager для расширенного файла SMS_def.mof

Service Manager инвентаризации оборудования собирает и затем предоставляет сведения о системе, такие как доступное дисковое пространство, тип процессора и операционная система, о каждом компьютере в иерархии Configuration Manager. В Configuration Manager пользователи могут настроить файл SMS_def.mof, используемый Configuration Manager по умолчанию для расширения собираемых данных об оборудовании.

Когда в Service Manager создается соединитель Configuration Manager, можно выбрать пакет управления конфигурацией соединителя System Center Configuration Manager по умолчанию, который необходимо использовать для этого соединителя. С помощью пакета управления по умолчанию соединитель импортирует данные об оборудовании, программном обеспечении и управлении требуемой конфигурацией для компьютеров, входящих в систему.

Если файл SMS_def.mof расширен для сбора в Configuration Manager дополнительных данных об оборудовании, которые также необходимо импортировать в Service Manager, следует создать новый пользовательский пакет управления, в котором будут определены эти дополнительные данные. Затем необходимо создать новый соединитель Configuration Manager и настроить его для использования нового пользовательского пакета управления.

Импорт расширенных данных инвентаризации оборудования из Configuration Manager

Чтобы импортировать данные расширенной инвентаризации оборудования из Configuration Manager, необходимо создать пользовательский пакет управления соединителя Configuration Manager. Существует два способа реализации пользовательского соединителя Configuration Manager.

  • Создайте пользовательский пакет управления соединителем Configuration Manager, в котором определены расширенные данные для импорта, а затем создайте два соединителя. Настройте один соединитель для использования пакета управления конфигурацией соединителя System Center Configuration Manager по умолчанию, чтобы импортировать данные, которые определены по умолчанию. Настройте второй соединитель для использования пользовательского пакета управления, чтобы импортировать дополнительные расширенные данные.

  • Настройте пакет управления конфигурацией соединителя System Center Configuration Manager по умолчанию, включив в него дополнительные расширенные данные. Создайте один соединитель, настроенные для использования пользовательского пакета управления, чтобы импортировать все необходимые данные.

В этой статье содержатся сведения, необходимые для реализации первого подхода, описанного выше. Здесь приводятся данные, которые необходимы для разработки пользовательского пакета управления соединителем Configuration Manager, который импортирует расширенные данные инвентаризации оборудования из Configuration Manager.

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

  1. Создайте пользовательский пакет управления конфигурацией соединителя Configuration Manager с определениями для расширенных данных.
  2. Импортируйте настраиваемый пакет управления в Service Manager. После импорта пакета управления Service Manager обрабатывает содержащиеся в нем директивы для создания промежуточных таблиц и выполнения сценариев SQL для установки, как определено в пакете управления.
  3. Создайте соединитель Configuration Manager и настройте его для использования пользовательского пакета управления.
  4. Соединитель Configuration Manager импортирует данные.

Работа с пользовательским пакетом управления соединителя Configuration Manager

При работе с пользовательским пакетом управления соединителя Configurations Manager учитывайте следующие советы.

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

  • После создания соединителя Configuration Manager нельзя изменить его выбор пакета управления. Вместо этого необходимо удалить соединитель и создать новый соединитель, выбрав нужный пакет управления.

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

    При удалении пользовательского пакета управления соединителя Configurations Manager Service Manager пытается удалить все связанные промежуточные таблицы, созданные во время импорта пакета управления. Затем Service Manager выполняет все скрипты, определенные в разделе Удаление пакета управления.

  • В отличие от других пакетов управления, пользовательский пакет управления соединителя Configuration Manager нельзя использовать для управления версиями. Импорт более поздней версии пакета управления завершится успешно. Однако конфигурация соединителя в пакете управления не будет обрабатываться или может вызвать ошибки проверки, заносящиеся в журнал событий.

Создание пользовательского пакета управления конфигурации соединителя Configuration Manager

Структура пользовательского пакета управления конфигурацией соединителя Configuration Manager аналогична пакету управления соединителем Configuration Manager по умолчанию. Он должен содержать два шаблона объектов: DataProvider и DataConsumer , которые указывают порядок импорта и применения данных.

Раздел DataProvider

В разделе DataProvider содержатся сведения, например о том, какие данные следует импортировать, которые необходимо получить при импорте данных из Configuration Manager в промежуточные таблицы LinkingFramework. Раздел DataProvider содержит запросы, выполняемые в базе данных сайта Configuration Manager; директивы для создания промежуточной таблицы; пользовательские скрипты SQL; а также сведения, относящиеся к добавочной синхронизации, такие как подложка и пакетная обработка.

Раздел DataConsumer

В разделе DataConsumer содержатся сведения о чтении данных из промежуточных таблиц и их записи в пространство экземпляров базы данных ServiceManager , например сущности или связи. Раздел DataConsumer содержит запросы, выполняемые в промежуточных таблицах; сопоставление с системой типов Service Manager, пользовательскими скриптами SQL и сведениями, относящимися к добавочной синхронизации, такими как подложка и пакетная обработка.

Структура разделов шаблонов объектов DataProvider и DataConsumer

Шаблоны объектов DataProvider и DataConsumer фактически предназначены для типа проекции. В следующем коде показана общая структура разделов DataProvider и DataConsumer .

<TypeProjection ID="System.LinkingFramework.DataConnector.Projection" Accessibility="Public" Type="System.LinkingFramework.DataConnector">
          <Component Alias="DataTable" Path="$Context/Path[Relationship='System.LinkingFramework.ConnectorEmbedsTables' TypeConstraint='System.LinkingFramework.DataTable']$">
            <Component Alias="Field" Path="$Context/Path[Relationship='System.LinkingFramework.TableEmbedsFields']$" />
          </Component>
          <Component Alias="DataCollection" Path="$Context/Path[Relationship='System.LinkingFramework.ConnectorEmbedsCollections' TypeConstraint='System.LinkingFramework.DataCollection']$" />
 </TypeProjection>

В этом коде DataTable, Fieldи DataCollection определяются следующим образом.

  • DataTable. Минимальный блок данных, определенный для передачи. Это объявление о том, какие данные следует извлечь из внешнего источника данных. Он также определяет зависимости между различными таблицами данных и время завершения операций создания пакетов, назначения водяных знаков и очистки.

  • Поле. Одиночный столбец в таблице данных.

  • DataCollection. Набор таблиц данных для передачи за одно задание или сеанс передачи данных. Он определяет данные, включаемые в эту коллекцию.

Свойства в пользовательском пакете управления

В следующей таблице подробно описано каждое свойство в пользовательском пакете управления конфигурацией соединителя Configuration Manager. Эти рекомендации используются при создании пользовательского пакета управления.

Свойство Ожидаемое значение Проверка после импорта
ID Для шаблонов DataProvider и DataConsumer , как показано в примере Да
Свойства DataConnector
DataConnectorName Для шаблонов DataProvider и DataConsumer — идентичны значениям в образце. Да
IsProvider В шаблоне DataProvider — True

В шаблоне DataConsumer — False
Да
SolutionName Примечание. Например, он может указывать тип импортируемых данных. Попытка импортировать пакет управления, в котором уже используется имя решения, вызывает ошибку, которая заносится в журнал событий.
Entrypoint, EntryAssembly & WinformUIAssembly Аналогично значению в образце
Раздел InstallSQLScripts Сценарии SQL, которые должны выполнять после настройки промежуточных таблиц. Они обычно используются в шаблоне DataConsumer для настройки представлений, отображающих данные из промежуточных таблиц.

Все, что заключено между <тегами script></script> , должно быть допустимым скриптом SQL. Поэтому для комментариев необходимо использовать /**/ разделители с несколькими строковый комментарий вместо стандартных тегов комментариев XML.
Не проверяется. Используйте нестандартные имена таблиц, чтобы исключить перезапись или изменение таблиц, которые не объявлены в пакете управления.
Раздел UnInstallSQLScripts Скрипты SQL, которые должны выполняться после удаления пакета управления соединителя Configuration Manager в консоли Service Manager.

Все, что заключено между <тегами script></script> , должно быть допустимым скриптом SQL. Поэтому для комментариев необходимо использовать /**/ разделители с несколькими строковый комментарий вместо стандартных тегов комментариев XML.
Не проверяется. Используйте нестандартные имена таблиц, чтобы исключить перезапись или изменение таблиц, которые не объявлены в пакете управления.
DisableParallelProcessing True
DataTable Properties
DataName Таблица, из которой импортируются данные. Он используется в пользовательском интерфейсе и не используется в запросах.
StageTableName Имя промежуточной таблицы. Оно должно быть уникальным. Попытка импортировать пакет управления, в котором уже используется имя таблицы, вызывает ошибку, которая заносится в журнал событий.
WatermarkField Имя столбца rowversion .
WatermarkType Возможны следующие значения:

— 0 — указывает тип даты и времени
— 1 — указывает тип метки времени .
- (-1)-Указывает отсутствие водяных знаков, в этом случае WatermarkField становится необязательным.
Другие типы подложек не поддерживаются.
BatchIdField Имя столбца с высокой избирательностью. Используется для разделения добавочных данных на пакеты при импорте в промежуточные таблицы.
BatchIdType Возможны следующие значения:

- 0-Int
- (-1)-Без пакетной обработки, в этом случае BatchIdField становится необязательным.
Целочисленный столбец
BatchIdSize Размер пакета, если используется разделение на пакеты. Большое число указывает на одновременное чтение или запись большого объема данных. Рекомендуемое значение — 500. Целочисленный столбец
UseCache True
GroomType Возможны следующие значения:

- 1. Данные в промежуточных таблицах можно сохранить после их передачи в базу данных Service Manager.
- 2. Данные в промежуточных таблицах хранятся только после того, как они помечены как удаленные в базе данных Configuration Manager, а также удалены в базе данных Service Manager из-за синхронизации соединителя Service Manager.
QueryString Фактический запрос, который Configuration Manager 2007 использует для получения запрошенных данных. Запрос должен иметь следующую форму:

SELECT ...

FROM ...

WHERE ...

ORDER BY ...

Предложение WHERE может содержать $COLLECTIONLIST маркер. которая в ходе синхронизации заменяется коллекциями, указанными в мастере подключения к System Center Configuration Manager.

Данные, предоставляемые представлениями Configuration Manager SCCM_Ext.*, поддерживаются для импорта. Эти данные можно расширить, используя стандартные расширения sms_def.mof или noidmifs. Другие таблицы не поддерживаются.

Примечательно, что вложенные запросы не поддерживаются, но поддерживаются соединения с другими таблицами.
Не проверяется. Все запросы имеют столбец Lfx_Status со значением U или D, указывающим, представляет ли строка операцию Update или Delete.
CollectionName Имя для группы таблиц данных. Это имя должно быть уникальным. Таблицы в одной коллекции не могут зависеть друг от друга. Попытка импортировать пакет управления, в котором уже используется имя коллекции, вызывает ошибку, которая заносится в журнал событий.
PrimaryKeyName Раздел, в котором объявляет уникальное имя первичного ключа для промежуточной таблицы. Попытка импортировать пакет управления, в котором уже используется имя ключа, вызывает ошибку, которая заносится в журнал событий.
DependOnDataTable Имена объектов DataTable , которые необходимо синхронизировать перед данным объектом. Обычно используется для синхронизации промежуточной таблицы перед считыванием в представление потребителя.

Если вы используете несколько коллекций, зависимость должна быть выражена только между таблицами в разных коллекциях.
Не проверяется
Свойства DataField
Name, Type, AllowNull Эти поля обязательны для любого типа столбца. Поддерживаются типы int, nvarchar, datetime и xml. Не проверяется
PrimaryKeyACs, PrimaryKeyPosition Если часть первичного ключа указывает позицию слева в первичном ключе. Lfx добавляет в конец первичного ключа два столбца для внутреннего использования (Lfx_Status, Lfx_SourceId).
Параметры сортировки DATABASE_DEFAULT Не проверяется
Свойства DataCollection
DataCollectionName Должно совпадать со значением, на которое ссылается свойство DataTable . Попытка импортировать пакет управления, в котором уже используется имя коллекции, вызывает ошибку, которая заносится в журнал событий.
StagingName В шаблоне DataProvider — DefaultCache

В шаблоне DataConsumer — отсутствует
Не проверяется
DataTables Список таблиц, ссылающихся на эту коллекцию, с разделителями-запятыми.
Параметры В шаблоне DataProvider — отсутствует

В шаблоне DataConsumer — указывает сопоставление типов
Экранированный XML-код со следующим синтаксисом:

<TypeName>Microsoft.Windows.Computer</TypeName>

<MPName>Microsoft.Windows.Library</MPName>

<MPVersion>version of MP</MPVersion>

<MPToken>token for MP</MPToken>

Примеры пакетов управления конфигурации пользовательского соединителя Configuration Manager

Ниже приведены определения схем и примеры пакетов управления соединителя Configuration Manager, которые импортируют данные из представления Configuration Manager SCCM_Ext.vex_GS_PC_BIOS.

Дополнительные сведения о свойствах этих пакетов управления см. в таблице ранее в этой статье. Для изменения этих образцов в соответствии с определенным сценарием импорта используется XML-редактор, например редактор в Microsoft Visual Studio.

Импорт данных из размещенного класса

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

В этом примере пакет управления конфигурацией соединителя Configuration Manager содержит две коллекции в разделах DataProvider и DataConsumer . Одна предназначена для импорта данных компьютеров, а вторая — для импорта данных BIOS.

Определение класса


<ManagementPack xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ContentReadable="true" SchemaVersion="1.1" OriginalSchemaVersion="1.1">
  <Manifest>
    <Identity>
      <ID>SampleBIOSMP</ID>
      <Version>1.0.0.0</Version>
    </Identity>
    <Name>BIOS Class MP</Name>
    <References>
      <Reference Alias="System">
        <ID>System.Library</ID>
        <Version>7.0.5229.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
      <Reference Alias="Windows">
        <ID>Microsoft.Windows.Library</ID>
        <Version>7.0.5229.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
    </References>
  </Manifest>
  <TypeDefinitions>
    <EntityTypes>
      <ClassTypes>
        <ClassType ID="HostedCustomClass" Accessibility="Public" Base="System!System.ConfigItem" Hosted="true" Abstract="false">
            <Property ID="SerialNumber" Type="string" Key="true"/>
        </ClassType>
      </ClassTypes>
      <RelationshipTypes>
        <RelationshipType ID="Microsoft.Windows.ComputerHostsBIOS" Accessibility="Public" Base="System!System.Hosting">
          <Source ID="Computer" Type="Windows!Microsoft.Windows.Computer" />
          <Target ID="BIOSClass" Type="HostedCustomClass" />
        </RelationshipType>      
      </RelationshipTypes>
    </EntityTypes>
  </TypeDefinitions>
</ManagementPack>

Пакет управления конфигурацией соединителя Configuration Manager

<ManagementPack xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ContentReadable="true" SchemaVersion="1.1" OriginalSchemaVersion="1.1">
  <Manifest>
    <Identity>
      <ID>CnfgMgrBiosSample</ID>
      <Version>7.0.5229.0</Version>
    </Identity>
    <Name>CnfgMgrBiosSample</Name>
    <References>
      <Reference Alias="System">
        <ID>System.Library</ID>
        <Version>7.0.5229.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
      <Reference Alias="LFX">
        <ID>ServiceManager.LinkingFramework.Library</ID>
        <Version>7.0.5229.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
    </References>
  </Manifest>
  <Templates>
    <ObjectTemplate ID="DataProvider.Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms" TypeID="LFX!System.LinkingFramework.DataConnector.Projection">
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/DataConnectorName$">
          Microsoft_EnterpriseManagement_ServiceManager_Connector_Sms
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/IsProvider$">
          True
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/SolutionName$">SampleBIOS</Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/EntryPoint$">
          Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms.SmsConnector
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/EntryAssembly$">
          Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms,
          Version="7.0.5000.0",
          Culture=neutral,
          PublicKeyToken="31bf3856ad364e35"
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/WinFormUIAssembly$">
          Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms.SmsConnector,   
          Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms, Version="7.0.5000.0", Culture=neutral,
          PublicKeyToken="31bf3856ad364e35"
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/InstallSQLScripts$"></Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/DisableParallelProcess$">
          True
      </Property>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">SCCM_Ext.Sample_vex_R_System</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/StageTableName$">Sample_SMS_vex_R_System</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">S.[rowversion]</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">1</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">S.[ResourceID]</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">2000</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">true</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/GroomType$">2</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$"><![CDATA[
                            SELECT S.ResourceID,
                                S.ChangeAction as Lfx_Status,
                                S.Netbios_Name0,
                                S.Resource_Domain_OR_Workgr0
                            FROM SCCM_Ext.vex_R_System S
                            INNER JOIN SCCM_Ext.vex_FullCollectionMembership CM
                                ON S.ResourceID = CM.ResourceID
                            INNER JOIN SCCM_Ext.vex_Collection C
                                ON C.CollectionID = CM.CollectionID
                            WHERE ((S.ChangeAction = 'U' AND S.Client_Type0 != 3 AND S.Hardware_ID0 IS NOT NULL)
                                  OR S.ChangeAction = 'D')
                                  AND $COLLECTIONLIST
                            ORDER BY S.rowversion
                   ]]>
</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">BIOSComputers</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/PrimaryKeyName$">[Sample_SMS_PK_v_R_SYSTEM]</Property>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">[ResourceID]</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">Int</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">false</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyPosition$">0</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyAcs$">true</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">Netbios_Name0</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">NVarChar</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Size$">64</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Collation$">DATABASE_DEFAULT</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">true</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">Resource_Domain_OR_Workgr0</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">NVarChar</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Size$">255</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Collation$">DATABASE_DEFAULT</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">true</Property>
        </Object>
      </Object>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">SCCM_Ext.Sample_vex_GS_COMPUTER_SYSTEM</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/StageTableName$">Sample_SMS_vex_GS_COMPUTER_SYSTEM</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">CS.[rowversion]</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">1</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">CS.[ResourceID]</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">2000</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">true</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/GroomType$">2</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$"><![CDATA[
                            SELECT CS.ResourceID,
                                    CS.GroupKey,
                                    CS.ChangeAction as Lfx_Status,
                                    CS.Name0,
                                    CS.Domain0
                            FROM SCCM_Ext.vex_GS_COMPUTER_SYSTEM CS
                            INNER JOIN SCCM_Ext.vex_FullCollectionMembership CM
                                ON CS.ResourceID = CM.ResourceID
                            INNER JOIN SCCM_Ext.vex_Collection C
                                ON C.CollectionID = CM.CollectionID  
                            WHERE $COLLECTIONLIST
                            ORDER BY CS.rowversion
                   ]]>
</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">BIOSComputers</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/PrimaryKeyName$">[Sample_SMS_PK_v_GS_COMPUTER_SYSTEM]</Property>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">[ResourceID]</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">Int</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">false</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyPosition$">0</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyAcs$">true</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">[GroupKey]</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">Int</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">false</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyPosition$">1</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyAcs$">true</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">[Name0]</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">NVarChar</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Size$">64</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Collation$">DATABASE_DEFAULT</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">true</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">[Domain0]</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">NVarChar</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Size$">32</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Collation$">DATABASE_DEFAULT</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">true</Property>
        </Object>
      </Object>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">SCCM_Ext.vex_GS_PC_BIOS</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/StageTableName$">Sample_SMS_vex_GS_PC_BIOS</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">S.[rowversion]</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">1</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">S.[ResourceID]</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">2000</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">true</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/GroomType$">2</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$"><![CDATA[
                      SELECT S.ChangeAction as Lfx_Status,
                      S.ResourceID,
                      S.BatchingKey,
                      S.GroupKey,
                      S.SerialNumber0
                      FROM SCCM_Ext.vex_GS_PC_BIOS S
                      INNER JOIN SCCM_Ext.vex_FullCollectionMembership CM
                        ON S.ResourceID = CM.ResourceID
                      INNER JOIN SCCM_Ext.vex_Collection C
                        ON C.CollectionID = CM.CollectionID
                      WHERE C.ChangeAction = 'U' AND CM.ChangeAction = 'U' AND $COLLECTIONLIST
                      ORDER BY S.rowversion
                   ]]>
        </Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">Sample_SMS_PROVIDER_BIOS_COLLECTION</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/PrimaryKeyName$">[Sample_SMS_PK_v_GS_BIOS1]</Property>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">[ResourceID]</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">Int</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">false</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyPosition$">0</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/PrimaryKeyAcs$">true</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">BatchingKey</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">Int</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">false</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">GroupKey</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">Int</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">true</Property>
        </Object>
        <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.TableEmbedsFields' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.Field']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Name$">SerialNumber0</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Type$">NVarChar</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Size$">34</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/Collation$">DATABASE_DEFAULT</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.Field']/AllowNull$">true</Property>
        </Object>
      </Object>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">BIOSComputers</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/StagingName$">DefaultCache</Property>
          <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">SCCM_Ext.Sample_vex_R_System,SCCM_Ext.Sample_vex_GS_COMPUTER_SYSTEM</Property>
      </Object>
      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">Sample_SMS_PROVIDER_BIOS_COLLECTION</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/StagingName$">DefaultCache</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">SCCM_Ext.vex_GS_PC_BIOS</Property>
      </Object>
    </ObjectTemplate>

    <ObjectTemplate ID="DataConsumer.Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms" TypeID="LFX!System.LinkingFramework.DataConnector.Projection">
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/DataConnectorName$">
          MomStore
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/IsProvider$">
          False
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/SolutionName$">SampleBIOS</Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/EntryPoint$">
  Microsoft.EnterpriseManagement.ServiceManager.Linking.Consumer.OperationalStore.OperationalStoreConsumer
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/EntryAssembly$">
  Microsoft.EnterpriseManagement.ServiceManager.Linking.Consumer.OperationalStore,
  Version="7.0.5000.0",
  Culture=neutral,
  PublicKeyToken="31bf3856ad364e35"
      </Property>
      <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/InstallSQLScripts$"><![CDATA[
                        <Script>
                             if not object_id('[LFXSTG].[v_Sample_SMS_BIOSComputer]') is null
                                drop view [LFXSTG].[v_Sample_SMS_BIOSComputer];
                             exec ('
                                CREATE VIEW [LFXSTG].[v_Sample_SMS_BIOSComputer] AS
                                    SELECT S.Lfx_RowId,
                                           S.Lfx_SourceID,
                                           S.Lfx_Timestamp,
                                           S.Lfx_Status,
                                           CS.Name0 AS ''DisplayName'',
                                           COALESCE(CS.Name0, S.Netbios_Name0)
                                    + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName''
                                    FROM LFXSTG.Sample_SMS_vex_R_System S
                                    INNER JOIN LFXSTG.Sample_SMS_vex_GS_COMPUTER_SYSTEM CS
                                         ON S.ResourceID = CS.ResourceID AND S.Lfx_SourceId = CS.Lfx_SourceId
                                    WHERE S.Netbios_Name0 IS NOT NULL
                                        AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
                                ');
                        </Script>

                        <Script>
                            if not object_id('[LFXSTG].[v_Sample_BIOS]') is null
                                drop view [LFXSTG].[v_Sample_BIOS]
                            exec ('
                                CREATE VIEW [LFXSTG].[v_Sample_BIOS] AS
                                    SELECT P.Lfx_RowId AS Lfx_RowId,
                                        P.Lfx_SourceId,
                                        P.Lfx_Timestamp AS Lfx_Timestamp,
                                        P.Lfx_Status as Lfx_Status,
                                        P.SerialNumber0 AS ''SerialNumber'',
                                        COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName''
                                    FROM [LFXSTG].Sample_SMS_vex_GS_PC_BIOS P
                                    INNER JOIN [LFXSTG]. Sample_SMS_vex_R_System S
                                        ON P.ResourceID=S.ResourceID AND P.Lfx_SourceId = S.Lfx_SourceId
                                    INNER JOIN [LFXSTG]. Sample_SMS_vex_GS_COMPUTER_SYSTEM CS
                                        ON S.ResourceID=CS.ResourceID
                                           AND S.Lfx_SourceId = CS.Lfx_SourceId
                                ')
                        </Script>
                   ]]>
        </Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/UninstallSQLScripts$"><![CDATA[
                       <Script>
                            if not object_id('[LFXSTG].[v_Sample_SMS_BIOSComputer]') is null
                                drop view [LFXSTG].[v_Sample_SMS_BIOSComputer];
               </Script>

                       <Script>
                            if not object_id('[LFXSTG].[v_Sample_BIOS]') IS NULL
                                drop view [LFXSTG].[v_Sample_BIOS];
               </Script>
                   ]]>
        </Property>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">Sample_SMS_Computer</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$"><![CDATA[
                            SELECT * FROM [LFXSTG].v_Sample_SMS_BIOSComputer E
                    ]]>
        </Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">Sample_SMS_Computers_COLLECTION</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">SCCM_Ext.Sample_vex_GS_COMPUTER_SYSTEM,SCCM_Ext.Sample_vex_R_System</Property>
      </Object>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">Sample_SMS_BIOS_CONSUMER_VIEW</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">C.Lfx_Timestamp</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">C.Lfx_RowId</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">False</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$"><![CDATA[
                        select C.* from [LFXSTG].v_Sample_BIOS C
                   ]]>
        </Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">Sample_SMS_BIOS_CONSUMER_COLLECTION</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">SCCM_Ext.vex_GS_PC_BIOS, Sample_SMS_Computer</Property>
      </Object>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">Sample_SMS_Computers_COLLECTION</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">Sample_SMS_Computer</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$"><![CDATA[
<TypeName xmlns="https://schemas.microsoft.com/sdm/servicedesk/linking/2005/09">Microsoft.Windows.Computer</TypeName>
<MPName xmlns="https://schemas.microsoft.com/sdm/servicedesk/linking/2005/09">Microsoft.Windows.Library</MPName>
<MPVersion xmlns="https://schemas.microsoft.com/sdm/servicedesk/linking/2005/09">7.0.5229.0</MPVersion>
<MPToken xmlns="https://schemas.microsoft.com/sdm/servicedesk/linking/2005/09">31bf3856ad364e35</MPToken>
]]>
</Property>
      </Object>

      <Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">Sample_SMS_BIOS_CONSUMER_COLLECTION</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">Sample_SMS_BIOS_CONSUMER_VIEW</Property>
        <Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$"><![CDATA[
<TypeName xmlns="https://schemas.microsoft.com/sdm/servicedesk/linking/2005/09">HostedCustomClass</TypeName>
<MPName xmlns="https://schemas.microsoft.com/sdm/servicedesk/linking/2005/09">SampleBIOSMP</MPName>
<MPVersion xmlns="https://schemas.microsoft.com/sdm/servicedesk/linking/2005/09">1.0.0.0</MPVersion>
        ]]>
        </Property>
      </Object>
    </ObjectTemplate>
  </Templates>
</ManagementPack>

Дальнейшие действия