SCCM 2012 - Hardware Inventory - Dynamic Registry Key Inventory

Hi all,
I am trying to inventory a set of registry values based upon a dynamic registry key. The  application is called ACME and different versions of it exist on all clients. For example:
Some clients have:
HKLM\Software\ACME\5.0.1
While others have:
HKLM\Software\ACME\5.0.2
While others have:
HKLM\Software\ACME\5.0.3
The common denominator is that under the version key, all of the subkeys are consistent and the same.
The two values I am looking for are "LastUser" and "LastExecuted" which reside under the version key.
HKLM
------> Software
--------------------> ACME
------------------------------>5.0.1
--------------------------------------> LastUser & LastExecuted
So i basically want to do a dynamic lookup for the first child key under "ACME".
I have been using RegKeyToMOF but I am unable to get the data populated into the database. The configuration.mof file compiles successfully (as can be seen in dataldr.log).
Below are the configs I am using. Can anyone shed some light as to why its not populating anything in the DB?
#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("ACME", NOFAIL)
[dynamic, provider("RegProv"), ClassContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\ACME")]
Class ACME
[key] string KeyName;
[PropertyContext("LastUser")] String LastUser;
[PropertyContext("LastExecuted")] String LastExecuted;
#pragma namespace ("\\\\.\\root\\cimv2\\SMS")
#pragma deleteclass("ACME", NOFAIL)
[SMS_Report(TRUE),SMS_Group_Name("ACME"),SMS_Class_ID("ACME")]
Class ACME: SMS_Class_Template
[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE)] String LastUser;
[SMS_Report(TRUE)] String LastExecuted;
From the client when it hits HINV cycle
Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, KeyName, LastExecuted, LastUser FROM ACME; Timeout = 600 secs.
TIA!

You have to specify the full path in the MOF to collect the data. I have an example of how you can embed a WMI trigger and a vbscript into a MOF file that will populate any information you want from the registry into a cimv2 class, but that may actually
be more than you really need. Why don't you just inventory each version? It is not as clean, but will be easier.
example of Acme 5.0.1:
#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("ACME501", NOFAIL)
[dynamic, provider("RegProv"), ClassContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\ACME\\5.0.1")]
Class ACME501
[key] string KeyName;
[PropertyContext("LastUser")] String LastUser;
[PropertyContext("LastExecuted")] String LastExecuted;

Similar Messages

  • SCCM 2012 "hardware inventory classes" for AppV?

    Hi, I would like to get a better view what App-V application issue we have on App-V 4.6.2 in an usercentric deployment senrio
    I also see that SCCM 2012 "hardware inventory classes" "Appv Client Applications" is not set and not all is activated under "Virtual Applications".
    I also would like to our support to get an better view if an user call an say it dont get an App-V 4.62 required deployment.  
    So what "hardware inventory classes" do I need to activate to get App-V deployment /and launch status.
    /SaiTech

    Are you saying the class exists in SCCM 2012 for you but not applied to all of your virtual applications or that there and can't be applied or that the option isn't in SCCM for you at all?
    PLEASE MARK ANY ANSWERS TO HELP OTHERS Blog:
    rorymon.com Twitter: @Rorymon

  • SCCM 2012 - Hardware Inventory Registry Import not working - Windows in the name of the Registry key

    I downloaded the Reg to MOF tool and compiled some of our custom Registry Keys which worked fine. There was particular Key that didn't work and after some testing and messing around I realized why it isn't working:
    The key I am using is: HKLM\Software\MyCompanyWindows
    Because the key has the name Windows in it, it fails to import. I get the generic check the formatting for your MOF file error.
    The MOF file you tried to import could not be compiled. Ensure that the MOF file contains valid data. You can use the command line mofcomp utility to test the data.
    But if I run a MOFCOMP against the MOF I am trying to import it checks the syntax successfully.
    If I change the key to MyCompanyWin or MyCompanyW it imports with no problem.
    We have rolled out this key to almost every device in our organization and connected it to other inventory agents so there is no possibility of changing the key.
    Is there any way to disable the validation check that SCCM is performing?

    Hi,
    If possible, could you please upload the MOF file to SkyDrive?
    Best Regards,
    Joyce Li
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • SCCM 2012 Hardware Inventory - Custom Inventory Class ( to Include a registry information in to HW Inv)

    Hi,
     I am trying to include information from a registry into SCCM HW Inventory, I would need some help in extending the HW inventory.
    I have followed one of the blog which says that the change needs to be done on both Configuration.mof and also import the .mof in "Default Client Settings".
    In Microsoft documentation I see an option to just import a .mof file, I did follow the option of importing the .mof into HW inventory and it was imported without any error (I used a mofcomp -check to compile the code)
    Result:
    I see following errors in the InventoryAgent.log which are related to the class that I imported and the information or the fields are not yet available in the resource explorer
    =================================================
    Invalid Query for class abcd: 80041017, will retry to remove invalid properties
    Collection-Retry:Ignore invalid property DeviceType
    =================================================
    Reference I used :
    http://technet.microsoft.com/en-us/library/gg712290.aspx
    http://schadda.blogspot.com/2012/02/sccm-2012-customize-extend-hardware.html

    Just to add to John's comment, I did up a blog post on how to use Regkeytomof to.
    http://be.enhansoft.com/post/2014/02/13/How-to-Use-RegKeyToMof.aspx
    Garth Jones | My blogs: Enhansoft and
    Old Blog site | Twitter:
    @GarthMJ

  • SCCM 2012 hardware Inventory

    I want my
    Inventory for Printers and Scanner (USB or Network Model), network devices such as Switches and router and any devices attached to POS terminals such as PDT, Monitor, and Keyboard. Can SCCM 2012 R2 can do this.
    How to configure this feature if SCCM 2012 can do 
    Rgds, SSJE

    ConfigMgr can run a network discovery, however the information you will get back on the objects will be limited to IP address, hostname and mac address. Check in the discover methods in the Administation workspace.
    You can extend the hardware classes to gather more information on printers - some info here
    http://www.74k.org/find-printer-information-in-sccm-2012
    You already get monitor details in ConfigMgr. This blog gives you some info on how to get a little extra from the EDID data. http://exar.ch/collecting-monitor-serial-numbers-with-sccm/
    Cheers
    Paul | sccmentor.wordpress.com

  • SCCM 2012 Recover "User State Recovery Key" after Deletion Policy has removed the key

    I have a computer that was upgraded from Windows XP to 7 using SCCM 2012.  The user's info was captured and restored, but found out a month later that some Outlook Archives are corrupt. 
    I had this happen before on a different user, but found out right away and was able to recover the User State Recovery Key and restore the files. 
    I have looked under Assets and Compliance, User State Migration, but the computer is not listed anymore.
    I have done a file restore of the USMT.MIG file from three weeks ago, but can not extract the users files without the User State Recovery Key.
    I have looked through the SQL tables and have only found the StateEncryptDecryptKey in the StateMigration table which will not work. 
    Environment:
    Windows 2008 R2 SP1 SCCM 2012 Server
    Windows 2008 R2 SP1 SQL 2012 Server
    Any help would be appreciated.
    Thanks,
    Wendell

    It worked! Thank you Jason!
    I restored the server's Storage Folder from "State Migration Point" (USMT Folder) from the same date as the SQL database was restored from.  Shut the SCCM server down while doing the SQL restore.  Turned on the Server and was able
    to pull out the User State Recovery Key. 
    Then reverted back by shutting down the SCCM server and restoring SQL database back to previous backup taken before starting.
    Only issue I'm getting now is that SMS_EN_ADSERVICE_MONITOR has a warning
    8400 Enrollment Point AD Service Control failed to read and configure the registry keys necessary for this component.
    With checking everything out to make sure no issues have arised. I looked through the log adctrl.log and found some more errors about Failed to create instance of ADService Managed Component. error = -2147024809
    Any help would be appreciated.
    Thanks,
    Wendell

  • SCCM 2012 Hardware Report - Select by Collection ID or Name

    I am trying to get my custom report to prompt for Collection ID or Name. I have the following so far but this brings out all device hardware with a client, I need to be able to select all the data below but only for Devices in a collection:
    SELECT distinct
    CS.Manufacturer0 as 'Manufacturer',
    CS.Model0 as 'Computer Model',
    CASE
    WHEN ES.ChassisTypes0 in ('1') THEN 'Other'
    WHEN ES.ChassisTypes0 in ('2') THEN 'Unknown'
    WHEN ES.ChassisTypes0 in ('3') THEN 'Desktop'
    WHEN ES.ChassisTypes0 in ('4') THEN 'Low Profile Desktop'
    WHEN ES.ChassisTypes0 in ('5') THEN 'Pizza Box'
    WHEN ES.ChassisTypes0 in ('6') THEN 'Mini Tower'
    WHEN ES.ChassisTypes0 in ('7') THEN 'Tower'
    WHEN ES.ChassisTypes0 in ('8') THEN 'Portable'
    WHEN ES.ChassisTypes0 in ('9') THEN 'Laptop'
    WHEN ES.ChassisTypes0 in ('10') THEN 'Notebook'
    WHEN ES.ChassisTypes0 in ('11') THEN 'Hand Held'
    WHEN ES.ChassisTypes0 in ('12') THEN 'Docking Station'
    WHEN ES.ChassisTypes0 in ('13') THEN 'All in One'
    WHEN ES.ChassisTypes0 in ('14') THEN 'Sub Notebook'
    WHEN ES.ChassisTypes0 in ('15') THEN 'Space-Saving'
    WHEN ES.ChassisTypes0 in ('16') THEN 'Lunch Box'
    WHEN ES.ChassisTypes0 in ('17') THEN 'Main System Chassis'
    WHEN ES.ChassisTypes0 in ('18') THEN 'Expansion Chassis'
    WHEN ES.ChassisTypes0 in ('19') THEN 'SubChassis'
    WHEN ES.ChassisTypes0 in ('20') THEN 'Bus Expansion Chassis'
    WHEN ES.ChassisTypes0 in ('21') THEN 'Peripheral Chassis'
    WHEN ES.ChassisTypes0 in ('22') THEN 'Storage Chassis'
    WHEN ES.ChassisTypes0 in ('23') THEN 'Rack Mount Chassis'
    WHEN ES.ChassisTypes0 in ('24') THEN 'Sealed-Case PC'
    END as 'Chassis Type',
    BIOS.SerialNumber0 as 'Bios serial',
    BIOS.ReleaseDate0 as 'Bios Date',
    CS.name0 as 'Computer Name',
    RAM.TotalPhysicalMemory0 as 'Total Memory',
    sum(isnull(LDisk.Size0,'0')) as 'Hardrive Size',
    OS.Caption0 as 'OS',
    CSDVersion0 as 'Service Pack',
    CS.UserName0 as 'User',
    CS.domain0 as 'Domain',
    CPU.Name0 AS 'Processor',
    COUNT(CPU.ResourceID) AS 'Number of CPUs',
    CPU.NumberOfCores0 AS 'Number of Cores per CPU',
    CPU.NumberOfLogicalProcessors0 AS 'Logical CPU Count'
    from
    v_GS_COMPUTER_SYSTEM CS right join v_GS_PC_BIOS BIOS on BIOS.ResourceID = CS.ResourceID
    right join v_GS_SYSTEM SYS on SYS.ResourceID = CS.ResourceID
    right join v_GS_OPERATING_SYSTEM OS on OS.ResourceID = CS.ResourceID
    right join v_GS_Processor CPU on CPU.ResourceID = CS.ResourceID
    right join V_GS_X86_PC_MEMORY RAM on RAM.ResourceID = CS.ResourceID
    right join v_GS_Logical_Disk LDisk on LDisk.ResourceID = CS.ResourceID
    INNER JOIN dbo.v_GS_SYSTEM_ENCLOSURE ES on SYS.ResourceID = ES.ResourceID
    where
    LDisk.DriveType0 =3
    group by
    CS.Manufacturer0,
    CS.Model0,
    ChassisTypes0,
    BIOS.SerialNumber0,
    BIOS.ReleaseDate0,
    CS.Name0,
    RAM.TotalPhysicalMemory0,
    OS.Caption0,
    CSDVersion0,
    CS.Username0,
    CS.domain0,
    CPU.Name0,
    CPU.NumberOfCores0,
    CPU.NumberOfLogicalProcessors0

    This is what I have so far DataSet1
    SELECT distinct
    CS.Manufacturer0 as 'Manufacturer',
    CS.Model0 as 'Computer Model',
    CASE
    WHEN ES.ChassisTypes0 in ('1') THEN 'Other'
    WHEN ES.ChassisTypes0 in ('2') THEN 'Unknown'
    WHEN ES.ChassisTypes0 in ('3') THEN 'Desktop'
    WHEN ES.ChassisTypes0 in ('4') THEN 'Low Profile Desktop'
    WHEN ES.ChassisTypes0 in ('5') THEN 'Pizza Box'
    WHEN ES.ChassisTypes0 in ('6') THEN 'Mini Tower'
    WHEN ES.ChassisTypes0 in ('7') THEN 'Tower'
    WHEN ES.ChassisTypes0 in ('8') THEN 'Portable'
    WHEN ES.ChassisTypes0 in ('9') THEN 'Laptop'
    WHEN ES.ChassisTypes0 in ('10') THEN 'Notebook'
    WHEN ES.ChassisTypes0 in ('11') THEN 'Hand Held'
    WHEN ES.ChassisTypes0 in ('12') THEN 'Docking Station'
    WHEN ES.ChassisTypes0 in ('13') THEN 'All in One'
    WHEN ES.ChassisTypes0 in ('14') THEN 'Sub Notebook'
    WHEN ES.ChassisTypes0 in ('15') THEN 'Space-Saving'
    WHEN ES.ChassisTypes0 in ('16') THEN 'Lunch Box'
    WHEN ES.ChassisTypes0 in ('17') THEN 'Main System Chassis'
    WHEN ES.ChassisTypes0 in ('18') THEN 'Expansion Chassis'
    WHEN ES.ChassisTypes0 in ('19') THEN 'SubChassis'
    WHEN ES.ChassisTypes0 in ('20') THEN 'Bus Expansion Chassis'
    WHEN ES.ChassisTypes0 in ('21') THEN 'Peripheral Chassis'
    WHEN ES.ChassisTypes0 in ('22') THEN 'Storage Chassis'
    WHEN ES.ChassisTypes0 in ('23') THEN 'Rack Mount Chassis'
    WHEN ES.ChassisTypes0 in ('24') THEN 'Sealed-Case PC'
    END as 'Chassis Type',
    BIOS.SerialNumber0 as 'Bios serial',
    BIOS.ReleaseDate0 as 'Bios Date',
    CS.name0 as 'Computer Name',
    RAM.TotalPhysicalMemory0 as 'Total Memory',
    sum(isnull(LDisk.Size0,'0')) as 'Hardrive Size',
    OS.Caption0 as 'OS',
    CSDVersion0 as 'Service Pack',
    CS.UserName0 as 'User',
    CS.domain0 as 'Domain',
    CPU.Name0 AS 'Processor',
    COUNT(CPU.ResourceID) AS 'Number of CPUs',
    CPU.NumberOfCores0 AS 'Number of Cores per CPU',
    CPU.NumberOfLogicalProcessors0 AS 'Logical CPU Count'
    from
    v_GS_COMPUTER_SYSTEM CS right join v_GS_PC_BIOS BIOS on BIOS.ResourceID = CS.ResourceID
    right join v_GS_SYSTEM SYS on SYS.ResourceID = CS.ResourceID
    right join v_GS_OPERATING_SYSTEM OS on OS.ResourceID = CS.ResourceID
    right join v_GS_Processor CPU on CPU.ResourceID = CS.ResourceID
    right join V_GS_X86_PC_MEMORY RAM on RAM.ResourceID = CS.ResourceID
    right join v_GS_Logical_Disk LDisk on LDisk.ResourceID = CS.ResourceID
    INNER JOIN dbo.v_GS_SYSTEM_ENCLOSURE ES on SYS.ResourceID = ES.ResourceID
    JOIN v_FullCollectionMembership fcm on fcm.resourceid=v_r_system.resourceid
    WHERE fcm.Collectionid= @CollectionID
    group by
    CS.Manufacturer0,
    CS.Model0,
    ChassisTypes0,
    BIOS.SerialNumber0,
    BIOS.ReleaseDate0,
    CS.Name0,
    RAM.TotalPhysicalMemory0,
    OS.Caption0,
    CSDVersion0,
    CS.Username0,
    CS.domain0,
    CPU.Name0,
    CPU.NumberOfCores0,
    CPU.NumberOfLogicalProcessors0
    Then DataSet2 is
    select CollectionID, Name from v_Collection Order by Name
    But when I run it I get this error:
    For more information about this error navigate to the report server on the local server machine, or enable remote errors
    Query execution failed for dataset 'DataSet1'. (rsErrorExecutingCommand)
    An error has occurred during report processing. (rsProcessingAborted)
    Thanks so far,  still plugging away.

  • SCCM 2012 R2 and NTFS\Share permissions auditing and inventory

    Does SCCM 2012 have the ability to run inventory and audit reports on client systems' NTFS and Share permissions?
    Any help would be greatly appreciated, as always. 
    Thanks

    Not built-in no. See this post for adding share permissions:
    https://social.technet.microsoft.com/Forums/systemcenter/en-US/31be4d1c-28d3-4f67-a2f6-823ab2b13d1e/how-to-collect-share-permissions
    For NTFS permissions, something similar could be done if you had a limited set of folders or files that you wanted to inventory.
    You could also use compliance settings to track if/when specific permissions change.
    Jason | http://blog.configmgrftw.com | @jasonsandys

  • Issue setting up PXE Enabled Distribution point for SCCM 2012.

    I'm trying to set up SCCM 2012 in my Lab Enviroment in order to plan for implmentation to production.
    I have installed and Configure one Primary site which has a working DP role width PXE /WDS.
    And i am able to successfully do and OS Deployment.
    I want to setup an additional Distribution point with PXE, to simulate a branch Office.
    Installation of the second Distribution point looks to be succesfull, but i'm not able to boot on PXE.
    It allways gives me the error messeage "The Windows Boot Configuration Data file does not contain a vaild OS entry
    The same error messeage is given before i distributed the boot images (both x86 and x64)
    So my thougts are that he WDS dosn't find the bootable images somehow.
    I can see that the images are added to the RemoteInstall\SMSImages directory, but i also see the following in smsdpprov.log
    [83C][Mon 04/23/2012 15:43:26]:Conent 'PS100004.7' for package 'PS100004' has been added to content library successfully
    [83C][Mon 04/23/2012 15:43:26]:Expanding \\?\E:\SCCMContentLib\FileLib\4ABE\4ABEBA3BB557A810CBCC8148BC70FE01349142EB1BCF1C1154216B77E3E22495 from package PS100004
    [83C][Mon 04/23/2012 15:43:26]:Finding Wimgapi.Dll
    [83C][Mon 04/23/2012 15:43:26]:MsiEnumRelatedProducts failed
    [83C][Mon 04/23/2012 15:43:26]:FindProduct failed; 0x80070103
    [83C][Mon 04/23/2012 15:43:26]:MsiEnumRelatedProducts failed
    [83C][Mon 04/23/2012 15:43:26]:FindProduct failed; 0x80070103
    [83C][Mon 04/23/2012 15:43:26]:Found C:\Windows\system32\wimgapi.dll
    [83C][Mon 04/23/2012 15:43:26]:Expanding PS100004 to E:\RemoteInstall\SMSImages
    [83C][Mon 04/23/2012 15:44:48]:Registry key creation successfull
    [83C][Mon 04/23/2012 15:44:48]:Registry key creation successfull
    [83C][Mon 04/23/2012 15:44:49]:Registry key creation successfull
    [83C][Mon 04/23/2012 15:45:23]:Conent 'PS100001.5' for package 'PS100001' has been added to content library successfully
    [83C][Mon 04/23/2012 15:45:23]:Expanding \\?\E:\SCCMContentLib\FileLib\5EFD\5EFD89A7C52739DC815393C586861AFB6664FD4F28726758D6A151722D160031 from package PS100001
    [83C][Mon 04/23/2012 15:45:23]:Finding Wimgapi.Dll
    [83C][Mon 04/23/2012 15:45:23]:MsiEnumRelatedProducts failed
    [83C][Mon 04/23/2012 15:45:23]:FindProduct failed; 0x80070103
    [83C][Mon 04/23/2012 15:45:23]:MsiEnumRelatedProducts failed
    [83C][Mon 04/23/2012 15:45:23]:FindProduct failed; 0x80070103
    [83C][Mon 04/23/2012 15:45:23]:Found C:\Windows\system32\wimgapi.dll
    [83C][Mon 04/23/2012 15:45:23]:Expanding PS100001 to E:\RemoteInstall\SMSImages
    Server is a clean installed Windows 2008 R2, only added to domain, added the primary SCCM server account as local Admin, added WDS Role and configured RemoteFolder before adding DP role from the SCCM Console. (So SCCM has installed and Configured IIS)

    Looks like i have found the answer at least i have got it to work.
    Once i install .Net Framework 3.5.1 Feature on the server, i was able to boot succesfully into SCCM Task Sequence Wizard.
    I also was successfull installing the the PXE DP role from the console succesfully without having to install WDS first.
    So i guess that .Net Framework 3.5.1 is required for PXE DP role on Windows 2008 R2. (but i can't see that mentioned anywhere here http://technet.microsoft.com/en-us/library/c1e93ef9-761f-4f60-8372-df9bf5009be0#BKMK_SiteSystemRolePrereqs)

  • SCCM 2012 Disk Space

    Hi
    I prepare to migrate SCCM 2007 to SCCM 2012, i create one server "stand -alone" (SCCM 2012), i have around 8000 clients.
    On SCCM 2007:
    Drive C: 60 Go
    Drive E:  SMSPKGE$ = 300 Go, SMSPKG = 250 Go. (Sources another server).
    Did i forget something when calculating disk space?
    Thanks

    My plan for a new server (4 vCPU, 32 Go RAM, C: 800 Go) just C: drive because SQL 2012 and sources packages on another server (source don't move), on C: drive install only OS and SCCM 2012?
    Hi,
    Your disk space is enough.
    There is a blog talks about SCCM 2012 hardware requirements. You could have a look.
    Configuration Manager 2012 Sizing considerations
    http://blogs.msdn.com/b/scstr/archive/2012/05/31/configuration_2d00_manager_2d00_2012_2d00_sizing_2d00_considerations.aspx
    Best Regards,
    Joyce
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • Hardware Inventory - Registry Keys

    I have done this before.. getting registry keys into HINV isn't rocket science, but for some reason this seems beyond me. The scenario that I am
    faced with is my customer needs to pull in regs keys that created when software is installed/uninstalled. this then feeds collections memberships and reporting 
    The registry entries looks like this but one for each app
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Corp\Components]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Corp\Components\Adobe Flash Player 11.9.900.170]
    "Status"="Uninstalled"
    "CRNumber"="CRI605844"
    "Date installed"="6/18/2014 9:40:13 AM"
    "Date uninstalled"="25/09/2014 9:15:46 AM"
    I have used RegkeytoMof 3.1 to create the following entries to add to configuration.mof and to import into HINV via client settings. 
    Configuration.mof settings
    // RegKeyToMOF by Mark Cochrane (thanks to Skissinger, Steverac, Jonas Hettich & Kent Agerlund)
    // this section tells the inventory agent what to collect
    // 25/09/2014 2:31:17 PM
    #pragma namespace ("\\\\.\\root\\cimv2")
    #pragma deleteclass("Components", NOFAIL)
    [dynamic, provider("RegProv"), ClassContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Corp\\Components")]
    Class Components
    [key] string KeyName;
    [PropertyContext("Status")] String Status;
    [PropertyContext("CRNumber")] String CRNumber;
    [PropertyContext("Dateinstalled")] String Dateinstalled;
    [PropertyContext("Dateuninstalled")] String Dateuninstalled;
    Import to into Hinv.mof
    // RegKeyToMOF by Mark Cochrane (thanks to Skissinger, Steverac, Jonas Hettich & Kent Agerlund)
    // this section tells the inventory agent what to report to the server
    // 25/09/2014 2:31:17 PM
    #pragma namespace ("\\\\.\\root\\cimv2\\SMS")
    #pragma deleteclass("Components", NOFAIL)
    [SMS_Report(TRUE),SMS_Group_Name("Components"),SMS_Class_ID("Components")]
    Class Components: SMS_Class_Template
    [SMS_Report(TRUE),key] string KeyName;
    [SMS_Report(TRUE)] String Status;
    [SMS_Report(TRUE)] String CRNumber;
    [SMS_Report(TRUE)] String Dateinstalled;
    [SMS_Report(TRUE)] String Dateuninstalled;
    Unfortunately this doesn't seem to do anything.  the clients process the class without error according to inventoryagent.log. 
    But there is nothing getting placed in the database or showing in resource explorer. 
    I feel like I have tried every combination possible and opened up for tabs then any browser would like... so any help is greatly appriecated. 
    Regards, Martin

    Ahh good point. No. No there are no instances :(
    This is the code I am adding to configuration.mof which should be creating the class (might have already been there from ConfigMgr 2007) and propagating the instances with data from the registry. 
    #pragma namespace ("\\\\.\\root\\cimv2")
    #pragma deleteclass("Corp", NOFAIL)
    //Declare the class for client component registry properties
    [DYNPROPS]
    class Corp
        [key]  string KeyName;
               string ImageName;
               string ImageVersion;
               string OSMajor;
               string OSMinor;
    // Declare the instances, one for each client component
    [DYNPROPS] 
    instance of Corp
        KeyName="Corp";
        [PropertyContext("local|HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Corp|ImageName"),Dynamic, Provider("RegPropProv")] ImageName;
        [PropertyContext("local|HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Corp|ImageVersion"),Dynamic, Provider("RegPropProv")] ImageVersion;
        [PropertyContext("local|HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Corp|OSMajor"),Dynamic, Provider("RegPropProv")] OSMajor;
        [PropertyContext("local|HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Corp|OSMinor"),Dynamic, Provider("RegPropProv")] OSMinor;
    Regards, Martin

  • SCCM 2012 Secondary site some client's are scan hardware inventory for more than 30 days

    Hi, 
    In our SCCM 2012 environment we have secondary site configured which connected with 8500 computers, on those 5500 machines scanning hardware inventory and send latest inventory details to Secondary Site Management Point, but remaing 3000 machines are not
    sending latest hardware inventory for more than 30 days. I verified clients log  found it is generating report on inventory agent.log however it is not available with secondary site Management Point.
    Are anyone experienced this issue, please share your thought how to fix this issue.
    Thanks in advance. 
    Madhan

    Yes i did verify but the client isn't listed on both log files. Also i couldn't open IIS log because of it size has more than 800MB. currently this site has connected with 8500 machines do you think these many clients are supported by secondary site server. 
    If you can't open the IIS log then how do you know that the Client's IP is not listed within them?
    5000 is the max for a secondary site. You will need to secondary sites at this location.
    http://technet.microsoft.com/en-us/library/gg682077.aspx#BKMK_SupConfigClientNumbers
    Garth Jones | My blogs: Enhansoft and
    Old Blog site | Twitter:
    @GarthMJ

  • SCCM 2012 - Custom Hardware Inventory Report

    Hi All
    I am looking for a step-by-step on how to build a custom hardware inventory report in SCCM 2012 that is similar to the default Hardware-09A report but with a few added fields.
    The fields I am looking to add are 
    Current logged on user
    Monitor make
    Monitor Model
    Monitor Serial
    Also, if I right click and select Edit, the report view does not open to view the SQL statements.
    Any assistance is appreciated
    Thanks

    and is there a solution for the other points I made?
    Monitor make
    Monitor Model
    Monitor Serial

  • Hardware inventory not reflecting in reports in SCCM 2012 SP1

    Hi,
    I am using SCCM 2012 SP1. During hardware inventory my client sending logs to MP server(i checked in InventoryAgent.log).
    From server end its also showing successful in logs (MP_Hinv.log). But when i m using resource explorer by clicking on a particular device its not giving information about inventory. Its giving only three option (Kindly refer snapshot).
    Kindly suggest .
    Regards
    Manish

    We're just not wanting to lead anyone else astray into thinking that this really is the solution if they were to run into the same scenario. We're all very happy that you have things working now, but were just trying to really understand how it got fixed
    so that others who do come across this thread would see the real answer. But if all you changed was the boundary group, so be it.
    Again, we're all glad you are working now.
    Wally Mead

  • NETWORK PRINTER INVENTORY IN SYSTEM CENTRE CONFIGURATION MANAGER (SCCM 2012).

    SCCM HW inventory agent runs as the ‘SYSTEM’ and cannot see the end-users network drives and printers. The following two step process will help circumvent the above stated limitation.
    1) CREATE HKEY_LOCAL_MACHINE\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS PATH IN THE REGISTRY.
    Create a SCCM package.
    The package should run as administrator.
    The package should run whether or not a user is logged on.
    POWERSHELL PACKAGE 1 (Prerequisite):
    if (!(Test-Path HKLM:\SOFTWARE\SCCMINVENTORY)) {new-item HKLM:\SOFTWARE\SCCMINVENTORY -ErrorAction SilentlyContinue}
    $perm = get-acl HKLM:\SOFTWARE\SCCMINVENTORY -ErrorAction SilentlyContinue
    $rule = New-Object System.Security.AccessControl.RegistryAccessRule("Authenticated Users","FullControl", "ContainerInherit, ObjectInherit", "InheritOnly", "Allow") -ErrorAction SilentlyContinue
    $perm.SetAccessRule($rule)
    Set-Acl -Path HKLM:\SOFTWARE\SCCMINVENTORY $perm -ErrorAction SilentlyContinue
    if (!(Test-Path HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS)) {new-item HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS -ErrorAction SilentlyContinue}
    SAVE POWERSHELL FILE AS: PrinterInvRegSetup.ps1
    SETUP THE SCCM PACKAGE/PROGRAM WITH COMMAND LINE:
    %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\PowerShell.exe -NonInteractive -WindowStyle Hidden -noprofile -ExecutionPolicy Bypass -file .\PrinterInvRegSetup.ps1
    2) CAPTURE CURRENT USER’S PRINTERS AND WRITE THOSE ENTRIES TO THE ABOVE CREATED REGISTRY KEYS.
    Create a SCCM package
    The package should be run only when a user is logged in.
    POWERSHELL PACKAGE 2 (Main):
    $printers = Get-WMIObject -class Win32_Printer -ErrorAction SilentlyContinue|select-Object -Property ServerName,ShareName,Location,DriverName,PrintProcessor,PortName,Local |Where-Object {$_.Local -ne $true}-ErrorAction SilentlyContinue
    ForEach($printer in $printers){
    $PServerName= $printer.ServerName -replace ('\\','')
    $PShareName = $printer.ShareName
    $PLocation = $printer.Location
    $PDriverName = $printer.DriverName
    $PPrintProcessor = $printer.PrintProcessor
    $PPortName = $printer.PortName
    if ((Test-Path HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS)) {
    if ((Test-Path "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName")) {
    Remove-item "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Force -ErrorAction SilentlyContinue
    New-item "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -ErrorAction SilentlyContinue
    New-ItemProperty "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Name "PrintServer" -Value $PServerName -PropertyType "String" -ErrorAction SilentlyContinue
    New-ItemProperty "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Name "PrinterQueue" -Value $PShareName -PropertyType "String" -ErrorAction SilentlyContinue
    New-ItemProperty "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Name "PrinterLocation" -Value $PLocation -PropertyType "String" -ErrorAction SilentlyContinue
    New-ItemProperty "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Name "PrinterDriver" -Value $PDriverName -PropertyType "String" -ErrorAction SilentlyContinue
    New-ItemProperty "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Name "PrintProcessor" -Value $PPrintProcessor -PropertyType "String" -ErrorAction SilentlyContinue
    New-ItemProperty "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Name "PrinterPortName" -Value $PPortName -PropertyType "String" -ErrorAction SilentlyContinue
    New-ItemProperty "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" -Name "DateInventoried" -Value $(get-date) -PropertyType "String" -ErrorAction SilentlyContinue
    SAVE POWERSHELL FILE AS: NetworkPrinterInventory.ps1
    SETUP THE SCCM PACKAGE/PROGRAM WITH COMMAND LINE:
    %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\PowerShell.exe -NonInteractive -WindowStyle Hidden -noprofile -ExecutionPolicy Bypass -file .\NetworkPrinterInventory.ps1
    3) CREATE A DEPLOYMENT AND SET IT TO ‘RUN ALWAYS’ AND MAKE IT A REQUIREMENT.
    Now deploy the second package and set the first package as a prerequisite (Check the box – Always run the prerequisite package)
    The deployment should be set to run every 4 hours and ‘Always rerun’. Mark the deployment as required. 
    4) ADD THE FOLLOWING IN BETWEEN THE EXTENSION SECTION WITHIN YOUR CONFIGURATION.MOF.
    //========================
    // Added extensions Start
    //========================
    #pragma namespace ("\\\\.\\root\\cimv2")
    #pragma deleteclass("NETWORKPRINTERS", NOFAIL)
    [dynamic, provider("RegProv"), ClassContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\SCCMINVENTORY\\NETWORKPRINTERS")]
    Class NETWORKPRINTERS
    [key] string KeyName;
    [PropertyContext("PrintServer")] String PrintServer;
    [PropertyContext("PrinterQueue")] String PrinterQueue;
    [PropertyContext("PrinterLocation")] String PrinterLocation;
    [PropertyContext("PrinterDriver")] String PrinterDriver;
    [PropertyContext("PrintProcessor")] String PrintProcessor;
    [PropertyContext("PrinterPortName")] String PrinterPortName;
    [PropertyContext("DateInventoried")] String DateInventoried;
    //========================
    // Added extensions end
    //========================
    5) SAVE THE BELOW DATA INTO A FILE CALLED ‘AWESOME.MOF’.
    #pragma namespace (“\\\\.\\root\\cimv2\\SMS”)
    #pragma deleteclass(“NETWORKPRINTERS”, NOFAIL)
    [SMS_Report(TRUE),SMS_Group_Name("NETWORKPRINTERS"),SMS_Class_ID("NETWORKPRINTERS")]
    Class NETWORKPRINTERS: SMS_Class_Template
    [SMS_Report(TRUE),key] string KeyName;
    [SMS_Report(TRUE)] String PrintServer;
    [SMS_Report(TRUE)] String PrinterQueue;
    [SMS_Report(TRUE)] String PrinterLocation;
    [SMS_Report(TRUE)] String PrinterDriver;
    [SMS_Report(TRUE)] String PrintProcessor;
    [SMS_Report(TRUE)] String PrinterPortName;
    [SMS_Report(TRUE)] String DateInventoried;
    6) IMPORT ‘AWESOME.MOF’ INTO SCCM DEFAULT CLIENT SETTINGS.
    Either import the above MOF file into the Client Setting/Default Client Settings/Hardware Inventory/Classes/Import. Select the option to import every thing.
    Alternatively, if you have compiled the MOF manually on the PC, Add a new reporting class by clicking the ‘Add’ button and connecting to the PC and selecting the WMI class ‘NETWORKPRINTERS‘
    and that is it. The SCCM resource explorer should soon see the Network Printers.
    Now, this is a convoluted process but this is the only way I can inventory Network printers. Any ideas or suggestions?

    All the other ways are similar because this is a per-user setting.
    http://blogs.technet.com/b/breben/archive/2013/08/26/inventory-mapped-drives-in-configmgr-2012.aspx
    Juke Chou
    TechNet Community Support

Maybe you are looking for

  • HT1338 I did a software update yesterday and now can not open my email???

    Hello...HELP....No Email ??

  • Error:' ' cannot appear in attribute value error while deploying ESB

    Hi, I am facing issue while deploying ESB using script.Below is the error which I see in while running script. [deployESBProjects] Deployment Attempt Response : [deployESBProjects] <deploymentSummary> [deployESBProjects] <message>Entity Deployment Fa

  • Error message when initiating scanning

    I got an error message when trying to scan today (don't know why as scanning has been fine until now) which upon using HP's diagnostics gave me the response below.  My problem is that the link to the solution no longer works.  How and where can I fin

  • How do I install Windows XP Pro OEM?

    I have installed a legitimate copy of Windows XP Pro OEM I purchased from Ebay. (when i bought it i didnt know there was a difference i thought one was just mass produced and the other was retail pretty produced.) So now windows xp is popping up with

  • Attachments to an a/p invoice using a jco

    Hello, I am trying to add an attachment to an existing invoice using a jco, but couldn't find any useful info so far: First I am trying to retrieve the document and then attach the files, but i receive a null object in the doc value. doc = SBOCOMUtil