none
SCCM 2007 - Inventarisierung erweitern RRS feed

  • Frage

  • Hallo zusammen,

    in SCCM 2007 versuche ich die Inventarisieung zu erweitern (4 REG_SZ Werte aus einem bestimmten Registrykey).

    Dies wurde bereits erfolgreich umgesetzt mit einem anderem Key.
    Aber  - mit u.a. Einträgen sehe ich im Resource Explorer unter dem neuen Node "Windows7" lediglich den Eintrag "KeyName".
    Was mache ich falsch ?

    Exakt das gleiche in der Testumgebung funktioniert tadellos (gleiche SCCM Version)

    //
    // sms_def.mof
    //

    #pragma namespace ("\\\\.\\root\\cimv2\\SMS")
    #pragma deleteclass("Windows7", NOFAIL)
    [SMS_Report(TRUE),SMS_Group_Name("Windows7"),SMS_Class_ID("Custom|Windows7|1.0")]
    Class Windows7: SMS_Class_Template
    {
    [SMS_Report(TRUE),key] string KeyName;
    [SMS_Report(TRUE)] String BuildName;
    [SMS_Report(TRUE)] String BuildVersion;
    [SMS_Report(TRUE)] String DeployName;
    [SMS_Report(TRUE)] String DeployVersion;
    };



    //
    // configuration.mof
    //

    #pragma namespace ("\\\\.\\root\\cimv2")
    #pragma deleteclass("Windows7", NOFAIL)
    [DYNPROPS]
    Class Windows7
    {
    [key] string KeyName;
    String BuildName;
    String BuildVersion;
    String DeployName;
    String DeployVersion;
    };
    [DYNPROPS]
    Instance of Windows7
    {
    //KeyName="Windows7";
    [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma|BuildName"),Dynamic,Provider("RegPropProv")] BuildName;
    [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma|BuildVersion"),Dynamic,Provider("RegPropProv")] BuildVersion;
    [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma|DeployName"),Dynamic,Provider("RegPropProv")] DeployName;
    [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma|DeployVersion"),Dynamic,Provider("RegPropProv")] DeployVersion;
    };

    Montag, 3. Dezember 2012 08:03

Antworten

  • In der configuration.mof sollte HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma schon richtig sein. Allerdings mußt Du in der Registry auf dem Client die Werte dann unter HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MeineFirma eintragen. Dann sollte das klappen.

    Torsten Meringer | http://www.mssccmfaq.de

    • Als Antwort markiert Sandra_72 Donnerstag, 6. Dezember 2012 19:49
    Mittwoch, 5. Dezember 2012 14:13
    Beantworter

Alle Antworten

  • Schau doch mal auf einem Rechner, ob die zu inventarisierenden Daten überhaupt in der WMI stehen.

    Torsten Meringer | http://www.mssccmfaq.de

    Montag, 3. Dezember 2012 08:57
    Beantworter
  • Hi,

    das habe ich geprüft, alles so wie es sein soll, mit wbemtest geprüft.

    Dienstag, 4. Dezember 2012 10:54
  • Taucht die neue Klasse im InventoryAgent.log auf dem Client auf?

    Torsten Meringer | http://www.mssccmfaq.de

    Dienstag, 4. Dezember 2012 10:57
    Beantworter
  • Ja, ebenfalls alles bestens:

    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, BuildName, BuildVersion, DeployName, DeployVersion, KeyName FROM WindowsSeven; Timeout = 600 secs.
    Dienstag, 4. Dezember 2012 12:06
  • Was mir noch aufgefallen ist:

    Zum einen erscheinen die Attribute auch nicht in der neuen Klasse beim Erstellen einer Query,
    zum anderen wird die Klasse "WindowsSeven" doppelt aufgelistet...

    Aus dem ursprünglichen "Custom|Windows7|1.0" habe ich inzwischen ein "Custom|WindowsSeven|1.0" gemacht,
    da ich mir nicht sicher bin, ob es mit der Bezeichnung Probleme geben kann.

    Dabei ist mir eine weitere Sache aufgefallen:
    Ein delgrp "Custom|Windows7|1.0" entfernt die Klasse zwar, taucht auch nicht mehr im Resource Explorer auf,
    beim Erstellen von Queries taucht diese alte Klasse aber nach wie vor auf. Muss man hier noch etwas von Hand aus der Datenbank entfernen ?


    Dienstag, 4. Dezember 2012 12:22
  • ... beim Erstellen von Queries taucht diese alte Klasse aber nach wie vor auf.

    Das ist "by design".
    Kommt denn die aktuelle Hardware-Inventur überhaupt am Server an? MP_Hinv.log / dataldr.log oder landet sie bei den badmifs? Zeigt der Resource Explorer bei Workstation Status -> Last Hardware Scan einen aktuellen Zeitstempel?

    Torsten Meringer | http://www.mssccmfaq.de

    Dienstag, 4. Dezember 2012 12:36
    Beantworter
  • dataldr.log

    Processing Inventory for Machine: XXXX   Version 1.0  Generated: 12/04/2012 17:19:16
    CMachineSource::InsertMachine - machine info is resynced data (ie: MIF is a full/resync report).
    STATMSG: ID=2715 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_INVENTORY_DATA_LOADER" SYS=YYYYY SITE=xxx PID=9508 TID=13576 GMTDATE=Di Dez 04 16:20:59.943 2012 ISTR0="SMS Inventory Agent" ISTR1="" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0
    Begin transaction: Machine=XXXX(GUID:2A451D8D-D648-489E-A72B-584C8DA0079F)
    Commit transaction: Machine=XXXX(GUID:2A451D8D-D648-489E-A72B-584C8DA0079F)
    Done: Machine=XXXX(GUID:2A451D8D-D648-489E-A72B-584C8DA0079F) code=0 (2126 stored procs in Xphumzgs1.MIF)
    Done blocking until completion.
    No more machine MIFs to be processed, terminating thread
    Shutting down Machine Writer.
    Worker thread 13576 halting execution.
    Finished processing 1 MIFs
    Cleaning aged temp files...

    Das ganze ist eine anderer Testclient, wbemtest zeigt mir dort zwar die Klasse WindowsSeven
    und auch die Properties BuildName, BuildVersion, DeployName und DeployVersion, jedoch sind alle values Null.

    Ich dreh am Rad :-) :-(

    Aber selbst wenn diese "Null" sind, sollten die einzelnen Properties nicht wenigstens im Resource Explorer zu sehen sein ?

    Warum Null ist mir allerdings komplett schleierhaft, wenn die Registryeinträge existieren und haben auch Werte.

    Stehe jetzt komplett auf'm Schlauch.

    HW Scan, Zeitstempel ist aktuell.

    • Bearbeitet Sandra_72 Dienstag, 4. Dezember 2012 16:29
    Dienstag, 4. Dezember 2012 16:28
  • Kann es sein, dass Du auf einem x64-OS testest? Der RegKey HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma|DeployVersion ein x64-Key ist, aber ConfigMgr (da bei 2007 nur 32-bit Client) nur HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MeineFirma "sieht"?

    Torsten Meringer | http://www.mssccmfaq.de


    Mittwoch, 5. Dezember 2012 07:58
    Beantworter
  • Ja, richtig. Windows 7 x64.
    Die Vermutung ist mir heute Morgen auch schon in den Sinn gekommen.
    Wobei ich die gesamte Klasse nochmal mit delgrp entfernt habe. wbemtest zeigt mir auf dem Client nun auch wieder auch alles wunderbar an, siehe unten.

    Habe nun in der Configuration.mof HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma zu HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MeineFirma geändert

    Resultat auf dem Testclient mittels wbemtest:

    [DYNPROPS]
    instance of WindowsSeven
    {
     [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MeineFirma|BuildName"), dynamic: ToInstance, provider("RegPropProv")] BuildName = "BUILD Windows 7 Standard Client (Office 2010)";
     [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MeineFirma|BuildVersion"), dynamic: ToInstance, provider("RegPropProv")] BuildVersion = "30112012";
     [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MeineFirma|DeployName"), dynamic: ToInstance, provider("RegPropProv")] DeployName = "standard2010";
     [PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MeineFirma|DeployVersion"), dynamic: ToInstance, provider("RegPropProv")] DeployVersion = "30112012";
     KeyName = "{0E5BECE1-ABA4-4B86-A975-E8D146523D8B}";
    };

    Aber: Der Resource Explorer zeigt mir nach wie vor nur die Spalte "KeyName".
    Muss man das verstehen ?

    Langsam tendiere ich schon dazu, das ganze per DCM zu machen.
    Letztendlich soll damit erreicht werden, unsere Windows 7 Clients ausfindig zu machen (installiert mit welche Task Sequence Version, Buildversion des Images, etc...)

    Nur, warum geht das nicht auf die einfachste Art und Weise per MOF ?

    Mittwoch, 5. Dezember 2012 13:56
  • In der configuration.mof sollte HKEY_LOCAL_MACHINE\\SOFTWARE\\MeineFirma schon richtig sein. Allerdings mußt Du in der Registry auf dem Client die Werte dann unter HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MeineFirma eintragen. Dann sollte das klappen.

    Torsten Meringer | http://www.mssccmfaq.de

    • Als Antwort markiert Sandra_72 Donnerstag, 6. Dezember 2012 19:49
    Mittwoch, 5. Dezember 2012 14:13
    Beantworter
  • Es geht noch einfacher:

    1. In der Configuration.Mof eien zusätzliche Klasse definieren (xxx_64)

    2.  In der smsdef.mof eine hive definieren auf den 64bit Kontext. Dazu direkt unter die Zeile  "SMS_Class_ID.....) zwei weitere Zeilen einfügen "SMS_Context_...."

    Damit wird der SCCM client angewiesen nicht den Wow6432Node zu lesen.

    SMS_Class_ID("XXXXXX_x64|yyyyy|1.0"),

    SMS_Context_1 ("__ProviderArchitecture=64|uint32"),
    SMS_Context_2 ("__RequiredArchitecture=true|boolean")

    Donnerstag, 6. Dezember 2012 12:23
  • Habe mich für Torsten's Lösung entschieden, da muss man natürlich erst mal drauf kommen :-)
    Es scheint jetzt alles zu klappen, danke dafür !

    Wäre nur noch das unschöne doppelt vorhandene "WindowsSeven", welches beim Erstellen von dynamischen Collections, Queries und Reports angeboten wird.
    Kann es sein, dass die dafür zuständige "delgrp.exe" nicht wirklich alles entfernt ?
    Würde die SCCM Datenbank möglichst sauber halten und unnötiges Entfernen.

    Donnerstag, 6. Dezember 2012 13:19
  • Sind beides valide Lösungen :-) Ich habe die selbe Erfahrung mit delgrp gemacht, aber weiter keinen Aufwand investiert, um dies weiter zu untersuchen.

    Torsten Meringer | http://www.mssccmfaq.de

    Donnerstag, 6. Dezember 2012 14:32
    Beantworter
  • Okay, dann lebe ich auch damit :-)

    Hoffe in SCCM 2012 wird alles besser und es ist keine BlackBox mehr.

    Danke nochmals.

    Donnerstag, 6. Dezember 2012 19:51