Importar dados do Configuration Manager para o Service Manager

Importante

Esta versão do Service Manager chegou ao fim do suporte. Recomendamos que você atualize para Service Manager 2022.

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 do MOF (Microsoft Operations Framework) de alteração e configuração, consulte Posição do SMF de alteração e configuração no ciclo de vida do serviço de TI MOF.

Concluir o processo de registro do data warehouse

Antes de criar o conector Configuration Manager, você deve garantir que o processo de Registro de 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. Dados de outros dispositivos móveis, como telefones iPhone, BlackBerry e Android, serão coletados quando você estiver usando o conector Configuration Manager Exchange Server. 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 em Configuration Manager, consulte Como estender o inventário de hardware.

Se você tiver estendido o inventário de hardware em Configuration Manager, deverá criar um novo pacote de gerenciamento 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 How to Configure a Configuration Manager Connector for an Extended SMS_def.mof File.

Importando itens de configuração de software

Você pode importar itens de configuração de software com o conector Configuration Manager importando as seguintes classes de relatórios de inteligência de ativos em 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 em 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 na exibição Todos os Softwares no workspace Itens de Configuração, você deverá examinar o log de eventos do Operations Manager no Service Manager servidor de gerenciamento primário. 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 de Configuration Manager para o System Center – Service Manager e confirmar o status do conector.

Importante

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

Para criar 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 Tarefas, em Conectores, selecione Criar Conector e selecione Configuration Manager Conector. O Assistente do Conector do Configuration Manager é iniciado.
  4. Na página Antes de Começar escolha Avançar.
  5. Na página Geral, proceda da seguinte maneira:
    1. Na caixa Nome , insira um nome para o novo conector. Por exemplo, insira Configuration Manager Conector para Seattle.
    2. Na caixa Descrição , insira uma descrição para o novo conector. Por exemplo, insira Um conector Configuration Manager ao site Seattle.
    3. Verifique se a caixa de seleção Habilitado está selecionada e selecione Avançar.
  1. Na página Selecionar Pacote de Gerenciamento, na lista Pacote de Gerenciamento, selecione System Center Configuration Manager Connector Configuration ou System Center Configuration Manager Configuração do Conector 2012 e selecione Avançar.
  1. Na página Selecionar Pacote de Gerenciamento, na lista Pacote de Gerenciamento, selecione System Center Configuration Manager Configuração do Conector 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 hospeda o banco de dados do site Configuration Manager e a instância nomeada do banco de dados, se aplicável. Por exemplo, no hipotético Woodgrove Bank, você poderá inserir woodgrove\instance1 se o banco de dados 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 Configuration Manager. Por exemplo, insira SMS_CM1.
    3. Na área Credenciais , selecione uma conta Executar como ou crie uma nova conta Executar como. 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 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 que você fez 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 System Center Configuration Manager Connector. Em seguida, selecione Fechar.

    Observação

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

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

Para 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 Windows PowerShell para criar um conector Configuration Manager. Para obter informações sobre como usar Windows PowerShell para criar um conector Configuration Manager no Service Manager, consulte New-SCCMConnector.

Desabilitar e habilitar um conector Configuration Manager

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

Para 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 Configuration Manager que você deseja desabilitar. Por exemplo, selecione Configuration Manager conector ao 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 parar. No entanto, um conector desabilitado não importará novos dados de um banco de dados Configuration Manager desse ponto em diante.

Para 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 Configuration Manager que você deseja habilitar. Por exemplo, selecione Configuration Manager conector ao SEA.
  4. No painel Tarefas , no nome do conector, selecione Habilitar.

Para 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 conectores.
  2. No painel Conectores, localize o conector para o qual você alterou 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 Windows PowerShell comandos para concluir essas tarefas e outras tarefas relacionadas, da seguinte maneira:

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

Sincronizar um conector do Configuration Manager

Para garantir que o banco de dados Service Manager esteja atualizado, o conector Configuration Manager do System Center é sincronizado com 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.

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

Para validar se um conector do Configuration Manager sincronizou

  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 Configuration Manager para um arquivo SMS_def.mof estendido

Service Manager inventário de hardware 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 de 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 Configuration Manager e configurá-lo para usar o novo pacote de gerenciamento personalizado.

Importar dados de inventário de hardware estendido de Configuration Manager

Para importar dados de inventário de hardware estendido de Configuration Manager, você deve criar um pacote de gerenciamento de conector de Configuration Manager personalizado. 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 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 estã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 Configuration Manager, não é possível modificar a seleção do 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 Configuration Manager Connector não pode ser 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 personalizado Configuration Manager Connector Configuration

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 de Configuration Manager para as tabelas de preparo do LinkingFramework. A seção DataProvider inclui as consultas que são executadas no banco de dados do site Configuration Manager; diretivas para criação de tabela 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 escrevê-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 tipos de 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 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.

  • Campo. 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 modelos DataProvider e DataConsumer , conforme indicado no exemplo Yes
Propriedades de DataConnector
DataConnectorName Para modelos DataProvider e DataConsumer , idênticos aos valores no exemplo Yes
IsProvider No modelo DataProvider – True

No modelo DataConsumer – False
Yes
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 entre as <marcas Script></Script> seja um script SQL válido. Portanto, para comentários, você deve usar os /**/ delimitadores de várias comentário em linha 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 de excluir o pacote de gerenciamento Configuration Manager Connector no console do Service Manager.

Espera-se que tudo entre as <marcas Script></Script> seja um script SQL válido. Portanto, para comentários, você deve usar os /**/ delimitadores de várias comentário em linha 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 True
Propriedades de DataTable
DataName A tabela da qual importar dados. Ele é usado na interface do usuário (interface do usuário) e não é usado em consultas.
StageTableName O nome da tabela de preparo. 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 nenhuma marca d'água, nesse caso WatermarkField torna-se 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 envio em lote, nesse caso , BatchIdField torna-se 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 True
GroomType Os valores possíveis são:

- 1- Os dados nas tabelas de preparo podem ser preparados depois de serem transferidos para o banco de dados Service Manager.
- 2- Os dados nas tabelas de preparo são preparados somente depois que são marcados como excluídos no banco de dados Configuration Manager e também foram excluídos no banco de dados Service Manager devido à sincronização do conector Service Manager.
QueryString A consulta real que 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 por exibições 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 valor 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 somente 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.
Collation DATABASE_DEFAULT Não validado.
Propriedades de DataCollection
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 Em DataProvider template-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 está presente

No modelo DataConsumer - Indica 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 de Configuration Manager personalizados

Veja a seguir as definições de esquema e Configuration Manager exemplos do pacote de gerenciamento do Conector 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 key 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