Compartir a través de


Importación de datos desde Configuration Manager hacia Service Manager

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 cambios y la configuración de Microsoft Operations Framework (MOF), consulta Position of the Change and Configuration SMF Within the MOF IT Service Lifecycle (Posición de SMF de cambio y configuración en el ciclo de vida de servicio de TI de MOF).

Completar el proceso de registro del almacenamiento de datos

Antes de crear el conector de Configuration Manager, debes asegurarte de que el proceso de registro de Data Warehouse se ha completado.

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 utilices el conector de 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 la ampliación del inventario de hardware en Configuration Manager, consulta Cómo ampliar el inventario de hardware.

Si has ampliado el inventario de hardware en Configuration Manager, debes crear un nuevo módulo de administración del conector de Configuration Manager en Service Manager para recopilar el inventario ampliado de hardware. 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 del conector, consulta Configuración de un conector de Configuration Manager para un archivo extendido SMS_def.mof.

Importar elementos de configuración de software

Puedes importar elementos de configuración de software con el conector de Configuration Manager mediante la importación de 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 información sobre cómo habilitar Asset Intelligence en Configuration Manager, consulta Cómo habilitar Asset Intelligence.

  • SMS_InstalledSoftware

  • SMS_SystemConsoleUsage

  • SMS_SystemConsoleUser

  • SoftwareLicensingService

  • SoftwareLicensingProduct

Si el software de un equipo concreto no aparece en la vista Todo el software del área de trabajo Elementos de configuración, revisa el registro de eventos de Operations Manager del servidor de administración principal de Service Manager. 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

Puedes seguir 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, debes comprobar que Configuration Manager está instalado en el entorno y debes activar el Control de cuentas de usuario de Windows (UAC). Para 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, haz clic en Administración.
  2. En el panel Administración, expande Administración y selecciona Conectores.
  3. En el panel Tareas, en Conectores, selecciona Crear conector y luego Conector de Configuration Manager. 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, realiza lo siguiente:
    1. En el cuadro Nombre, escribe un nombre para el nuevo conector. Por ejemplo, escribe Conector de Configuration Manager a Seattle.
    2. En el cuadro Descripción, escribe una descripción para el nuevo conector. Por ejemplo, escribe Conector de Configuration Manager al sitio de Seattle.
    3. Asegúrate de que la casilla Habilitado está activada y selecciona Siguiente.
  1. En la página Seleccionar módulo de administración, en la lista Módulo de administración, selecciona Configuración de conectores de System Center Configuration Manager o Configuración de conectores de System Center Configuration Manager 2012 y selecciona Siguiente.
  1. En la página Seleccionar módulo de administración, en la lista Módulo de administración, selecciona Configuración de conectores de System Center Configuration Manager y selecciona 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, escribe el nombre del servidor que hospeda la base de datos de sitio de Configuration Manager y la instancia con nombre de la base de datos, si procede. Por ejemplo, en el hipotético Woodgrove Bank, podrías escribir woodgrove\instance1 si la base de datos de Configuration Manager se encuentra en una instancia con nombre de Microsoft SQL Server, o bien escribir woodgrove si la base de datos se encuentra en una instancia predeterminada de SQL Server.
    2. En el cuadro Nombre de la base de datos, escribe el nombre de la base de datos de sitio de Configuration Manager. Por ejemplo, introduce SMS_CM1.
    3. En el área Credenciales, selecciona una cuenta de ejecución, o bien crea 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, haz clic en Prueba de conexión.
    5. En el cuadro de diálogo Credenciales, en el cuadro Contraseña, escribe la contraseña de la cuenta y selecciona Aceptar.
    6. En el cuadro de diálogo Prueba de conexión, si recibes el siguiente mensaje de confirmación, haz clic en Aceptar: La conexión con el servidor se estableció correctamente.
    7. Seleccione Siguiente.
  2. En la página Colecciones, selecciona la colección apropiada y luego selecciona Siguiente.

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

  4. En la página Resumen, confirma la configuración del conector realizada y selecciona Crear.

  5. En la página Confirmación, asegúrate de recibir el siguiente mensaje de confirmación: Ha finalizado correctamente el Asistente del conector de System Center Configuration Manager. Luego selecciona Cerrar.

    Nota

    El Asistente del conector de System Center Configuration Manager puede tardar varias horas en importar los datos desde 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, selecciona Elementos de configuración. En el panel Elementos de configuración, expande Elementos de configuración, expande Equipos y selecciona Todos los equipos de Windows. Comprueba que los equipos deseados 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

  • Visualiza las columnas en el 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 PowerShellPuedes usar un comando de Windows PowerShell para crear un nuevo conector de Configuration Manager. Para obtener información acerca de cómo usar Windows PowerShell para crear un nuevo conector de Configuration Manager en Service Manager, consulta New-SCCMConnector.

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

Puedes 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, haz clic en Administración.

  2. En el panel Administración, expande Administración y selecciona Conectores.

  3. En el panel Conectores, selecciona el conector de Configuration Manager que deseas deshabilitar. Por ejemplo, selecciona Conector de Configuration Manager a SEA.

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

    Nota

    Si deshabilitas un conector mientras está sincronizando datos, puede que no se detenga el proceso de sincronización. Sin embargo, un conector deshabilitado no importará datos nuevos desde una base de datos de Configuration Manager a partir de ese punto.

Para habilitar un conector de Configuration Manager

  1. En la consola de Service Manager, haz clic en Administración.
  2. En el panel Administración, expande Administración y selecciona Conectores.
  3. En el panel Conectores, selecciona el conector de Configuration Manager que deseas habilitar. Por ejemplo, selecciona Conector de Configuration Manager a SEA.
  4. En el panel Tareas, en el nombre del conector, selecciona 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. Luego, en la consola de Service Manager, selecciona Administración y selecciona Conectores.
  2. En el panel Conectores, busca el conector cuyo estado has modificado y comprueba 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.Puedes usar comandos de Windows PowerShell para completar estas tareas y otras tareas relacionadas, tal como se indica a continuación:

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

Sincronización de un conector de Configuration Manager

Para asegurarte 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, haz clic en Administración.

  2. En el panel Administración, expande Administración y selecciona Conectores.

  3. En el panel Conectores, selecciona el conector de Operations Manager que quieres sincronizar.

  4. En el panel Tareas, bajo el nombre del conector, selecciona Sincronizar ahora.

    Nota

    Dependiendo de la cantidad de datos que se importen, puede que tengas 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, selecciona Elementos de configuración.
  2. En el panel Elementos de configuración, expande Equipos y selecciona Todos los equipos de 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 extendido SMS_def.mof

El inventario de hardware de Service Manager recopila y luego 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, debes crear un nuevo conector de Configuration Manager y configurarlo para que use el nuevo módulo de administración personalizado.

Importación de datos de inventario de hardwar ampliados desde Configuration Manager

Para importar datos de inventario de hardware ampliados desde Configuration Manager, debes crear un módulo de administración de conectores de Configuration Manager personalizado. Hay dos enfoques para implementar un conector de Configuration Manager personalizado:

  • Crea un módulo de administración de conectores de Configuration Manager personalizado que defina los datos ampliados que deseas importar y, luego, crea 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.

  • Personaliza el módulo de administración de configuración de conectores de System Center Configuration Manager predeterminado para que también incluya los datos ampliados 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.

Este artículo proporciona la información que necesitarás 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.

Trabajo con un módulo de administración de conectores de Configuration Manager personalizado

Ten en cuenta las siguientes sugerencias cuando trabajes con un módulo de administración de conectores de Configuration Manager personalizado:

  • 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 este caso, debes 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, debes eliminar ese conector y después crear uno nuevo con la selección del módulo de administración deseado.

  • Para garantizar la eliminación correcta de un módulo de administración, debes eliminar los conectores configurados para usar el módulo de administración que deseas eliminar y, a continuación, eliminar el módulo de administración.

    Al eliminar un módulo de administración de conectores de Configuration Manager personalizado, 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, no se pueden crear versiones del módulo de administración de conectores de Configuration Manager personalizado. La importación de una versión posterior del módulo de administración se realizará correctamente. Sin embargo, se omitirá la configuración del conector en el módulo de administración o puede que se produzcan errores de validación que se guarden en el registro de eventos.

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

Un módulo de administración de configuración de conectores de Configuration Manager personalizado tiene una estructura similar a la del módulo de administración de conectores de Configuration Manager predeterminado. Debe contener las dos plantillas de objeto 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 deben importar y que debes tener al importar datos desde Configuration Manager en las tablas de almacenamiento provisional 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 e 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 almacenamiento provisional, la asignación al sistema de tipos de Service Manager, los scripts SQL personalizados y la información relevante para la sincronización incremental, como la marca de agua y el procesamiento por lotes.

Estructura de las secciones de plantillas de objetos DataProvider y DataConsumer

Básicamente, DataProvider y DataConsumer son plantillas de objeto destinadas a un tipo de proyección. El código siguiente 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, Field y DataCollection se definen de la siguiente manera:

  • DataTable. Unidad de datos más pequeña definida para la transferencia de datos. Se trata de una declaración de los datos que se deben recuperar desde el origen de datos externo. También define las dependencias entre diferentes tablas de datos y cuándo finalizan el procesamiento por lotes de datos, la marca de agua y la limpieza.

  • Field. Columna única de una tabla de datos.

  • DataCollection. Conjunto de tablas de datos que se van a transferir en una sesión o un trabajo de transferencia de datos. Define qué tablas de datos se incluyen en esta recopilación de datos.

Propiedades del módulo de administración personalizado

En la tabla siguiente se proporcionan los detalles de cada propiedad en el módulo de administración de configuración de conectores de Configuration Manager personalizado. Usa estas instrucciones cuando crees el módulo de administración personalizado.

Propiedad Valor esperado Validación tras la importación
ID Para las plantillas DataProvider y DataConsumer, 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, puedes indicar el tipo de los datos importados. Intento de importar un módulo de administración en el que ya se está usando el nombre de la solución; provoca un error que se guarda en el registro de eventos.
Entrypoint, EntryAssembly y WinformUIAssembly Idéntico al valor del ejemplo
Sección InstallSQLScripts Scripts SQL que se deben ejecutar después de configurar las tablas de almacenamiento provisional. Normalmente se usan en la plantilla DataConsumer para configurar vistas que muestran datos de las tablas de almacenamiento provisional.

Se espera que todo lo que se incluya entre las etiquetas <Script></Script> sea script SQL válido. Por lo tanto, para los comentarios, debes usar los delimitadores de comentarios multilínea /* y */ en lugar de las etiquetas de comentario XML estándar.
No validado. Usa nombres de tabla personalizados para asegurarte de que esto no provoca sobrescritura ni cambios en ninguna de las tablas excepto las declaradas en el módulo de administración.
Sección UnInstallSQLScripts Scripts SQL que se deben ejecutar después de eliminar el módulo de administración de conectores de Configuration Manager en la consola de Service Manager.

Se espera que todo lo que se incluya entre las etiquetas <Script></Script> sea script SQL válido. Por lo tanto, para los comentarios, debes usar los delimitadores de comentarios multilínea /* y */ en lugar de las etiquetas de comentario XML estándar.
No validado. Usa nombres de tabla personalizados para asegurarte de que esto no provoca sobrescritura ni cambios en ninguna de las tablas excepto las en el módulo de administración.
DisableParallelProcessing True
Propiedades de DataTable
DataName Tabla desde la que se van a importar datos. Se usa en la interfaz de usuario (UI) y no se usa en las consultas.
StageTableName Nombre de la tabla de almacenamiento provisional. Debe ser único. Un intento de importar un módulo de administración, en el que el nombre de la tabla ya esté en uso provocará un error que se guardará en el registro de eventos.
WatermarkField Nombre de la columna rowversion
WatermarkType Los valores posibles son:

- 0: indica el tipo DateTime
- 1: indica el tipo de Timestamp
- (-1): indica que no se usa ninguna marca de agua, en cuyo caso WatermarkField se convierte en opcional.
No se admiten otros tipos de marcas de agua.
BatchIdField Nombre de la columna que tiene una buena selectividad; se usa para separar los datos incrementales en lotes al importar en tablas de almacenamiento provisional
BatchIdType Los valores posibles son:

- 0-Int
- (-1): sin procesamiento por lotes, en cuyo caso BatchIdField se convierte en opcional
Columna de enteros
BatchIdSize Tamaño del lote, si se usa el procesamiento por lotes. Un número alto indica que se leen o escriben 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 marcarlos como eliminados en la base de datos de Configuration Manager y tras eliminarlos de la base de datos de Service Manager debido a la sincronización del conector de Service Manager.
QueryString Consulta real que usa Configuration Manager 2007 para recuperar los datos solicitados. La consulta debe tener el formato siguiente:

SELECT ...

FROM ...

WHERE ...

ORDER BY ...

La cláusula WHERE puede contener el token $COLLECTIONLIST. Durante la sincronización, este token se reemplaza por las colecciones especificadas en el Asistente del conector de System Center Configuration Manager.

Se admiten los datos que exponen las vistas SCCM_Ext.* de Configuration Manager para la importación. Estos datos se pueden ampliar mediante extensiones estándar sms_def.mof o mediante 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 el valor U o D, que indica si la fila representa una operación Update o Delete.
CollectionName Nombre de un grupo de tablas de datos; este nombre debe ser único. Las tablas de la misma colección no pueden depender entre sí. Un intento de importar un módulo de administración, en el que el nombre de la colección ya esté en uso provocará un error que se guardará en el registro de eventos.
PrimaryKeyName Sección que declara el nombre de clave principal único para la tabla de almacenamiento provisional. Un intento de importar un módulo de administración, en el que el nombre de la clave ya esté en uso provocará un error que se guardará en el registro de eventos.
DependOnDataTable Nombre o nombres de DataTable que se deben sincronizar primero antes de este. Normalmente, se usa para sincronizar la tabla de almacenamiento provisional antes de que el sistema la lea en la vista Consumidor.

Si usas varias colecciones, la dependencia solo se debe expresar entre tablas de colecciones diferentes.
No validado
Propiedades de DataField
Name, Type, AllowNull Estos son campos obligatorios para cualquier tipo de columna. Los tipos admitidos 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, Lfx_SourceId) al PK al final.
Intercalación DATABASE_DEFAULT No validado
Propiedades de DataCollection
DataCollectionName Debe ser idéntico a lo que la propiedad DataTable hace referencia. Un intento de importar un módulo de administración, en el que el nombre de la colección ya esté en uso provocará un error que se guardará 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 con escape con la sintaxis siguiente:

<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 conectores de Configuration Manager personalizados

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

Consulta la tabla anterior de este artículo para obtener más información sobre las propiedades de estos módulos de administración. Usa un editor XML, como el editor de Microsoft Visual Studio, para modificar estos ejemplos y adaptarlos a los escenarios de importación.

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 este ejemplo, la clase que contiene la información de la BIOS se hospeda en un equipo.

En este ejemplo, el módulo de administración de configuración de conectores de Configuration Manager tiene dos colecciones en las secciones DataProvider y DataConsumer, una para importar los datos de los equipos y la segunda para importar los datos de la 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 conectores 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