Freigeben über


Konfigurieren eines Configuration Manager-Connectors für eine erweiterte SMS_def.mof-Datei

Bei der Configuration Manager 2007-Hardwareinventur werden Systeminformationen, wie z. B. verfügbarer Festplattenplatz, Prozessortyp und Betriebssystem, zu jedem Computer in der Configuration Manager 2007-Hierarchie gesammelt und bereitgestellt. In Configuration Manager 2007 können Benutzer die Configuration Manager 2007-Standarddatei SMS_def.mof anpassen, um den Bereich der Hardwareinventurinformationen zu erweitern.

Wenn Sie in Service Manager einen Configuration Manager-Connector erstellen, können Sie das System Center Configuration Manager-Standard-Management Pack für die Connectorkonfiguration auswählen, das für diesen Connector genutzt werden muss. Wenn Sie das Standard-Management Pack verwenden, werden über den Connector Hardware-, Software- und DCM-Informationen für die Computer im System importiert.

Wenn die Configuration Manager 2007-Datei SMS_def.mof für das Sammeln zusätzlicher Hardwareinventurdaten, die Sie ebenfalls in Service Manager importieren möchten, erweitert wurde, müssen Sie ein neues benutzerdefiniertes Management Pack erstellen, in dem diese zusätzlichen Daten definiert werden. Anschließend müssen Sie einen neuen Configuration Manager-Connector erstellen und diesen für die Nutzung des neuen benutzerdefinierten Management Packs konfigurieren.

Importieren von erweiterten Hardwareinventurdaten aus Configuration Manager

Zum Importieren von erweiterten Hardwareinventurdaten aus Configuration Manager 2007 müssen Sie ein benutzerdefiniertes Configuration Manager 2007-Conncector-Management Pack erstellen. Es stehen zwei Ansätze für die Implementierung eines benutzerdefinierten Configuration Manager-Connectors zur Verfügung:

  • Erstellen Sie ein benutzerdefiniertes Configuration Manager-Connector-Management Pack, in dem die erweiterten Daten, die Sie importieren möchten, definiert werden, und erstellen Sie dann zwei Connectors. Konfigurieren Sie einen Connector für die Nutzung des System Center Configuration Manager-Standard-Management Packs für die Connectorkonfiguration für den Import der standardmäßig definierten Daten. Konfigurieren Sie den zweiten Connector für die Nutzung des benutzerdefinierten Management Packs, um zusätzlich die erweiterten Daten zu importieren.

  • Passen Sie das System Center Configuration Manager-Standard-Management Pack für die Connectorkonfiguration so an, dass auch die zusätzlichen erweiterten Daten eingeschlossen werden. Erstellen Sie einen einzelnen Connector, der für die Nutzung des angepassten Management Packs konfiguriert wurde, um alle erforderlichen Daten zu importieren.

Dieser Abschnitt enthält die erforderlichen Informationen für die Implementierung des beschriebenen ersten Ansatzes. Hier werden die notwendigen Details für die Entwicklung eines benutzerdefinierten Configuration Manager-Connector-Management Packs für den Import der erweiterten Hardwareinventur aus Configuration Manager 2007 beschrieben.

Allgemeine Schritte für den Import erweiteter Hardwareinventurdaten:

  1. Erstellen Sie ein benutzerdefiniertes Configuration Manager-Management Pack für die Connectorkonfiguration mit den Definitionen für die erweiterten Daten.

  2. Importieren Sie das benutzerdefinierte Management Pack in Service Manager. Nach dem Import des Management Packs werden die darin enthaltenen Direktiven durch Service Manager verarbeitet, um Staging-Tabellen zu erstellen und im Management Pack definierte SQL-Installationsskripts auszuführen.

  3. Erstellen Sie einen Configuration Manager-Connector, und konfigurieren Sie diesen für die Verwendung des benutzerdefinierten Management Packs.

  4. Mithilfe des Configuration Manager-Connectors werden die Daten importiert.

Arbeiten mit einem benutzerdefinierten Configurations Manager-Connector-Management Pack

Berücksichtigen Sie bei der Arbeit mit einem benutzerdefinierten Configurations Manager-Connector-Management Pack folgende Tipps:

  • Durch semantische Fehler in den Connector-Konfigurationsvorlagen in dem Management Pack wird dessen Import nicht verhindert. Die Fehler werden im Ereignisprotokoll aufgezeichnet. In diesem Fall müssen Sie das Management Pack löschen, die Fehler korrigieren und es danach erneut importieren.

  • Nachdem Sie einen Configuration Manager-Connector erstellt haben, können Sie dessen Management-Pack-Auswahl nicht mehr ändern. Stattdessen müssen Sie diesen Connector löschen und anschließend einen neuen mit der gewünschten Management-Pack-Auswahl erstellen.

  • Um das erfolgreiche Löschen eines Management Packs zu gewährleisten, müssen Sie zuerst alle Connectors, die für dessen Nutzung konfiguriert wurden, löschen. Anschließend löschen Sie das Management Pack.

    Wenn Sie ein benutzerdefiniertes Configurations Manager-Connector-Management Pack löschen, wird durch Service Manager versucht, alle verknüpften Staging-Tabellen, die während des Imports des Management Packs erstellt wurden, zu löschen. Dann werden von Service Manager alle Skripts ausgeführt, die im Abschnitt Uninstall des Management Packs definiert sind.

  • Anders als bei anderen Management Packs können beim benutzerdefinierten Configuration Manager 2007-Connector-Management Pack keine Versionen angegeben werden. Der Import einer späteren Version wird durchgesetzt; die Connectorkonfiguration wird jedoch ignoriert, oder es treten Überprüfungsfehler auf, die im Ereignisprotokoll aufgezeichnet werden.

Erstellen eines benutzerdefinierten Configurations Manager-Management Packs für die Connectorkonfiguration

Die Struktur eines benutzerdefinierten Configurations Manager-Management Packs für die Connectorkonfiguration entspricht der eines standardisierten Configurations Manager-Connector-Management Packs. Die zwei Objektvorlagen DataProvider und DataConsumer, über die festgelegt wird, wie die Daten importiert und angewendet werden sollen, müssen vorhanden sein.

Der Abschnitt „DataProvider“

Im Abschnitt DataProvider sind Informationen enthalten, z. B., welche Daten importiert werden sollen, die Sie für den Import von Daten aus Configuration Manager 2007 in die Staging-Tabellen von LinkingFramework benötigen. Im Abschnitt DataProvider sind folgende Komponenten enthalten: Abfragen, die auf der Configuration Manager 2007-Standortdatenbank ausgeführt werden, Direktiven für die Erstellung von Staging-Tabellen, benutzerdefinierte SQL-Skripte sowie relevante Informationen für die inkrementelle Synchronisierung, wie z. B. Grenzwerte und Batches.

Der Abschnitt „DataConsumer“

Im Abschnitt DataConsumer sind Informationen zum Lesen von Daten aus Staging-Tabellen und zum Schreiben der Daten in die Instanzbereiche der ServiceManager-Datenbank, wie z. B. Entitäten oder Beziehungen, enthalten. Im Abschnitt DataConsumer sind folgende Komponenten enthalten: Abfragen, die auf den Staging-Tabellen ausgeführt werden, Zuordnungen zum Service Manager-Typsystem, benutzerdefinierte SQL-Skripte sowie relevante Informationen für die inkrementelle Synchronisierung, wie z. B. Grenzwerte und Batches.

Struktur der Objektvorlagenabschnitte „DataProvider“ und „DataConsumer“

Grundsätzlich handelt es sich bei DataProvider und DataConsumer um Objektvorlagen, die auf einen Projektionstyp gerichtet sind. Mit dem nachstehenden Code wird die allgemeine Struktur der Abschnitte DataProvider und DataConsumer aufgezeigt.

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

In diesem Code werden DataTable,Field und DataCollection wie folgt definiert:

  • DataTable - Die kleinste Dateneinheit, die für die Datenübertragung definiert ist. Es handelt sich um eine Deklaration zu der Art von Daten, die von der externen Datenquelle abgerufen werden sollen. Zudem wird Folgendes definiert: Abhängigkeiten zwischen verschiedenen Datentabellen und wann die Datenbatchverarbeitung, die Grenzwertbestimmung und die Optimierung beendet sind.

  • Field - Eine einzelne Spalte in einer Datentabelle.

  • DataCollection - Eine Reihe von Datentabellen, die in einem Datenübertragungsauftrag oder einer Sitzung übertragen werden sollen. Hier wird definiert, welche Datentabellen in diese Datensammlung eingeschlossen werden.

Eigenschaften in dem benutzerdefinierten Management Pack

In der nachstehenden Tabelle sind die Details zu den einzelnen Eigenschaften in dem benutzerdefinierten Configurations Manager-Management Pack für die Connectorkonfiguration aufgeführt. Halten Sie sich bei der Erstellung des benutzerdefinierten Management Packs an diese Richtlinien.

Eigenschaft Erwarteter Wert Validierung nach dem Import

ID

Beide Vorlagen: DataProvider und DataConsumer - wie im Beispiel angezeigt.

Ja

DataConnector - Eigenschaften

DataConnectorName

Beide Vorlagen: DataProvider- und DataConsumer – identisch mit den Werten aus dem Beispiel.

Ja

IsProvider

In der Vorlage: DataProvider - True

In der Vorlage: DataConsumer - False

Ja

SolutionName

Ein Kommentar. Hier kann beispielsweise der Typ der importierten Daten angezeigt werden.

Beim Versuch, ein Management Pack zu importieren, in dem ein bereits verwendeter Lösungsname vorhanden ist, wird ein Fehler verursacht, der im Ereignisprotokoll aufgezeichnet wird.

Entrypoint, EntryAssembly & WinformUIAssembly

Identisch mit dem Wert aus dem Beispiel

Abschnitt „InstallSQLScripts“

SQL-Skripts, die nach der Einrichtung der Staging-Tabellen ausgeführt werden müssen. Diese werden in der Regel in der Vorlage DataConsumer für die Konfiguration von Ansichten verwendet, in denen Daten aus den Staging-Tabellen angezeigt werden.

Jede Zeichenkette, die in den Tags <Script></Script> eingeschlossen ist, wird als gültiges SQL-Skript angesehen. Daher müssen Sie für Kommentare statt der XML-Standardkommentartags die für einen mehrzeiligen Kommentar gedachten Begrenzungszeichen „/*“ und „*/“ verwenden.

Keine Validierung. Verwenden Sie benutzerdefinierte Tabellennamen, um ein ungewolltes Überschreiben oder Ändern von Tabellen zu verhindern. Gilt nicht für die im Management Pack deklarierten Tabellen.

Abschnitt „UnInstallSQLScripts“

SQL-Skripts, die nach dem Löschen des benutzerdefinierten Configurations Manager-Connector-Management Packs in der Service Manager-Konsole ausgeführt werden müssen.

Jede Zeichenkette, die in den Tags <Script></Script> eingeschlossen ist, wird als gültiges SQL-Skript angesehen. Daher müssen Sie für Kommentare statt der XML-Standardkommentartags die für einen mehrzeiligen Kommentar gedachten Begrenzungszeichen „/*“ und „*/“ verwenden.

Keine Validierung. Verwenden Sie benutzerdefinierte Tabellennamen, um ein ungewolltes Überschreiben oder Ändern von Tabellen zu verhindern. Gilt nicht für die im Management Pack deklarierten Tabellen.

DisableParallelProcessing

True

DataTable - Eigenschaften

DataName

Die Tabelle, aus der Daten importiert werden sollen. Sie wird in der Benutzerschnittstelle, nicht in Abfragen genutzt.

StageTableName

Name der Staging-Tabelle. Dieser Name muss eindeutig sein.

Beim Versuch, ein Management Pack zu importieren, in dem ein bereits verwendeter Tabellenname vorhanden ist, wird ein Fehler verursacht, der im Ereignisprotokoll aufgezeichnet wird.

WatermarkField

Name der Spalte rowversion

WatermarkType

Mögliche Werte:

  • 0- steht für den Typ DateTime

  • 1- steht für den Typ Timestamp

  • (-1)- Keine Begrenzung. In diesem Fall wird das Feld WatermarkFieldoptional.

Andere Begrenzungstypen werden nicht unterstützt.

BatchIdField

Name einer Spalte mit geeigneter Selektivität, die beim Import in Staging-Tabellen zum Aufteilen inkrementeller Daten in Batches verwendet wird

BatchIdType

Mögliche Werte:

  • 0 - Int

  • (-1) - Keine Batchverarbeitung. In diesem Fall wird das Feld BatchIdFieldoptional.

Integerspalte

BatchIdSize

Größe des Batches, wenn die Batchverarbeitung genutzt wird. Mit einem hohen Wert wird angezeigt, dass große Datenmengen gleichzeitig gelesen oder geschrieben werden. Der empfohlene Wert ist 500.

Integerspalte

UseCache

True

GroomType

Mögliche Werte:

  • 1 - Die Daten in den Staging-Tabellen können nach der Übertragung in die Service Manager-Datenbank bereinigt werden.

  • 2 - Die Daten in den Staging-Tabellen werden nur bereinigt, wenn sie in der Configuration Manager-Datenbank als gelöscht markiert wurden und wenn sie auch in der Service Manager-Datenbank aufgrund der Service Manager-Connectorsynchronisierung gelöscht wurden.

QueryString

Die eigentliche Abfrage, die von Configuration Manager 2007 für das Abrufen der angeforderten Daten genutzt wird. Die Abfrage muss folgendem Format entsprechen:

SELECT …

FROM …

WHERE …

ORDER BY …

In der WHERE-Klausel kann das Token „$COLLECTIONLIST“ enthalten sein. Während der Synchronisierung wird dieses Token durch die Sammlungen ersetzt, die im Connector-Assistent für System Center Configuration Manager angegeben werden.

Die in den Configuration Manager 2007-SCCM_Ext.*-Ansichten angezeigten Daten werden für den Import unterstützt. Durch die Verwendung von Standard-sms_def.mof-Erweiterungen oder von noidmif-Dateien können diese Daten erweitert werden. Andere Tabellen werden nicht unterstützt.

Insbesondere werden Unterabfragen nicht unterstützt. Unterstützt werden jedoch Joins auf andere Tabellen.

Keine Validierung. Bei allen Abfragen ist eine Lfx_Status-Spalte mit dem Wert „U“ oder „D“ vorhanden. Damit wird angezeigt, ob mit der Zeile eine Update- oder eine Löschoperation (Löschen = Delete (D)) dargestellt wird

CollectionName

Ein Name für eine Gruppe von Datentabellen – muss eindeutig sein. Tabellen in der gleichen Sammlung können nicht voneinander abhängen.

Beim Versuch, ein Management Pack zu importieren, in dem ein bereits verwendeter Sammlungsname vorhanden ist, wird ein Fehler verursacht, der im Ereignisprotokoll aufgezeichnet wird.

PrimaryKeyName

Ein Abschnitt, in dem der eindeutige Name für den Primärschlüssel der Staging-Tabelle deklariert wird.

Beim Versuch, ein Management Pack zu importieren, in dem ein bereits verwendeter Schlüsselname vorhanden ist, wird ein Fehler verursacht, der im Ereignisprotokoll aufgezeichnet wird.

DependOnDataTable

Name(n) der DataTable, deren Synchronisierung vor dieser erfolgen muss. Gewöhnlich wird dies zur Synchronisierung der Staging-Tabelle verwendet, bevor sie in der Ansicht „Consumer“ durch das System gelesen wird.

Wenn mehrere Sammlungen verwendet werden, darf eine Abhängigkeit nur zwischen Tabellen in unterschiedlichen Sammlungen ausgedrückt werden.

Keine Validierung.

DataField - Eigenschaften

Name, Type, AllowNull

Hier handelt es sich um obligatorischen Felder für jeden Spaltentyp. Unterstützte Typen: int, nvarchar, datetime und xml.

Keine Validierung.

PrimaryKeyACs, PrimaryKeyPosition

Wenn dies ein Teil des Primärschlüssels ist, wird hiermit die von links gesehene Position gekennzeichnet. Mit Lfx werden am Ende des Primärschlüssels zwei Spalten (Lfx_Status, Lfx_SourceId) für die interne Nutzung hinzugefügt.

Collation

DATABASE_DEFAULT

Keine Validierung.

DataCollection - Eigenschaften

DataCollectionName

Muss identisch mit dem durch eine DataTable-Eigenschaft referenzierten Namen sein.

Beim Versuch, ein Management Pack zu importieren, in dem ein bereits verwendeter Sammlungsname vorhanden ist, wird ein Fehler verursacht, der im Ereignisprotokoll aufgezeichnet wird.

StagingName

In der Vorlage: „DataProvider“ - DefaultCache

In der Vorlage: „DataConsumer“ - Nicht vorhanden

Keine Validierung.

DataTables

CSV-Liste der Tabellen, die sich auf diese Sammlung beziehen

Settings

In der Vorlage: DataProvider - Nicht vorhanden

In der Vorlage: DataConsumer - = Type-Mapping

XML mit Escape-Sequenzen in folgender Syntax:

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

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

<MPVersion>version of MP</MPVersion>

<MPToken>token for MP</MPToken>

Beispiel eines benutzerdefinierten Configurations Manager-Management Packs für die Connectorkonfiguration

Nachstehend werden Schemadefinitionen und Beispiele von Configuration Manager-Connector-Management Packs aufgeführt, in denen Daten aus der Configuration Manager 2007-Ansicht „SCCM_Ext.vex_GS_PC_BIOS“ importiert werden.

Konsultieren Sie die in diesem Abschnitt bereits aufgeführte Tabelle, um weitere Informationen zu den Eigenschaften dieser Management Packs zu erhalten. Verwenden Sie einen XML-Editor, z. B. den Editor in Microsoft Visual Studio, um diese Beispiele an Ihre Importszenarien anzupassen.

Importieren von Daten aus einer gehosteten Klasse

Wenn eine gehostete Klasse angegeben wird, muss die Ansicht in der Vorlage DataConsumer Spalten für die Schlüsseleigenschaft der übergeordneten Klasse enthalten. In diesem Beispiel wird die Klasse, in der die BIOS-Informationen enthalten sind, unter einem Computer gehostet.

In diesem Beispiel sind in dem Configuration Manager-Management Pack für die Connectorkonfiguration zwei Sammlungen in den Abschnitten DataProvider und DataConsumer angegeben, eine für den Import der Computerdaten und eine für den Import der BIOS-Daten.

Class Definition

<ManagementPack xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ContentReadable="true" SchemaVersion="1.1" OriginalSchemaVersion="1.1"> <Manifest> <Identity> <ID>SampleBIOSMP</ID> <Version>1.0.0.0</Version> </Identity> <Name>BIOS Class MP</Name> <References> <Reference Alias="System"> <ID>System.Library</ID> <Version>7.0.5229.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <Reference Alias="Windows"> <ID>Microsoft.Windows.Library</ID> <Version>7.0.5229.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> </References> </Manifest> <TypeDefinitions> <EntityTypes> <ClassTypes> <ClassType ID="HostedCustomClass" Accessibility="Public" Base="System!System.ConfigItem" Hosted="true" Abstract="false"> <Property ID="SerialNumber" Type="string" Key="true"/> </ClassType> </ClassTypes> <RelationshipTypes> <RelationshipType ID="Microsoft.Windows.ComputerHostsBIOS" Accessibility="Public" Base="System!System.Hosting"> <Source ID="Computer" Type="Windows!Microsoft.Windows.Computer" /> <Target ID="BIOSClass" Type="HostedCustomClass" /> </RelationshipType> </RelationshipTypes> </EntityTypes> </TypeDefinitions> </ManagementPack>

Configuration Manager Connector Configuration management pack

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