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


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

В этой статье описывается создание, настройка, включение и отключение соединителя 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 необходимо убедиться, что процесс регистрации хранилища данных завершен.

Дополнительные данные в 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, будут собираться при использовании соединителя Exchange Server Configuration Manager. Данные мобильных устройств импортируются в базу данных 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). Дополнительные сведения о контроле учетных записей см. в разделе Контроль учетных записей.

Чтобы создать соединитель Configuration Manager, выполните следующие действия.

  1. В консоли Service Manager выберите "Администрирование".
  2. В области администрирования разверните узел администрирование и выберите "Соединители".
  3. В области "Задачи" в разделе "Соединители" выберите "Создать соединитель" и выберите "Соединитель Configuration Manager". Запустится мастер создания соединителя Configuration Manager.
  4. На странице "Перед началом работы" нажмите кнопку "Далее".
  5. На странице "Общие" сделайте следующее:
    1. В поле "Имя" введите имя нового соединителя. Например, введите Соединитель Configuration Manager в Сиэтл.
    2. В поле "Описание" введите описание нового соединителя. Например, введите соединитель Configuration Manager на сайт Сиэтла.
    3. Убедитесь, что установлен флажок "Включен " и нажмите кнопку "Далее".
  1. На странице "Выбор пакета управления" в списке пакетов управления выберите конфигурацию соединителя System Center Configuration Manager или Конфигурацию соединителя System Center Configuration Manager 2012 и нажмите кнопку "Далее".
  1. На странице "Выбор пакета управления" в списке пакетов управления выберите конфигурацию соединителя 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. Затем нажмите кнопку "Закрыть".

    Примечание.

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

Проверка создания соединителя 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.
  • Сведения об использовании Windows PowerShell для получения соединителей, определенных в Service Manager и просмотре их состояния, см. в статье 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 Connector рекомендуется использовать следующие советы.

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

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

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

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

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

Создание пользовательского пакета управления конфигурацией соединителя 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. Минимальный блок данных, определенный для передачи. Это объявление о том, какие данные извлекаются из внешнего источника данных. Он также определяет зависимости между различными таблицами данных и время завершения операций создания пакетов, назначения водяных знаков и очистки.

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

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

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

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

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

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

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

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

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

- 0-Int
- (-1)-Нет пакетной обработки, в этом случае BatchIdField становится необязательным
Целочисленный столбец
BatchIdSize Размер пакета, если используется разделение на пакеты. Большое число указывает на одновременное чтение или запись большого объема данных. Рекомендуемое значение — 500. Целочисленный столбец
UseCache Истина
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 template-Indicates type mapping
Экранированный 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 должно содержать столбцы для ключевого свойства родительского класса. В этом образце класс, содержащий данные 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>

Следующие шаги