Importación de datos desde Configuration Manager hacia Service Manager

Importante

Esta versión de Service Manager ha llegado al final del soporte técnico. Se recomienda actualizar a Service Manager 2022.

En este artículo se describe cómo crear, configurar, deshabilitar y habilitar un conector de Configuration Manager y cómo personalizar el archivo extendido SMS_def.mof del mismo para recopilar información de hardware. Use el conector para importar datos de Configuration Manager en Service Manager.

El conector de Configuration Manager reconoce la afinidad entre usuario y dispositivo y los dispositivos móviles y los sincroniza en la base de datos de Service Manager.

Puede importar datos de la base de datos del sitio de Configuration Manager en la base de datos de Service Manager. De esta manera, se crean y rellenan automáticamente los elementos de configuración de hardware y software que desea administrar en Service Manager. Una vez importados los datos de Configuration Manager, puede adjuntar los elementos de configuración correspondientes a los incidentes en cuestión; de esta forma la información de los elementos de configuración estará disponible para los analistas que se ocupen del incidente.

Si utiliza un conector de Configuration Manager puede importar líneas de base de la configuración de Configuration Manager y, posteriormente, usarlas para generar automáticamente incidentes correspondientes a elementos de configuración no conformes.

Para obtener información sobre la implementación de Microsoft Operations Framework (MOF) de cambio y configuración, vea Posición del SMF de cambio y configuración dentro del ciclo de vida del servicio de TI MOF.

Completar el proceso de registro del almacenamiento de datos

Antes de crear el conector de Configuration Manager, debe asegurarse de que el proceso de registro de Data Warehouse esté completo.

Datos adicionales en Configuration Manager

Entre los datos adicionales de Configuration Manager se incluyen la afinidad entre usuario y dispositivo (UDA), los datos de dispositivos móviles y los datos de solicitudes de software. Los datos de UDA de Configuration Manager determinan con mayor precisión quién es el usuario principal de un equipo o dispositivo. Los datos UDA recopilados por el conector de Service Manager Configuration Manager se usan para rellenar la información de UsesComputer y PrimaryUser en la base de datos de Service Manager.

El conector de Service Manager Configuration Manager recopilará los datos de dispositivos móviles para Windows Phones, Windows Mobile Phones y dispositivos Nokia. Los datos de otros dispositivos móviles, como iPhone, BlackBerry y teléfonos basados en Android, se recopilarán cuando use el conector Configuration Manager Exchange Server. Los datos de dispositivos móviles se importarán en la base de datos de Service Manager como elementos de configuración, y se pueden asociar a elementos de trabajo, administración de incidentes y administración de cambios.

Los datos de solicitudes de software se usarán para permitir la integración de las solicitudes de software de autoservicio en Configuration Manager. Los datos de categoría administrativa de Configuration Manager se usarán para seleccionar qué plantillas de solicitud de servicio se aplicarán a la hora de crear una solicitud desde el Portal de autoservicio.

Programación

Puede configurar el conector de Configuration Manager para actualizar la base de datos de Service Manager con una programación periódica. También puede suspender temporalmente la importación de datos desde Configuration Manager si deshabilita el conector. Por ejemplo, puede deshabilitar el conector cuando se realiza el mantenimiento en la base de datos del sitio de Configuration Manager, porque sabe que el proceso de mantenimiento crea temporalmente datos inexactos. Cuando sea apropiado, puede volver a habilitar el conector y reanudar la importación de datos.

Inventario ampliado de hardware con Configuration Manager

En Configuration Manager, puede ampliar el inventario de hardware recopilando un inventario de clases adicionales de Instrumental de administración de Windows (WMI), atributos adicionales de clase WMI, claves de registro y otras personalizaciones para adaptarlo a las necesidades de su organización. Para obtener más información sobre cómo extender el inventario de hardware en Configuration Manager, vea Cómo ampliar el inventario de hardware.

Si ha ampliado el inventario de hardware en Configuration Manager, debe crear un nuevo módulo de administración de conectores de Configuration Manager en Service Manager para recopilar el inventario de hardware extendido. Este nuevo módulo de administración puede contener únicamente la información necesaria para recopilar el inventario ampliado de hardware desde Configuration Manager, o puede incluir todo el módulo original de administración del conector de Configuration Manager, además del nuevo inventario ampliado de hardware. Para obtener información sobre cómo crear un nuevo módulo de administración de conectores, consulte How to Configure a Configuration Manager Connector for an Extended SMS_def.mof File( Configuración de un conector de Configuration Manager para un archivo extended SMS_def.mof.

Importación de elementos de configuración de software

Puede importar elementos de configuración de software con el conector de Configuration Manager importando las siguientes clases de informes de Asset Intelligence en Configuration Manager. Estas clases deben estar habilitadas en Configuration Manager para poder configurar el conector de Configuration Manager en Service Manager. Para obtener más información sobre cómo habilitar Asset Intelligence en Configuration Manager, consulte Habilitación de Asset Intelligence.

  • SMS_InstalledSoftware

  • SMS_SystemConsoleUsage

  • SMS_SystemConsoleUser

  • SoftwareLicensingService

  • SoftwareLicensingProduct

Si el software de un equipo determinado no aparece en la vista Todo el software del área de trabajo Elementos de configuración, debe revisar el registro de eventos de Operations Manager en el Service Manager servidor de administración principal. Debe buscar eventos con fuentes de conector de OpsMgr y Lfx Service para determinar si hay algún error.

Crear un conector de Configuration Manager

Puede usar los procedimientos siguientes para crear un conector para importar datos de Configuration Manager a System Center : Service Manager y confirmar el estado del conector.

Importante

Para poder crear el conector de Configuration Manager, debe comprobar que Configuration Manager está instalado en su entorno y debe activar el Control de cuentas de usuario (UAC) de Windows. Para obtener más información sobre UAC, consulte Control de cuentas de usuario.

Para crear un conector de Configuration Manager

  1. En la consola de Service Manager, seleccione Administración.
  2. En el panel Administración , expanda Administración y seleccione Conectores.
  3. En el panel Tareas, en Conectores, seleccione Crear conector y Configuration Manager Conector. Se inicia el asistente del conector de Configuration Manager.
  4. En la página Antes de empezar, seleccione Siguiente.
  5. En la página General, realice la acción siguiente:
    1. En el cuadro Nombre , escriba un nombre para el nuevo conector. Por ejemplo, escriba Configuration Manager Connector en Seattle.
    2. En el cuadro Descripción , escriba una descripción para el nuevo conector. Por ejemplo, escriba A Configuration Manager connector to site Seattle (Conector de Configuration Manager para el sitio Seattle).
    3. Asegúrese de que la casilla Habilitado está activada y seleccione Siguiente.
  1. En la página Seleccionar módulo de administración, en la lista Módulo de administración, seleccione System Center Configuration Manager Connector Configuration o System Center Configuration Manager 2012 Connector Configuration (Configuración del conector de System Center Configuration Manager 2012) y seleccione Siguiente.
  1. En la página Seleccionar módulo de administración, en la lista Módulo de administración, seleccione System Center Configuration Manager Configuración del conector y seleccione Siguiente.
  1. En la página Conectar con la base de datos de System Center Configuration Manager , realice la acción siguiente:

    1. En el cuadro Nombre del servidor de base de datos, escriba el nombre del servidor que hospeda la base de datos del sitio de Configuration Manager y la instancia con nombre de base de datos, si procede. Por ejemplo, en el hipotético Woodgrove Bank, puede escribir woodgrove\instance1 si la base de datos de Configuration Manager está en una instancia con nombre de Microsoft SQL Server o escribir woodgrove si la base de datos está en una instancia predeterminada del SQL Server.
    2. En el cuadro Nombre de la base de datos, escriba el nombre de la base de datos del sitio de Configuration Manager. Por ejemplo, escriba SMS_CM1.
    3. En el área Credenciales , seleccione una cuenta de ejecución o cree una nueva cuenta de ejecución. La cuenta de usuario especificada como cuenta de identificación debe ser miembro de los grupos smsdbrole_extract y db_datareader para la base de datos del sitio de Configuration Manager.
    4. En el área Credenciales , seleccione Probar conexión.
    5. En el cuadro de diálogo Credenciales , en el cuadro Contraseña , escriba la contraseña de la cuenta y seleccione Aceptar.
    6. En el cuadro de diálogo Probar conexión , si recibe el siguiente mensaje de confirmación, seleccione Aceptar: La conexión al servidor se realizó correctamente.
    7. Seleccione Next (Siguiente).
  2. En la página Colecciones , seleccione la colección adecuada y, a continuación, seleccione Siguiente.

  3. En la página Programación , en la lista Sincronizar , establezca la frecuencia y la hora de sincronización y seleccione Siguiente.

  4. En la página Resumen , confirme la configuración del conector que ha realizado y seleccione Crear.

  5. En la página Confirmación, asegúrese de recibir el siguiente mensaje de confirmación: Ha completado correctamente el Asistente para conectores de System Center Configuration Manager. A continuación, seleccione Cerrar.

    Nota

    El Asistente para conectores de System Center Configuration Manager puede tardar varias horas en importar datos de Configuration Manager.

Para validar la creación de un conector de Configuration Manager

  1. Confirme que el conector de Configuration Manager creado aparece en el panel Conectores .
  2. En la consola de Service Manager, seleccione Elementos de configuración. En el panel Elementos de configuración , expanda Elementos de configuración, expanda Equipos y seleccione Todos los equipos Windows. Compruebe que los equipos previstos aparecen en el panel Todos los equipos Windows .
  3. En el panel central, haga doble clic en un equipo recién importado. Compruebe que los detalles del equipo que corresponda aparecen en el formulario del equipo.

Para confirmar el estado de un conector de Configuration Manager

  • Consulte las columnas del panel Conector ; las columnas contienen información acerca de la hora de inicio, la hora de finalización, el estado y el porcentaje completado.

Símbolo de PowerShellPuede usar un comando Windows PowerShell para crear un conector de Configuration Manager. Para obtener información sobre cómo usar Windows PowerShell para crear un conector de Configuration Manager en Service Manager, consulte New-SCCMConnector.

Deshabilitación y habilitación de un conector de Configuration Manager

Puede usar los procedimientos siguientes para deshabilitar o habilitar un conector de Configuration Manager y validar el estado del cambio.

Para deshabilitar un conector de Configuration Manager

  1. En la consola de Service Manager, seleccione Administración.

  2. En el panel Administración , expanda Administración y seleccione Conectores.

  3. En el panel Conectores, seleccione el conector Configuration Manager que desea deshabilitar. Por ejemplo, seleccione Configuration Manager conector en SEA.

  4. En el panel Tareas , en el nombre del conector, seleccione Deshabilitar.

    Nota

    Si deshabilita un conector mientras sincroniza los datos, es posible que el proceso de sincronización no se detenga. Sin embargo, un conector deshabilitado no importará datos nuevos desde una base de datos Configuration Manager desde ese momento.

Para habilitar un conector de Configuration Manager

  1. En la consola de Service Manager, seleccione Administración.
  2. En el panel Administración , expanda Administración y seleccione Conectores.
  3. En el panel Conectores, seleccione el conector Configuration Manager que desea habilitar. Por ejemplo, seleccione Configuration Manager conector en SEA.
  4. En el panel Tareas , en el nombre del conector, seleccione Habilitar.

Para validar el cambio de estado de un conector de Configuration Manager

  1. Después de deshabilitar o habilitar el conector, espere 30 segundos. A continuación, en la consola de Service Manager, seleccione Administración y seleccione Conectores.
  2. En el panel Conectores , busque el conector para el que ha cambiado el estado y compruebe el valor de la columna Habilitado .
  3. Si habilitó el conector, compruebe que el conector reanuda la sincronización según la programación. Si deshabilitó el conector, compruebe que el conector ya no realiza la sincronización según la programación.

Captura de pantalla del símbolo de PowerShell.Puede usar Windows PowerShell comandos para completar estas tareas y otras tareas relacionadas, como se indica a continuación:

  • Para obtener información acerca de cómo usar Windows PowerShell para iniciar un conector de Service Manager, consulte Start-SCSMConnector.
  • Para obtener información acerca de cómo usar Windows PowerShell para recuperar conectores definidos en Service Manager y para ver su estado, consulte Get-SCSMConnector.
  • Para obtener información sobre cómo usar Windows PowerShell para actualizar las propiedades de un conector de Service Manager, consulte Update-SCSMConnector.

Sincronizar un conector de Configuration Manager

Para asegurarse de que la base de datos de Service Manager está actualizada, el conector de System Center Configuration Manager se sincroniza con Configuration Manager todos los días después de la sincronización inicial. No obstante, puede usar los procedimientos siguientes para sincronizar manualmente el conector y validar que está sincronizado.

Para sincronizar manualmente un conector de Configuration Manager

  1. En la consola de Service Manager, seleccione Administración.

  2. En el panel Administración , expanda Administración y seleccione Conectores.

  3. En el panel Conectores, seleccione el conector Configuration Manager que desea sincronizar.

  4. En el panel Tareas , en el nombre del conector, seleccione Sincronizar ahora.

    Nota

    Según la cantidad de datos que se importen, puede que tenga que esperar a que finalice la importación.

Para validar la sincronización de un conector de Configuration Manager

  1. En la consola de Service Manager, seleccione Elementos de configuración.
  2. En el panel Elementos de configuración , expanda Equipos y seleccione Todos los equipos Windows. Compruebe que los nuevos equipos de Configuration Manager aparezcan en el panel central.

Configuración de un conector de Configuration Manager para un archivo SMS_def.mof extendido

Service Manager inventario de hardware recopila y, a continuación, proporciona información del sistema, como el espacio en disco disponible, el tipo de procesador y el sistema operativo, sobre cada equipo de la jerarquía de Configuration Manager. En Configuration Manager, los usuarios pueden personalizar el archivo predeterminado SMS_def.mof de Configuration Manager para ampliar la información de hardware recopilada.

Al crear un conector de Configuration Manager en Service Manager, puede seleccionar el módulo predeterminado de administración de conectores de System Center Configuration Manager que se debe utilizar para dicho conector. Utilizando el módulo de administración predeterminado, el conector importa información de hardware, software y de la administración de configuración deseada para los equipos que se encuentran en el sistema.

Si el archivo SMS_def.mof de Configuration Manager se ha extendido para recopilar datos adicionales del inventario de hardware, que también desea importar a Service Manager, debe crear un nuevo módulo de administración personalizado que defina dichos datos. A continuación, tendrá que crear un nuevo conector de Configuration Manager y configurarlo para usar el nuevo módulo de administración personalizado.

Importación de datos de inventario de hardware extendidos desde Configuration Manager

Para importar datos de inventario de hardware extendidos de Configuration Manager, debe crear un módulo de administración de conectores de Configuration Manager personalizado. Existen dos métodos para implementar un conector personalizado de Configuration Manager:

  • Cree un módulo personalizado de administración del conector de Configuration Manager que defina los datos extendidos que desea importar y, a continuación, cree dos conectores. Configure un conector para que utilice el módulo predeterminado de administración del conector de System Center Configuration Manager para importar los datos definidos de forma predeterminada. Configure el segundo conector para utilizar el módulo personalizado de administración con el fin de importar los datos extendidos adicionales.

  • Personalice el módulo predeterminado de administración de configuración del conector de System Center Configuration Manager para que también incluya los datos extendidos adicionales. Cree un único conector configurado para utilizar el módulo personalizado de administración con el fin de importar toda la información que necesita.

En este artículo se proporciona la información que debe tener para implementar el primer enfoque descrito anteriormente. Proporciona los detalles que debe conocer para poder desarrollar un módulo personalizado de administración del conector de Configuration Manager que importe el inventario extendido de hardware desde Configuration Manager.

Los pasos de alto nivel para importar datos del inventario extendido de hardware son los siguientes:

  1. Cree un módulo personalizado de administración de configuración del conector de Configuration Manager con las definiciones de los datos extendidos.
  2. Importe el módulo de administración personalizado en Service Manager. Después de importar el módulo de administración, Service Manager procesa las directivas del módulo de administración para crear tablas provisionales y ejecutar todos los scripts de Lenguaje de consulta estructurado (SQL) de instalación como se hayan definido en el módulo de administración.
  3. Cree un conector de Configuration Manager y configúrelo para utilizar el módulo personalizado de administración.
  4. El conector de Configuration Manager importa los datos.

Trabajar con un módulo de administración personalizado de Configuration Manager Connector

Tenga en cuenta las siguientes sugerencias al trabajar con un módulo de administración personalizado de Configurations Manager Connector:

  • Los errores semánticos de las plantillas de configuración del conector del módulo de administración no impiden que se importe el módulo de administración y se registran en el registro de eventos. En ese caso, debe eliminar el módulo de administración, corregir los errores y volver a importar el módulo de administración.

  • Después de crear un conector de Configuration Manager, no se puede modificar la selección del módulo de administración. En su lugar, debe eliminar dicho conector y crear uno nuevo con la elección del módulo de administración que desee.

  • Para asegurarse de que elimina un módulo de administración correctamente, debe eliminar todos los conectores que estén configurados para utilizar el módulo de administración que desea eliminar y, a continuación, eliminar el módulo de administración.

    Al eliminar un módulo de administración personalizado de Configurations Manager Connector, Service Manager intenta eliminar todas las tablas de almacenamiento provisional relacionadas que se crearon durante la importación del módulo de administración. A continuación, Service Manager ejecuta los scripts definidos en la sección Desinstalar del módulo de administración.

  • A diferencia de otros módulos de administración, el módulo de administración personalizado de Configuration Manager Connector no se puede versionar. La importación de cualquier versión posterior del paquete de administración se realizará correctamente. Sin embargo, la configuración del conector del módulo de administración se omitirá, ya que, de lo contrario, puede causar errores de validación que se registran en el registro de eventos.

Creación de un módulo de administración personalizado de configuración del conector de Configuration Manager

El módulo personalizado de administración de configuración del conector de Configuration Manager presenta una estructura similar a la del módulo predeterminado de administración del conector de Configuration Manager. Debe contener las dos plantillas de objetos DataProvider y DataConsumer que especifican cómo se deben importar y aplicar los datos.

Sección DataProvider

La sección DataProvider proporciona información, como los datos que se van a importar, que debe tener al importar datos de Configuration Manager en las tablas de ensayo de LinkingFramework. La sección DataProvider incluye las consultas que se ejecutan en la base de datos del sitio de Configuration Manager; directivas para la creación de tablas de almacenamiento provisional; scripts SQL personalizados y información relevante para la sincronización incremental, como la marca de agua y el procesamiento por lotes.

Sección DataConsumer

La sección DataConsumer proporciona información sobre cómo leer los datos de las tablas de almacenamiento provisional y escribirlos en el espacio de instancias de la base de datos de ServiceManager , como entidades o relaciones. La sección DataConsumer incluye consultas que se ejecutan en las tablas de ensayo; asignación al sistema de tipos de Service Manager; scripts SQL personalizados e información relevante para la sincronización incremental, como la marca de agua y el procesamiento por lotes.

Estructura de las secciones Plantillas de objeto DataProvider y DataConsumer

Básicamente, DataProvider y DataConsumer son plantillas de objetos que tienen como destino un tipo de proyección. El siguiente código muestra la estructura general de las secciones DataProvider y 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>

En este código, DataTable, Fieldy DataCollection se definen de la siguiente manera:

  • DataTable. La unidad de datos más pequeña definida para la transferencia de datos. Es una declaración de los datos que se van a recuperar del origen de datos externo. También define las dependencias existentes entre las diferentes tablas de datos y cuándo ha terminado el procesamiento por lotes, la colocación de marcas de agua y la limpieza de los datos.

  • Campo. Una única columna en una tabla de datos.

  • DataCollection. Un conjunto de tablas de datos a transferir en un trabajo o una sesión de transferencia de datos. Define las tablas de datos que se incluyen en esta recopilación de datos.

Propiedades del módulo de administración personalizado

La siguiente tabla proporciona detalles sobre cada propiedad del módulo personalizado de administración de configuración del conector de Configuration Manager. Utilice estas instrucciones cuando cree el módulo de administración personalizado.

Propiedad Valor esperado Validación tras la importación
ID Para las plantillas DataProvider y DataConsumer , tal y como se indica en el ejemplo
Propiedades de DataConnector
DataConnectorName Para las plantillas DataProvider y DataConsumer , idénticas a los valores del ejemplo
IsProvider En la plantilla DataProvider : True

En la plantilla DataConsumer : False
SolutionName Comentario. Por ejemplo, puede indicar el tipo de datos importados. El intento de importación de un módulo de administración en el que ya se está utilizando el nombre de la solución. Genera un error que se registra en el registro de eventos.
Entrypoint, EntryAssembly & WinformUIAssembly Idéntico al valor de la muestra
Sección InstallSQLScripts Se configuran las secuencias de comandos SQL que deben ejecutarse después de las tablas provisionales. Normalmente se usan en la plantilla DataConsumer para configurar vistas que muestran datos de las tablas de ensayo.

Se espera que todo lo que se incluya entre las <etiquetas Script></Script> sea un script SQL válido. Por lo tanto, para los comentarios, debe usar los /* delimitadores de comentario de varias líneas y */ en lugar de las etiquetas de comentario XML estándar.
No validado. Utilice nombres personalizados de tabla para evitar que sobrescriban o cambien las tablas, excepto las que están declaradas en el módulo de administración.
Sección UnInstallSQLScripts Los scripts SQL que deben ejecutarse después de eliminar el módulo de administración de Configuration Manager Connector en la consola de Service Manager.

Se espera que todo lo que se incluya entre las <etiquetas Script></Script> sea un script SQL válido. Por lo tanto, para los comentarios, debe usar los /* delimitadores de comentario de varias líneas y */ en lugar de las etiquetas de comentario XML estándar.
No validado. Utilice nombres de tabla personalizados para asegurarse de que no se sobrescriben ni se cambian tablas, excepto las que están declaradas en el módulo de administración.
DisableParallelProcessing True
Propiedades de DataTable
DataName La tabla de la que se importan datos. Se usa en la interfaz de usuario (UI) y no se usa en las consultas.
StageTableName Nombre de la tabla provisionales. Debe ser único. El intento de importar un módulo de administración en el que el nombre de tabla ya se está utilizando genera un error que se registra en el registro de eventos.
WatermarkField El nombre de la columna de rowversion
WatermarkType Los valores posibles son:

- 0- Indica el tipo DateTime
- 1- Indica el tipo de marca de tiempo
- (-1): indica que no hay marcas de agua, en cuyo caso WatermarkField se convierte en opcional.
No se admiten otros tipos de marcas de agua.
BatchIdField El nombre de columna que tiene una adecuada selectividad y que se utiliza para separar datos incrementales en lotes para importarlos a tablas provisionales
BatchIdType Los valores posibles son:

- 0-Int
- (-1)-Sin procesamiento por lotes, en cuyo caso BatchIdField se convierte en opcional.
Columna de enteros
BatchIdSize El tamaño del lote si se utiliza el procesamiento por lotes. Un número alto indica que se están leyendo o escribiendo muchos datos al mismo tiempo. El valor recomendado es 500. Columna de enteros
UseCache True
GroomType Los valores posibles son:

- 1-Los datos de las tablas de almacenamiento provisional se pueden limpiar después de transferirlos a la base de datos de Service Manager.
- 2- Los datos de las tablas de almacenamiento provisional se limpiarán solo después de que se marque como eliminados en la base de datos de Configuration Manager y también se ha eliminado en la base de datos de Service Manager debido a la sincronización del conector de Service Manager.
QueryString La consulta real que Configuration Manager 2007 usa para recuperar los datos solicitados. La consulta debe ser de la siguiente forma:

SELECT ...

FROM ...

WHERE ...

ORDER BY ...

La cláusula WHERE puede contener el $COLLECTIONLIST token. Durante la sincronización, este símbolo es sustituido por las recopilaciones especificadas en el Asistente del conector de System Center Configuration Manager.

Los datos expuestos por Configuration Manager SCCM_Ext.* se admiten para la importación. Estos datos se pueden extender mediante extensiones sms_def.mof estándar o noidmifs. No se admiten otras tablas.

En particular, no se admiten subconsultas, pero se admiten combinaciones a otras tablas.
No validado. Todas las consultas tienen una columna Lfx_Status con valor U o D, que indica si la fila representa una operación de actualización o eliminación.
CollectionName El nombre de un grupo de tablas de datos; dicho nombre debe ser único. Las tablas de la misma colección no pueden depender entre sí. El intento de importar un módulo de administración, en el que el nombre de la colección ya se está utilizando, genera un error que se registra en el registro de eventos.
PrimaryKeyName Una sección que declara el nombre único de clave principal de la tabla provisional. El intento de importar un módulo de administración, en el que el nombre de la clave ya se está utilizando, genera un error que se registra en el registro de eventos.
DependOnDataTable El nombre (o nombres) de DataTable que deben sincronizarse antes que este. Se suele utilizar para sincronizar la tabla provisionales antes de que el sistema la lea en la vista Consumidor.

Si usa varias colecciones, la dependencia solo se debe expresar entre tablas de colecciones diferentes.
No validado
Propiedades de DataField
Name, Type, AllowNull Son campos obligatorios para cualquier tipo de columna. Los tipos compatibles son int, nvarchar, datetime y xml. No validado
PrimaryKeyACs, PrimaryKeyPosition Si parte de la clave principal indica la posición de la izquierda en la clave principal. Lfx agrega dos columnas de uso interno (Lfx_Status y Lfx_SourceId) al final de la clave principal.
Intercalación DATABASE_DEFAULT No validado
Propiedades de DataCollection
DataCollectionName Debe ser idéntico al que hace referencia una propiedad DataTable . El intento de importar un módulo de administración, en el que el nombre de la colección ya se está utilizando, genera un error que se registra en el registro de eventos.
StagingName En la plantilla DataProvider-DefaultCache

En la plantilla DataConsumer: no está presente
No validado
Objetos DataTable Lista de valores separados por comas (CSV) de tablas que hacen referencia a esta colección
Configuración En la plantilla DataProvider : no está presente

En la plantilla DataConsumer : indica la asignación de tipos.
XML de escape con la siguiente sintaxis:

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

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

<MPVersion>version of MP</MPVersion>

<MPToken>token for MP</MPToken>

Ejemplos de módulos de administración de configuración de Conector de Configuration Manager personalizados

A continuación se muestran las definiciones de esquema y Configuration Manager ejemplos del módulo de administración del conector que importan datos de la vista Configuration Manager SCCM_Ext.vex_GS_PC_BIOS.

Consulte la tabla anterior de este artículo para obtener más información sobre las propiedades de estos módulos de administración. Para modificar estas muestras con el fin de adaptarlas a sus escenarios de importación, utilice un editor XML, como el de Microsoft Visual Studio.

Importación de datos desde una clase hospedada

Cuando se especifica una clase hospedada, la vista de la plantilla DataConsumer debe incluir columnas para la propiedad de clave de la clase primaria. En esta muestra, la clase que contiene la información de BIOS está alojada en un equipo.

En este ejemplo, el módulo de administración de configuración del conector de Configuration Manager tiene dos recopilaciones en las secciones DataProvider y DataConsumer , la primera para importar los datos de los equipos y la segunda para importar los datos de BIOS.

Definición de clase


<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>

Módulo de administración de configuración de conector de 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>

Pasos siguientes