Compartilhar via


Importar dados do Configuration Manager para o Service Manager

Este artigo descreve como criar, configurar, desabilitar e habilitar um conector do Configuration Manager e como personalizar o arquivo SMS_def.mof estendido do Configuration Manager para coletar informações de hardware. Use o conector para importar dados do Configuration Manager para o Service Manager.

O conector do Configuration Manager reconhece Afinidade de Dispositivo de Usuário e Dispositivos Móveis e sincroniza-os no banco de dados do Service Manager.

Você pode importar dados do banco de dados do site do Configuration Manager para o banco de dados do Service Manager. Isso cria e popula automaticamente itens de configuração para o hardware e software que você deseja gerenciar no Service Manager. Depois de importar dados do Configuration Manager, é possível anexar os respectivos itens de configuração aos incidentes relevantes, e as informações nos itens de configuração ficarão disponíveis aos analistas que estão trabalhando no incidente.

Usando um conector do Configuration Manager, você pode importar linhas de base de configuração do Configuration Manager e depois usá-las para gerar automaticamente incidentes relacionados a itens de configuração não compatíveis.

Para obter informações sobre a implementação de alterações e configurações do MOF (Microsoft Operations Framework), consulte Position of the Change and Configuration SMF Within the MOF IT Service Lifecycle (Posição do SMF de alterações e configurações no ciclo de vida de serviços de TI do MOF).

Concluir o processo de registro do data warehouse

Antes de criar o conector do Configuration Manager, você deve garantir que o processo de registro do data warehouse esteja concluído.

Dados adicionais no Configuration Manager

Os dados adicionais no Configuration Manager incluem UDA (Afinidade de Dispositivo de Usuário), Dados do Dispositivo Móvel e Dados de Solicitação de Software. Os dados de UDA do Configuration Manager determinam com mais precisão quem o usuário principal de um computador ou dispositivo é. Os dados de UDA coletados pelo conector do Service Manager Configuration Manager são usados para popular as informações de UsesComputer e PrimaryUser no banco de dados do Service Manager.

Os dados de dispositivo móvel para Windows Phones, Windows Mobile Phones e dispositivos Nokia serão coletados pelo conector do Service Manager Configuration Manager. Os dados de outros dispositivos móveis, como iPhone, BlackBerry e telefones baseados em Android, serão coletados quando você estiver usando o conector do Exchange Server do Configuration Manager. Os dados do dispositivo móvel serão importados para o banco de dados do Service Manager como itens de configuração e eles podem estar associados a itens de trabalho, gerenciamento de incidentes e gerenciamento de alterações.

Os dados de solicitação de software serão usados em suporte à integração de solicitação de software de autoatendimento com o Configuration Manager. Os dados de categoria administrativa do Configuration Manager serão usados para selecionar quais modelos de Solicitação de Serviço aplicar ao criar uma solicitação no Portal de Autoatendimento.

Agenda

Você pode configurar o conector do Configuration Manager para atualizar o banco de dados do Service Manager em um cronograma recorrente. Também é possível suspender temporariamente a importação de dados do Configuration Manager desabilitando o conector. Por exemplo, você pode desabilitar o conector quando a manutenção é executada no banco de dados do site do Configuration Manager, pois você sabe que o processo de manutenção cria temporariamente dados imprecisos. Quando apropriado, é possível reabilitar o conector e reiniciar a importação de dados.

Inventário de hardware estendido com o Configuration Manager

No Configuration Manager, você pode estender o inventário de hardware coletando um inventário de mais classes WMI (Instrumentação de Gerenciamento do Windows), atributos adicionais de classes WMI, chaves do Registro e outras personalizações para acomodar as exigências da sua organização. Para obter mais informações sobre como estender o inventário de hardware no Configuration Manager, consulte Como estender o inventário de hardware.

Se você estendeu o inventário de hardware no Configuration Manager, deverá criar um novo pacote de gerenciamento do Configuration Manager Connector no Service Manager para coletar o inventário de hardware estendido. Esse novo pacote de gerenciamento pode conter apenas as informações necessárias para coletar o inventário de hardware estendido do Configuration Manager. Ou pode ser formado por todo o conteúdo do pacote de gerenciamento original do Conector do Configuration Manager mais o novo inventário de hardware estendido. Para obter informações sobre como criar um novo pacote de gerenciamento de conector, consulte Como configurar um conector do Configuration Manager para um arquivo SMS_def.mof estendido.

Importando itens de configuração de software

Você pode importar itens de configuração de software com o Conector do Configuration Manager importando as seguintes classes de relatório do Asset Intelligence no Configuration Manager. Essas classes devem estar habilitadas no Configuration Manager antes de você configurar o conector do Configuration Manager no Service Manager. Para obter mais informações sobre como habilitar o Asset Intelligence no Configuration Manager, consulte Como habilitar o Asset Intelligence.

  • SMS_InstalledSoftware

  • SMS_SystemConsoleUsage

  • SMS_SystemConsoleUser

  • SoftwareLicensingService

  • SoftwareLicensingProduct

Se o software de um computador específico não aparecer no modo de exibição Todos os Softwares no espaço de trabalho Itens de Configuração, você deverá examinar o log de eventos do Operations Manager no servidor de gerenciamento primário do Service Manager. Você deve procurar eventos com fontes do Conector OpsMgr e do Serviço Lfx para determinar se há algum erro.

Criar um conector do Configuration Manager

Você pode usar os procedimentos a seguir para criar um conector para importar dados do Configuration Manager para o System Center – Service Manager e confirmar o status do conector.

Importante

Antes de criar o conector do Configuration Manager, você precisa verificar se o Configuration Manager está instalado em seu ambiente e ativar o UAC (Controle de Conta de Usuário) do Windows. Para obter mais informações sobre o UAC, consulte User Account Control.

Para criar um conector do Configuration Manager, siga estas etapas:

  1. No console do Service Manager, selecione Administração.
  2. No painel Administração, expanda Administração e selecione Conectores.
  3. No painel Tarefas, em Conectores, selecione Criar Conector e selecione Conector do Configuration Manager. O Assistente do Conector do Configuration Manager é iniciado.
  4. Na página Antes de Começar escolha Avançar.
  5. Na página Geral , faça o seguinte:
    1. Na caixa Nome, insira um nome para o novo conector. Por exemplo, insira Configuration Manager Connector para Seattle.
    2. Na caixa Descrição, insira uma descrição para o novo conector. Por exemplo, insira Um conector do Configuration Manager para o site Seattle.
    3. Verifique se a caixa de seleção Habilitado está marcada e selecione Avançar.
  1. Na página Selecionar Pacote de Gerenciamento, na lista Pacote de Gerenciamento, selecione Configuração do Conector do System Center Configuration Manager ou Configuração do Conector do System Center Configuration Manager 2012 e selecione Avançar.
  1. Na página Selecionar Pacote de Gerenciamento, na lista Pacote de Gerenciamento, selecione Configuração do Conector do System Center Configuration Manager e selecione Avançar.
  1. Na página Conectar-se ao Banco de Dados do System Center Configuration Manager , faça o seguinte:

    1. Na caixa Nome do Servidor de Banco de Dados, insira o nome do servidor que está hospedando o banco de dados do site do Configuration Manager e a instância nomeada do banco de dados, se aplicável. Por exemplo, no hipotético Woodgrove Bank, você pode inserir woodgrove\instance1 se o banco de dados do Configuration Manager estiver em uma instância nomeada do Microsoft SQL Server ou inserir woodgrove se o banco de dados estiver em uma instância padrão do SQL Server.
    2. Na caixa Nome do Banco de Dados, insira o nome do banco de dados do site do Configuration Manager. Por exemplo, insira SMS_CM1.
    3. Na área Credenciais , selecione uma conta Executar como existente ou crie uma nova. A conta de usuário especificada como conta Executar como deve ser membro dos grupos smsdbrole_extract e db_datareader referentes ao banco de dados de site do Configuration Manager.
    4. Na área Credenciais, selecione Testar Conexão.
    5. Na caixa de diálogo Credenciais, na caixa Senha, insira a senha da conta e selecione OK.
    6. Na caixa de diálogo Testar Conexão, se você receber a seguinte mensagem de confirmação, selecione OK: A conexão com o servidor foi bem-sucedida.
    7. Selecione Avançar.
  2. Na página Coleções , selecione a coleção apropriada e, em seguida, selecione Avançar.

  3. Na página Agendar , na lista Sincronizar , defina a frequência e a hora da sincronização e selecione Avançar.

  4. Na página Resumo , confirme as configurações do conector feitas e selecione Criar.

  5. Na página Confirmação , certifique-se de receber a seguinte mensagem de confirmação: Você concluiu com êxito o Assistente do Conector do System Center Configuration Manager. Em seguida, selecione Fechar.

    Observação

    O Assistente de Conector do System Center Configuration Manager pode levar várias horas para importar dados do Configuration Manager.

Validar a criação de um conector do Configuration Manager

  1. Confirme se o conector do Configuration Manager que você criou aparece no painel Conectores .
  2. No console do Service Manager, selecione Itens de Configuração. No painel Itens de Configuração , expanda Itens de Configuração, expanda Computadores e selecione Todos os Computadores Windows. Verifique se os computadores pretendidos aparecem no painel Todos os computadores Windows.
  3. No painel central, clique duas vezes em um computador recém-importado. Verifique se os detalhes apropriados aparecem no formulário desse computador.

Confirmar o status de um conector do Configuration Manager

  • Exiba as colunas no painel Conector ; elas contêm informações sobre a hora de início, a hora de término, o status e a porcentagem de conclusão.

Símbolo do PowerShellVocê pode usar um comando do Windows PowerShell para criar um novo conector do Configuration Manager. Para obter informações sobre como usar o Windows PowerShell para criar um novo conector do Configuration Manager no Service Manager, consulte New-SCCMConnector.

Desabilitar e habilitar um conector do Configuration Manager

Você pode usar os procedimentos a seguir para desabilitar ou habilitar um conector do Configuration Manager e validar o status da alteração.

Desabilitar um conector do Configuration Manager

  1. No console do Service Manager, selecione Administração.

  2. No painel Administração, expanda Administração e selecione Conectores.

  3. No painel Conectores, selecione o conector do Configuration Manager que você deseja desabilitar. Por exemplo, selecione Configuration Manager conector para SEA.

  4. No painel Tarefas, no nome do conector, selecione Desabilitar.

    Observação

    Se você desabilitar um conector enquanto ele estiver sincronizando dados, o processo de sincronização poderá não ser interrompido. No entanto, um conector desabilitado não importará novos dados de um banco de dados do Configuration Manager desse ponto em diante.

Habilitar um conector do Configuration Manager

  1. No console do Service Manager, selecione Administração.
  2. No painel Administração, expanda Administração e selecione Conectores.
  3. No painel Conectores, selecione o conector do Configuration Manager que você deseja habilitar. Por exemplo, selecione Configuration Manager conector para SEA.
  4. No painel Tarefas, no nome do conector, selecione Habilitar.

Validar a alteração de status de um conector do Configuration Manager

  1. Depois de desabilitar ou habilitar o conector, aguarde 30 segundos. Em seguida, no console do Service Manager, selecione Administração e selecione Conectores.
  2. No painel Conectores, localize o conector para o qual você alterou o status e verifique o valor na coluna Habilitado.
  3. Se você tiver habilitado o conector, verifique se ele reiniciou a sincronização de acordo com o cronograma. Se você tiver desabilitado o conector, confirme se ele não não está mais sincronizando de acordo com o cronograma.

Captura de tela do símbolo do PowerShell.Você pode usar comandos do Windows PowerShell para concluir essas tarefas e outras tarefas relacionadas, da seguinte maneira:

  • Para obter informações sobre como usar o Windows PowerShell para iniciar um conector do Service Manager, consulte Start-SCSMConnector.
  • Para obter informações sobre como usar o Windows PowerShell para recuperar conectores definidos no Service Manager e exibir seu status, consulte Get-SCSMConnector.
  • Para obter informações sobre como usar o Windows PowerShell para atualizar as propriedades de um conector do Service Manager, consulte Update-SCSMConnector.

Sincronizar um conector do Configuration Manager

Para garantir que o banco de dados do Service Manager esteja atualizado, o conector do System Center Configuration Manager é sincronizado com o Configuration Manager todos os dias após a sincronização inicial. No entanto, os procedimentos a seguir podem ser usados para sincronizar o conector manualmente e validar a sincronização.

Sincronizar manualmente um conector do Configuration Manager

  1. No console do Service Manager, selecione Administração.

  2. No painel Administração, expanda Administração e selecione Conectores.

  3. No painel Conectores, selecione o conector do Configuration Manager que você deseja sincronizar.

  4. No painel Tarefas, sob o nome do conector, selecione Sincronizar Agora.

    Observação

    Dependendo da quantidade de dados importada, talvez seja necessário aguardar a conclusão da importação.

Validar se um conector do Configuration Manager foi sincronizado

  1. No console do Service Manager, selecione Itens de Configuração.
  2. No painel Itens de Configuração, expanda Computadores e selecione Todos os Computadores Windows. Verifique se novos computadores no Configuration Manager aparecem no painel do meio.

Configurar um conector do Configuration Manager para um arquivo SMS_def.mof estendido

O inventário de hardware do Service Manager coleta e fornece informações do sistema, como espaço em disco disponível, tipo de processador e sistema operacional, sobre cada computador na hierarquia do Configuration Manager. No Configuration Manager, os usuários podem personalizar o arquivo padrão SMS_def.mof do Configuration Manager para estender as informações de inventário de hardware que são coletadas.

Ao criar um conector do Configuration Manager no Service Manager, você pode selecionar o pacote de gerenciamento de conexão do Conector do System Center Configuration Manager padrão que deve ser usado para esse conector. Usando o pacote de gerenciamento padrão, o conector importa informações de hardware, software e gerenciamento da configuração desejada para os computadores que estão no sistema.

Se o arquivo SMS_def.mof do Configuration Manager tiver sido estendido para coletar dados adicionais de inventário de hardware, que você também deseja importar para o Service Manager, será necessário criar um novo pacote de gerenciamento personalizado que defina esses dados adicionais. Em seguida, você precisa criar um novo conector do Configuration Manager e configurá-lo para usar o novo pacote de gerenciamento personalizado.

Importar dados de inventário de hardware estendidos do Configuration Manager

Para importar dados de inventário de hardware estendido do Configuration Manager, você deve criar um pacote de gerenciamento de conector personalizado do Configuration Manager. Há duas abordagens par a implementação de um conector do Configuration Manager personalizado:

  • Crie um pacote de gerenciamento de conector do Configuration Manager personalizado que defina os dados estendidos que você deseja importar e, em seguida, crie dois conectores. Configure um conector para usar o pacote de gerenciamento padrão Configuração de Conector para System Center Configuration Manager para importar os dados que são definidos por padrão. Configure o segundo conector para usar o pacote de gerenciamento personalizado, de forma a importar os dados estendidos adicionais.

  • Personalize o pacote de gerenciamento padrão Configuração de Conector para System Center Configuration Manager para incluir também os dados estendidos adicionais. Crie um único conector que esteja configurado para usar o pacote de gerenciamento personalizado de forma a importar todas as informações que você precisa ter.

Este artigo fornece as informações que você deve ter para implementar a primeira abordagem descrita anteriormente. Ele fornece os detalhes necessários para o desenvolvimento de um pacote de gerenciamento de conector personalizado do Configuration Manager que importe o inventário de hardware estendido do Configuration Manager.

As etapas de nível superior para importação dos dados estendidos de inventário de hardware são:

  1. Crie um pacote de gerenciamento de Configuração de Conector do Configuration Manager personalizado com as definições para os dados estendidos.
  2. Importe o pacote de gerenciamento personalizado para o Service Manager. Depois de importar o pacote de gerenciamento, o Service Manager processa as diretivas desse pacote para criar tabelas de preparo e executar qualquer script SQL (Linguagem SQL) de instalação, conforme definido no pacote de gerenciamento.
  3. Crie um conector do Configuration Manager e configure-o para usar o pacote de gerenciamento personalizado.
  4. O conector do Configuration Manager importa os dados.

Trabalhar com um pacote de gerenciamento personalizado do Configuration Manager Connector

Considere as seguintes dicas ao trabalhar com um pacote de gerenciamento personalizado do Configurations Manager Connector:

  • Erros semânticos nos modelos de configuração do conector no pacote de gerenciamento não impedem que o pacote de gerenciamento seja importado e eles são registrados no log de eventos. Nesse caso, é necessário excluir o pacote de gerenciamento, corrigir os erros e reimportar o pacote de gerenciamento.

  • Depois de criar um conector do Configuration Manager, você não pode modificar sua seleção de pacote de gerenciamento. Em vez disso, você deve excluir esse conector e depois criar um novo com a seleção de pacote de gerenciamento desejada.

  • Para garantir a exclusão bem-sucedida de um pacote de gerenciamento, é necessário excluir todos os conectores que estão configurados para usar o pacote de gerenciamento que você deseja excluir para depois excluir o pacote.

    Quando você exclui um pacote de gerenciamento personalizado do Configurations Manager Connector, Service Manager tenta excluir todas as tabelas de preparo relacionadas que foram criadas durante a importação do pacote de gerenciamento. Em seguida, Service Manager executa todos os scripts definidos na seção Desinstalar do pacote de gerenciamento.

  • Ao contrário de outros pacotes de gerenciamento, o pacote de gerenciamento personalizado do Configuration Manager Connector não pode ter controle de versão. A importação de uma versão mais recente do pacote de gerenciamento será bem-sucedida. No entanto, a configuração do conector no pacote de gerenciamento será ignorada ou poderá causar erros de validação que são registrados no log de eventos.

Criar pacote de gerenciamento de configuração do conector do Configuration Manager personalizado

Um pacote de gerenciamento de Configuração de Conector do Configuration Manager personalizado tem uma estrutura semelhante à do pacote de gerenciamento de Conector do Configuration Manager padrão. Ele deve conter os dois modelos de objeto, DataProvider e DataConsumer , que especificam como os dados devem ser importados e aplicados.

Seção DataProvider

A seção DataProvider fornece informações, como quais dados importar, que você deve ter ao importar dados do Configuration Manager para as tabelas de preparo do LinkingFramework. A seção DataProvider inclui as consultas executadas no banco de dados do site do Configuration Manager; diretivas para criação de tabelas de preparo; scripts SQL personalizados; e informações relevantes para sincronização incremental, como marca d'água e envio em lote.

Seção DataConsumer

A seção DataConsumer fornece informações sobre como ler os dados de tabelas de preparo e gravá-los no espaço de instâncias do banco de dados ServiceManager , como Entidades ou Relações. A seção DataConsumer inclui consultas executadas nas tabelas de preparo; mapeamento para o sistema de tipo Service Manager; scripts SQL personalizados; e informações relevantes para sincronização incremental, como marca d'água e envio em lote.

Estrutura das seções de modelos de objeto DataProvider e DataConsumer

Basicamente, o DataProvider e o DataConsumer são modelos de objeto direcionados a um tipo de projeção. O código a seguir mostra a estrutura geral das seções DataProvider e 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>

Nesse código, DataTable, Fielde DataCollection são definidos da seguinte maneira:

  • DataTable. A menor unidade de dados definida para transferência de dados. É uma declaração de quais dados recuperar da fonte de dados externa. Também define dependências entre diferentes tabelas de dados e especifica a conclusão de operações de criação de lotes, criação de marcas d’água e grooming de dados.

  • Field. Uma única coluna em uma tabela de dados.

  • DataCollection. Um conjunto de tabelas de dados a ser transferido em uma sessão ou em um trabalho de transferência de dados. Define quais tabelas de dados estão inclusas nessa coleta de dados.

Propriedades no pacote de gerenciamento personalizado

A tabela a seguir fornece detalhes sobre cada propriedade no pacote de gerenciamento de Configuração de Conector do Configuration Manager personalizado. Use estas diretrizes ao criar o pacote de gerenciamento personalizado.

Propriedade Valor esperado Validação após a importação
ID Para os modelos DataProvider e DataConsumer , conforme indicado no exemplo Sim
Propriedades do DataConnector
DataConnectorName Para os modelos DataProvider e DataConsumer - idênticos aos valores no exemplo Sim
IsProvider No modelo DataProvider - True

Modelo In DataConsumer - Falso
Sim
SolutionName Um comentário. Por exemplo, pode indicar o tipo dos dados importados. A tentativa de importar um pacote de gerenciamento no qual o nome da solução já está em uso causa um erro que é registrado no log de eventos.
Entrypoint, EntryAssembly & WinformUIAssembly Idêntica ao valor no exemplo
Seção InstallSQLScripts Scripts SQL que devem ser executados após a configuração das tabelas de preparo. Eles geralmente são usados no modelo DataConsumer para configurar exibições que exibem dados das tabelas de preparo.

Espera-se que tudo o que está entre as <tags Script></Script> seja um script SQL válido. Portanto, para comentários, você deve usar os /* delimitadores de comentário e de */ várias linhas em vez das marcas de comentário XML padrão.
Não validado. Use nomes de tabela personalizados para garantir que isso não resulte na substituição ou na alteração de tabelas, exceto aquelas que estão declaradas no pacote de gerenciamento.
Seção UnInstallSQLScripts Scripts SQL que devem ser executados depois que você excluir o pacote de gerenciamento do Conector do Configuration Manager no console do Service Manager.

Espera-se que tudo o que está entre as <tags Script></Script> seja um script SQL válido. Portanto, para comentários, você deve usar os /* delimitadores de comentário e de */ várias linhas em vez das marcas de comentário XML padrão.
Não validado. Use nomes de tabela personalizados para assegurar que isso não resulte na substituição ou alteração de tabelas, exceto aquelas que estão declaradas no pacote de gerenciamento.
DisableParallelProcessing Verdadeiro
Propriedades DataTable
DataName A tabela da qual importar dados. Ele é usado na interface do usuário e não é usado em consultas.
StageTableName O nome da tabela de preparo. Ele deve ser exclusivo. A tentativa de importar um pacote de gerenciamento, no qual o nome da tabela já está em uso, gera o registro de um erro no log de eventos.
WatermarkField O nome da coluna rowversion
WatermarkType Os valores possíveis são:

- 0-Indica o tipo DateTime
- 1-Indica o tipo de carimbo de data/hora
- (-1)-Indica que não há marca d'água, caso em que WatermarkField se torna opcional
Não há suporte para outros tipos de marca d'água.
BatchIdField O nome da coluna que tem boa seletividade; usado para separar dados incrementais em lotes durante a importação para tabelas de preparo
BatchIdType Os valores possíveis são:

- 0-Int
- (-1)-Sem lotes, caso em que BatchIdField se torna opcional
Coluna de inteiro
BatchIdSize O tamanho do lote, se o envio em lote for usado. Um número alto indica que muitos dados estão sendo lidos ou gravados ao mesmo tempo. O valor recomendado é 500. Coluna de inteiro
UseCache Verdadeiro
GroomType Os valores possíveis são:

- 1-Os dados nas tabelas de preparo podem ser limpos depois de serem transferidos para o banco de dados do Service Manager.
- 2-Os dados nas tabelas de preparo são limpos somente depois de serem marcados como excluídos no banco de dados do Configuration Manager e também foram excluídos no banco de dados do Service Manager devido à sincronização do conector do Service Manager.
QueryString A consulta real que o Configuration Manager 2007 usa para recuperar os dados solicitados. A consulta deve estar no formato:

SELECT ...

FROM ...

WHERE ...

ORDER BY ...

A cláusula WHERE pode conter o $COLLECTIONLIST token. Durante a sincronização, esse token é substituíd pelas coletas que são especificadas no Assistente de Conector para System Center Configuration Manager.

Os dados expostos pelas exibições do Configuration Manager SCCM_Ext.* têm suporte para importação. Esses dados podem ser estendidos com o uso de extensões sms_def.mof padrão ou de noidmifs. Não há suporte para outras tabelas.

Notavelmente, não há suporte para subconsultas, mas há suporte para junções a outras tabelas.
Não validado. Todas as consultas têm uma coluna Lfx_Status com value U ou D, indicando se a linha representa uma operação Update ou Delete.
CollectionName Um nome para um grupo de tabelas de dados; esse nome deve ser exclusivo. As tabelas na mesma coleção não podem depender umas das outras. A tentativa de importar um pacote de gerenciamento, no qual o nome da coleção já está em uso, gera o registro de um erro no log de eventos.
PrimaryKeyName Uma seção que declara o nome exclusivo da chave primária da tabela de preparo. A tentativa de importar um pacote de gerenciamento, no qual o nome da chave já está em uso, gera o registro de um erro no log de eventos.
DependOnDataTable Um ou mais nomes de DataTable que devem ser sincronizados primeiro, antes desse. Em geral, isso é usado para sincronizar a tabela de preparo antes que ela seja lida pelo sistema no modo de exibição Consumidor.

Se você estiver usando várias coleções, a dependência deverá ser expressa apenas entre tabelas em coleções diferentes.
Não validado.
Propriedades de DataField
Name, Type, AllowNull São os campos obrigatórios para qualquer tipo de coluna. Os tipos com suporte são int, nvarchar, datetime e xml. Não validado.
PrimaryKeyACs, PrimaryKeyPosition Se parte da chave primária indicar a posição da esquerda na chave primária. Lfx adiciona duas colunas de uso interno (Lfx_Status, Lfx_SourceId) ao final de PK.
Ordenação DATABASE_DEFAULT Não validado.
Propriedades da Coleção de Dados
DataCollectionName Deve ser idêntico ao valor referenciado por uma propriedade DataTable . A tentativa de importar um pacote de gerenciamento, no qual o nome da coleção já está em uso, gera o registro de um erro no log de eventos.
StagingName No modelo DataProvider-DefaultCache

No modelo DataConsumer-Não presente
Não validado.
DataTables Lista de tabelas CSV (valores separados por vírgulas) que fazem referência nessa coleção
Configurações No modelo DataProvider-Não presente

No modelo DataConsumer - Indica o mapeamento de tipo
XML escapado com a seguinte sintaxe:

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

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

<MPVersion>version of MP</MPVersion>

<MPToken>token for MP</MPToken>

Exemplos de pacotes de gerenciamento de configuração do conector do Configuration Manager personalizado

Veja a seguir as definições de esquema e os exemplos de pacote de gerenciamento do Configuration Manager Connector que importam dados da exibição Configuration Manager SCCM_Ext.vex_GS_PC_BIOS.

Consulte a tabela anterior neste artigo para obter mais informações sobre as propriedades desses pacotes de gerenciamento. Use um editor XML, como o editor no Microsoft Visual Studio, para modificar esses exemplos e adaptá-los aos seus cenários de importação.

Importar dados de uma classe hospedada

Quando você está especificando uma classe hospedada, a exibição no modelo DataConsumer deve incluir colunas para a propriedade de chave da classe pai. Neste exemplo, a classe que contém as informações do BIOS está hospedada em um computador.

Neste exemplo, o pacote de gerenciamento de Conector do Configuration Manager tem duas coletas nas seções DataProvider e DataConsumer , uma para importar os dados do computador e a segunda para importar os dados do BIOS.

Definição de classe


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

Pacote de gerenciamento de configuração do conector do 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>

Próximas etapas