Importieren von Daten aus Konfigurations-Manager in Service Manager

Wichtig

Diese Version von Service Manager das Ende des Support erreicht hat. Es wird empfohlen, dass Sie ein Upgrade auf Service Manager 2019 durchführen.

In diesem Artikel wird beschrieben, wie Sie einen Konfigurations-Manager-Connector erstellen, konfigurieren, deaktivieren und aktivieren und wie Sie die erweiterte Konfigurations-Manager-Datei SMS_def.mof zum Sammeln von Hardwareinformationen anpassen. Sie verwenden den Connector zum Importieren von Daten aus Konfigurations-Manager in Service Manager.

Der Connector für Konfigurations-Manager erkennt Affinität zwischen Benutzer und Gerät und mobile Geräte und synchronisiert sie in der Service Manager Datenbank.

Sie können Daten aus der Konfigurations-Manager-Standortdatenbank in die Service Manager importieren. Dadurch werden automatisch Konfigurationselemente für die Hardware und Software erstellt und aufgefüllt, die Sie in der Service Manager. Nachdem Sie Daten aus Konfigurations-Manager importiert haben, können Sie die entsprechenden Konfigurationselemente an relevante Incidents anfügen, und die Informationen in den Konfigurationselementen stehen Analysten zur Verfügung, die an dem Incident arbeiten.

Mithilfe eines Konfigurations-Manager-Connectors können Sie Konfigurationsbaselinen aus Konfigurations-Manager importieren und diese Konfigurationsbasislinien dann verwenden, um automatisch Incidents für nicht konforme Konfigurationselemente zu generieren.

Weitere Informationen zur Implementierung von Änderungen und Konfigurationen im Microsoft Operations Framework (MOF) finden Sie unter Position of the Change and Configuration SMF Within the MOF IT Service Lifecycle (Position der Änderungs- und Konfigurations-SMF-Funktionen innerhalb des MOF-IT-Service-Lifecycles).

Abschließen des Data Warehouse-Registrierungsprozesses

Bevor Sie einen Configuration Manager-Connector erstellen, müssen Sie sicherstellen, dass der Data Warehouse-Registrierungsprozess abgeschlossen ist.

Zusätzliche Daten in Konfigurations-Manager

Zusätzliche Daten in Konfigurations-Manager umfassen User-Device Affinität (UDA), Daten mobiler Geräte und Softwareanforderungsdaten. UDA-Daten Konfigurations-Manager genauer bestimmen, wer der primäre Benutzer eines Computers oder Geräts ist. Die vom Service Manager Konfigurations-Manager-Connector gesammelten UDA-Daten werden verwendet, um die UsesComputer- und PrimaryUser-Informationen in der Service Manager auffüllen.

Mobile Gerätedaten für Windows Smartphones, Windows Mobile Phones und Nokia-Geräte werden vom Service Manager Konfigurations-Manager erfasst. Daten von anderen mobilen Geräten wie iPhone, BlackBerry und Android-basierten Handys werden erfasst, wenn Sie den Configuration Manager Exchange Server-Connector verwenden. Daten mobiler Geräte werden als Konfigurationselemente in die Service Manager-Datenbank importiert und können Arbeitselementen, Incident Management und Change Management zugeordnet werden.

Softwareanforderungsdaten werden zur Unterstützung der Integration von Self-Service-Softwareanforderungen in Konfigurations-Manager. Die administrativen Kategoriedaten aus Konfigurations-Manager werden verwendet, um auszuwählen, welche Service Request-Vorlagen beim Erstellen einer Anforderung über das Self-Service werden sollen.

Zeitplan

Sie können den Konfigurations-Manager-Connector so konfigurieren, dass die Service Manager-Datenbank nach einem wiederkehrenden Zeitplan aktualisiert wird. Zudem ist es möglich, den Import von Daten aus Configuration Manager zeitweilig anzuhalten, indem Sie den Connector deaktivieren. Sie können den Connector beispielsweise deaktivieren, wenn auf der Configuration Manager-Standortdatenbank Wartungsarbeiten ausgeführt werden, da Sie wissen, dass bei Wartungsarbeiten temporär fehlerhafte Daten entstehen. Wenn es angebracht ist, können Sie den Connector wieder aktivieren und den Import von Daten fortsetzen.

Erweiterte Hardwareinventur mit Konfigurations-Manager

In Konfigurations-Manager können Sie die Hardwareinventur erweitern, indem Sie einen Bestand an zusätzlichen WMI-Klassen (Windows Management Instrumentation), zusätzlichen WMI-Klassenattributen, Registrierungsschlüsseln und anderen Anpassungen sammeln, um die Anforderungen Ihrer Organisation zu erfüllen. Weitere Informationen zum Erweitern der Hardwareinventur in Konfigurations-Manager finden Sie unter Erweitern der Hardwareinventur.

Wenn Sie die Hardwareinventur in Konfigurations-Manager erweitert haben, müssen Sie ein neues Konfigurations-Manager Connector Management Pack in Service Manager erstellen, um die erweiterte Hardwareinventur zu erfassen. Dieses neue Management Pack kann nur die Informationen enthalten, die zum Erfassen der erweiterten Hardwareinventur von Konfigurations-Manager erforderlich sind, oder es kann aus dem ursprünglichen Konfigurations-Manager Connector Management Pack sowie der neuen erweiterten Hardwareinventur bestehen. Informationen zum Erstellen eines neuen Connector-Management Packs finden Sie unter How to Configure a Konfigurations-Manager Connector for an Extended SMS_def.mof File ( Konfigurieren eines Konfigurations-Manager-Connectors für eine erweiterte SMS_def.mof-Datei).

Importieren von Softwarekonfigurationselementen

Sie können Softwarekonfigurationselemente mit dem Konfigurations-Manager Connector importieren, indem Sie die folgenden Asset Intelligence-Berichtsklassen in Konfigurations-Manager. Diese Klassen sollten in der Konfigurations-Manager aktiviert werden, bevor Sie den Konfigurations-Manager-Connector in Service Manager. Weitere Informationen zum Aktivieren von Asset Intelligence in Konfigurations-Manager finden Sie unter How to Enable Asset Intelligence.

  • SMS_InstalledSoftware

  • SMS_SystemConsoleUsage

  • SMS_SystemConsoleUser

  • SoftwareLicensingService

  • SoftwareLicensingProduct

Wenn Softwareprogramme für einen bestimmten Computer in der Ansicht Alle Softwareprogramme im Arbeitsbereich „Konfigurationselemente“ nicht angezeigt werden, überprüfen Sie das Ereignisprotokoll von Operations Manager auf dem primären Service Manager-Verwaltungsserver. Suchen Sie nach Ereignissen mit der Quelle „OpsMgr Connector“ und „Lfx Service“, um festzustellen, ob Fehler aufgetreten sind.

Einen Configuration Manager-Connector erstellen

Sie können die folgenden Verfahren verwenden, um einen Connector zum Importieren von Daten aus Konfigurations-Manager in System Center - Service Manager zu erstellen und den Status des Connectors zu bestätigen.

Wichtig

Bevor Sie den Konfigurations-Manager-Connector erstellen können, müssen Sie überprüfen, ob Konfigurations-Manager in Ihrer Umgebung installiert ist, und sie müssen Windows Benutzerkontensteuerung (UAC) aktivieren. Weitere Informationen zur Benutzerkontensteuerung finden Sie unter Benutzerkontensteuerung.

So erstellen Sie einen Configuration Manager-Connector

  1. Klicken Sie in der Service Manager-Konsole auf Verwaltung.

  2. Erweitern Sie im Bereich Verwaltung das Element Verwaltung, und klicken Sie dann auf Connectors.

  3. Klicken Sie im Bereich Tasks unter Connectorsauf Connector erstellenund dann auf Configuration Manager-Connector. Der Konfigurations-Manager Connector-Assistent wird gestartet.

  4. Klicken Sie auf der Seite Vorbemerkungen auf Weiter.

  5. Gehen Sie auf der Seite Allgemein folgendermaßen vor:

    1. Geben Sie im Feld Name einen Namen für den Connector ein. Beispiel: Configuration Manager-Connector für Bonn.
    2. Geben Sie im Feld Beschreibung eine Beschreibung für den Connector ein. Beispiel: Configuration Manager-Connector zum Standort Bonn.
    3. Aktivieren Sie das Kontrollkästchen Aktiviert , falls dieses deaktiviert ist, und klicken Sie auf Weiter.
  6. Wählen Sie auf der Seite Management Pack auswählen in der Liste Management Pack entweder die Option Konfiguration des System Center Configuration Manager-Connectors oder die Option Konfiguration des System Center Configuration Manager 2012-Connectorsaus, und klicken Sie dann auf Weiter.

  7. Führen Sie auf der Seite Mit System Center Configuration Manager-Datenbank verbinden folgenden Schritt aus:

    1. Geben Sie im Feld Datenbankservername den Servernamen des Servers ein, auf dem die Konfigurations-Manager-Standortdatenbank und ggf. die benannte Datenbankinstanz hosten. Bei der hypothetischen Woodgrove Bank können Sie beispielsweise woodgrove\instance1 eingeben, wenn sich die Konfigurations-Manager-Datenbank auf einer benannten Instanz von Microsoft SQL Server befindet, oder woodgrove eingeben, wenn sich die Datenbank auf einer Standardinstanz von SQL Server befindet.
    2. Geben Sie im Feld Datenbankname den Namen der Konfigurations-Manager-Standortdatenbank ein. Beispiel: SMS_CM1.
    3. Wählen Sie im Bereich Anmeldeinformationen ein ausführendes Konto aus, oder erstellen Sie ein neues. Das ausführende Konto muss Mitglied der Gruppen „smsdbrole_extract“ und „db_datareader“ für die Configuration Manager-Standortdatenbank sein.
    4. Klicken Sie im Bereich Anmeldeinformationen auf Verbindung testen.
    5. Geben Sie im Dialogfeld Anmeldeinformationen im Feld Kennwort das Kennwort des Kontos ein, und klicken Sie dann auf OK.
    6. Wenn im Dialogfeld Verbindung testen die folgende Bestätigungsmeldung angezeigt wird, klicken Sie auf OK:Die Verbindung mit dem Server war erfolgreich.
    7. Klicken Sie auf Weiter.
  8. Wählen Sie auf der Seite Sammlungen die gewünschte Sammlung aus, und klicken Sie anschließend auf Weiter.

  9. Wählen Sie auf der Seite Zeitplan in der Liste Synchronisieren die Frequenz und den Zeitpunkt der Synchronisierung aus, und klicken Sie dann auf Weiter.

  10. Überprüfen Sie auf der Seite Zusammenfassung Ihre Connectoreinstellungen, und klicken Sie auf Erstellen.

  11. Stellen Sie auf der Seite Bestätigung sicher, dass Sie die folgende Bestätigungsmeldung erhalten: Sie haben den Connector-Assistenten System Center Configuration Manager abgeschlossen. Klicken Sie dann auf Schließen.

    Hinweis

    Der System Center Configuration Manager-Connector-Assistent kann mehrere Stunden dauern, um Daten aus Konfigurations-Manager.

So überprüfen Sie die Erstellung eines Configuration Manager-Connectors

  1. Prüfen Sie, ob der erstellte Configuration Manager-Connector im Bereich Connectors angezeigt wird.
  2. Klicken Sie in der Service Manager-Konsole auf Konfigurationselement. Erweitern Sie im Bereich Konfigurationselemente nacheinander Konfigurationselementeund Computer, und klicken Sie dann auf Alle Windows-Computer. Stellen Sie sicher, dass die vorgesehenen Computer aus im Bereich Alle Windows Angezeigt werden.
  3. Klicken Sie im mittleren Bereich auf einen neu importierten Computer. Prüfen Sie, ob die richtigen Computerdaten im Computerformular angezeigt werden.

So überprüfen Sie den Status eines Configuration Manager-Connectors

  • Überprüfen Sie die Spalten im Bereich Connector . Diese enthalten den Beginn- und Abschlusszeitpunkt, den Status und die Fertigstellung in Prozent.

PowerShell symbolSie können einen befehl Windows PowerShell verwenden, um einen neuen Konfigurations-Manager zu erstellen. Informationen zur Verwendung von Windows PowerShell zum Erstellen eines neuen Konfigurations-Manager-Connectors in Service Manager finden Sie unter New-SCCMConnector.

Deaktivieren und Aktivieren eines Konfigurations-Manager Connectors

Sie können die folgenden Verfahren verwenden, um einen Konfigurations-Manager-Connector zu deaktivieren oder zu aktivieren und den Status der Änderung zu überprüfen.

So deaktivieren Sie einen Configuration Manager-Connector

  1. Klicken Sie in der Service Manager-Konsole auf Verwaltung.

  2. Erweitern Sie im Bereich Verwaltung das Element Verwaltung, und klicken Sie dann auf Connectors.

  3. Wählen Sie im Bereich Connectors den Connector Konfigurations-Manager, den Sie deaktivieren möchten. Klicken Sie z. B. Konfigurations-Manager auf SEA.

  4. Klicken Sie im Taskbereich unter dem Connectornamen auf Deaktivieren.

    Hinweis

    Wenn Sie einen Connector während der Datensynchronisierung deaktivieren, wird diese evtl. nicht angehalten. Ab dem Zeitpunkt der Deaktivierung werden jedoch keine neuen Dateien aus der Configuration Manager-Datenbank importiert.

So aktivieren Sie einen Configuration Manager-Connector

  1. Klicken Sie in der Service Manager-Konsole auf Verwaltung.
  2. Erweitern Sie im Bereich Verwaltung das Element Verwaltung, und klicken Sie dann auf Connectors.
  3. Wählen Sie im Bereich Connectors den Konfigurations-Manager Connector aus, den Sie aktivieren möchten. Klicken Sie beispielsweise auf Konfigurations-Manager Connector für SEA.
  4. Klicken Sie im Taskbereich unter dem Connectornamen auf Aktivieren.

So überprüfen Sie den Statuswechsel eines Configuration Manager-Connectors

  1. Warten Sie nach dem Deaktivieren oder Aktivieren des Connectors 30 Sekunden. Klicken Sie dann in der Service Manager-Konsole auf Verwaltung und dann auf Connectors.
  2. Suchen Sie im Bereich Connectors nach dem Connector, für den Sie den Status geändert haben, und überprüfen Sie den Wert in der Spalte Aktiviert.
  3. Wenn Sie den Connector aktiviert haben, prüfen Sie, ob er die Synchronisierung zeitplangemäß wiederaufnimmt. Wenn Sie den Connector deaktiviert haben, prüfen Sie, ob die zeitplangemäße Synchronisierung ausgesetzt wurde.

PowerShell symbolZur Ausführung dieser Schritte und verwandter Aufgaben können Sie Windows PowerShell-Befehle verwenden:

  • Informationen darüber, wie Sie Windows PowerShell zum Starten eines Service Manager-Connectors verwenden, finden Sie unter Start-SCSMConnector.
  • Weitere Informationen dazu, wie Sie mit Windows PowerShell in Service Manager definierte Connectors abrufen und deren Status anzeigen können, finden Sie unter Get-SCSMConnector.
  • Informationen zur Verwendung von Windows PowerShell zum Aktualisieren der Eigenschaften eines Service Manager Connectors finden Sie unter Update-SCSMConnector.

Einen Configuration Manager-Connector synchronisieren

Um sicherzustellen, dass die Service Manager Datenbank auf dem neuesten Stand ist, wird der System Center Configuration Manager Connector jeden Tag nach der Erstsynchronisierung mit Konfigurations-Manager synchronisiert. Sie können jedoch die folgenden Verfahren verwenden, um den Connector manuell zu synchronisieren und zu überprüfen, ob der Connector synchronisiert wurde.

So synchronisieren Sie manuell einen Configuration Manager-Connector

  1. Klicken Sie in der Service Manager-Konsole auf Verwaltung.

  2. Erweitern Sie im Bereich Verwaltung das Element Verwaltung, und klicken Sie dann auf Connectors.

  3. Wählen Sie im Bereich Connectors den Konfigurations-Manager Connector aus, den Sie synchronisieren möchten.

  4. Klicken Sie im Taskbereich unter dem Connectornamen auf Jetzt synchronisieren.

    Hinweis

    Der Importvorgang kann je nach Datenmenge länger dauern.

So überprüfen Sie die Synchronisierung eines Configuration Manager-Connectors

  1. Klicken Sie in der Service Manager-Konsole auf Konfigurationselement.
  2. Erweitern Sie im Bereich Konfigurationselemente den Bereich Computer, und klicken Sie dann auf Alle Windows Computer. Vergewissern Sie sich, dass alle neuen Computer in Konfigurations-Manager im mittleren Bereich angezeigt werden.

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

Service Manager Hardwareinventur erfasst Systeminformationen wie verfügbaren Speicherplatz, Prozessortyp und Betriebssystem zu jedem Computer in der Konfigurations-Manager Hierarchie und stellt diese bereit. In Konfigurations-Manager können Benutzer die Standarddatei Konfigurations-Manager SMS_def.mof anpassen, um die gesammelten Hardwareinventurinformationen zu erweitern.

Wenn Sie einen Konfigurations-Manager Connector in Service Manager erstellen, können Sie das Standard-System Center Configuration Manager Connector Configuration Management Pack auswählen, das für diesen Connector verwendet 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 Datei Konfigurations-Manager SMS_def.mof erweitert wurde, um zusätzliche Hardwareinventurdaten zu sammeln, die Sie auch in Service Manager importieren möchten, müssen Sie ein neues benutzerdefiniertes Management Pack erstellen, das diese zusätzlichen Daten definiert. Anschließend erstellen Sie einen neuen Configuration Manager-Connector und konfigurieren diesen für die Nutzung des neuen benutzerdefinierten Management Packs.

Importieren erweiterter Hardwareinventurdaten aus Konfigurations-Manager

Zum Importieren erweiterter Hardwareinventurdaten aus Konfigurations-Manager müssen Sie ein benutzerdefiniertes Konfigurations-Manager Connector 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 so, dass das System Center Configuration Manager-Standard-Management Pack für die Connectorkonfiguration verwendet wird, um die standardmäßig definierten Daten zu importieren. 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. Sie enthält die Details, die Sie benötigen, damit Sie ein benutzerdefiniertes Konfigurations-Manager Connector Management Pack entwickeln können, das die erweiterte Hardwareinventur aus Konfigurations-Manager importiert.

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. Nachdem Sie das Management Pack importiert haben, verarbeitet Service Manager die Anweisungen im Management Pack, um Stagingtabellen zu erstellen und alle strukturierte Abfragesprache Installationsskripts (SQL) auszuführen, wie im Management Pack definiert.
  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 Konfigurations-Manager Connector Management Pack

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

  • Enthalten die Connector-Konfigurationsvorlagen im Management Pack semantische Fehler, wird das Management Pack trotzdem importiert. 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 den 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 löschen, die zur Verwendung des Management Packs konfiguriert wurden. Anschließend löschen Sie das Management Pack.

    Wenn Sie ein benutzerdefiniertes Configurations Manager Connector Management Pack löschen, versucht Service Manager, alle zugehörigen Stagingtabellen zu löschen, die während des Management Pack-Imports erstellt wurden. Anschließend führt Service Manager alle Skripts aus, die im Abschnitt Deinstallieren des Management Packs definiert sind.

  • Im Gegensatz zu anderen Management Packs kann das benutzerdefinierte Konfigurations-Manager Connector Management Pack nicht versioniert werden. Der Import einer höheren Version des Management Packs wird erfolgreich ausgeführt. Die Connectorkonfiguration im Management Pack wird jedoch ignoriert, oder es treten Validierungsfehler auf, die im Ereignisprotokoll aufgezeichnet werden.

Erstellen eines benutzerdefinierten Konfigurations-Manager-Connectorkonfigurations-Management Packs

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.

Abschnitt "DataProvider"

Der Abschnitt DataProvider enthält Informationen, z. B. welche Daten importiert werden müssen, wenn Sie Daten aus Konfigurations-Manager in die Stagingtabellen von LinkingFrameworkimportieren. Der Abschnitt DataProvider enthält die Abfragen, die auf der Konfigurations-Manager Standortdatenbank ausgeführt werden. -Direktiven für die Stagingtabellenerstellung; benutzerdefinierte SQL Skripts und Informationen, die für die inkrementelle Synchronisierung relevant sind, z. B. Wasserzeichen und Batchverarbeitung.

DataConsumer-Abschnitt

Der Abschnitt DataConsumer enthält Informationen zum Lesen der Daten aus Stagingtabellen und zum Schreiben in den Instanzbereich der ServiceManager-Datenbank, z. B. Entitäten oder Beziehungen. Der Abschnitt DataConsumer enthält Abfragen, die für die Stagingtabellen ausgeführt werden. Zuordnung zum Service Manager Typsystem; benutzerdefinierte SQL Skripts und Informationen, die für die inkrementelle Synchronisierung relevant sind, z. B. Wasserzeichen und Batchverarbeitung.

Struktur der Abschnitte DataProvider und DataConsumer-Objektvorlagen

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, Fieldund 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.

  • Feld. 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 im 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 Sowohl für DataProvider- als auch für DataConsumer-Vorlagen, wie im Beispiel angegeben Ja
DataConnector - Eigenschaften
DataConnectorName Für DataProvider- undDataConsumer-Vorlagen : identisch mit den Werten im Beispiel Ja
IsProvider In der DataProvider-Vorlage : True

In der DataConsumer-Vorlage : False
Ja
SolutionName 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, tritt ein Fehler auf, der im Ereignisprotokoll aufgezeichnet wird.
Einstiegspunkt, 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.

Es wird erwartet, dass alles, was zwischen den Skript-/Skripttags eingeschlossen ist, SQL <><> ist. Daher müssen Sie für Kommentare anstelle der standardmäßigen /**/ XML-Kommentartags die mehrzeilenbasierten Kommentartrennzeichen 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 ausgeführt werden müssen, nachdem Sie das Konfigurations-Manager Connector Management Pack in der Service Manager löschen.

Es wird erwartet, dass alles, was zwischen den Skript-/Skripttags eingeschlossen ist, SQL <><> ist. Daher müssen Sie für Kommentare anstelle der standardmäßigen /**/ XML-Kommentartags die mehrzeilenbasierten Kommentartrennzeichen 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 (UI), nicht in Abfragen genutzt.
StageTableName Name der Stagingtabelle. Dieser Name muss eindeutig sein. Beim Versuch, ein Management Pack zu importieren, in dem ein bereits verwendeter Tabellenname vorhanden ist, tritt ein Fehler auf, der im Ereignisprotokoll aufgezeichnet wird.
WatermarkField Name der Spalte rowversion
WatermarkType Mögliche Werte:

– 0– Gibt den DateTime-Typ an.
– 1– Gibt den Zeitstempeltyp an.
- (-1): Gibt kein Wasserzeichen an. In diesem Fall wird WatermarkField optional.
Andere Begrenzungstypen werden nicht unterstützt.
BatchIdField Name einer Spalte mit geeigneter Selektivität, die beim Import in Stagingtabellen zum Aufteilen inkrementeller Daten in Batches verwendet wird
BatchIdType Mögliche Werte:

– 0 Int
- (-1): Keine Batchverarbeitung, in diesem Fall wird BatchIdField optional
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 Stagingtabellen können nach der Übertragung in die Datenbank Service Manager werden.
- 2– Die Daten in Stagingtabellen werden erst geschnitten, nachdem sie in der Konfigurations-Manager-Datenbank als gelöscht markiert wurden und aufgrund der Synchronisierung des Service Manager-Connectors auch in der Service Manager-Datenbank gelöscht wurden.
QueryString Die tatsächliche Abfrage, die Konfigurations-Manager 2007 verwendet, um die angeforderten Daten abzurufen. Die Abfrage muss folgendem Format entsprechen:

SELECT ...

FROM ...

WHERE ...

ORDER BY ...

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

Die Daten, die von Konfigurations-Manager SCCM_Ext.*-Ansichten verfügbar gemacht werden, 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. Alle Abfragen verfügen über eine Lfx_Status mit dem Wert oder , die angibt, ob die Zeile einen Update- oder UD einen Delete-Vorgang darstellt.
CollectionName Ein Name für eine Gruppe von Datentabellen. Dieser Name 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, tritt ein Fehler auf, 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, tritt ein Fehler auf, der im Ereignisprotokoll aufgezeichnet wird.
DependOnDataTable Name(n) der DataTable , deren Synchronisierung vor dieser erfolgen muss. Gewöhnlich wird dies zur Synchronisierung der Stagingtabelle 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.
Nicht überprüft
DataField - Eigenschaften
Name, Type, AllowNull Hier handelt es sich um obligatorischen Felder für jeden Spaltentyp. Unterstützte Typen: int, nvarchar, datetime und xml. Nicht überprüft
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.
Sortierung DATABASE_DEFAULT Nicht überprüft
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, tritt ein Fehler auf, der im Ereignisprotokoll aufgezeichnet wird.
StagingName In DataProvider template-DefaultCache

In DataConsumer template-Not present (In DataConsumer-Vorlage nicht vorhanden)
Nicht überprüft
"DataTables" CSV-Liste der Tabellen, die sich auf diese Sammlung beziehen
Einstellungen In DataProvider-Vorlage: Nicht vorhanden

In Der DataConsumer-Vorlage gibt die Typzuordnung an.
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>

Beispiele für Konfigurations-Manager Connector-Konfigurations-Management Packs

Im Folgenden finden Sie Schemadefinitionen und Konfigurations-Manager Connector Management Pack-Beispiele, die Daten aus der Ansicht Konfigurations-Manager SCCM_Ext.vex_GS_PC_BIOS importieren.

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 Sie eine gehostete Klasse angeben, 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.

Klassendefinition


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

Konfigurations-Manager-Management Pack für die Connectorkonfiguration

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

Nächste Schritte