Website analytics softwareWebsite analytics software

ConfigMgr and back again

Automating life, one Bit at a time.

Archive for the ‘ ConfigMgr 2012 ’ Category

Driver Import Issue

no comment

I’ve just run into an issue importing drivers for Windows 8.1 (on two Lenovo devices – Helix Gen2 and the ThinkPad Tablet 10) on SCCM 2012 R2 (recently upgraded from 2012 SP1 but this could be irrelevant).

The problem was that the primary site that I was trying to run the Import on was running Windows Server 2008 R2. When trying to import Windows 8.1 drivers, the following error would be displayed in the import wizard dialogue box and in the DriverCatalog.log:

The selected driver is not applicable to any supported platforms. Code 0×80070661

The problem appears to be due to driver signing and the method in which some of the newer drivers are signed. Windows Server 2008 R2 doesn’t recognise the signing method and rejects the drivers.

A KB article (KB3025419) was created to address this issue - http://support.microsoft.com/kb/3025419

Which ultimately points to 2 other KB patches to install.

http://support.microsoft.com/kb/2837108
http://support.microsoft.com/kb/2921916

After installing these patches, and rebooting the server, all drivers now import successfully.

Create task sequence media larger than 32GB

no comment

I recently ran into a problem trying to create stand-alone media onto a USB key using ConfigMgr 2012 SP1. The task sequence contained driver packages, applications, operating system images and other content that totalled more than 32GB. Due to a combination of the ConfigMgr console Operating System, ConfigMgr itself, the USB disk formatting method/type and the USB stick size, doing this without prior tweaking is not possible. Windows 7/8,Server 2008/08R2/2012 isn’t able to cope with a partition greater than 32GB in conjunction with the ConfigMgr bootable media creation process.

This is what I needed to do to create a 64GB bootable USB stick.

  • Make sure the USB drive in question is removable media and not detected as a portable hard drive, or it won’t be seen by the console (USB stick, USB key required, not USB hard drive).
  • Use a Windows 7, 8, Server 2008/R2 or 2012 machine to format the USB stick with NTFS.
  • Find an old Windows XP machine (yes, they do still have a use) and install the ConfigMgr 2012 console on it.

Windows XP is able to work with drives >32GB, but if you try running the task sequence media wizard at this point, it will fail with the following error:

Query for Win32_Volumes failed. 80041010. Failed to determine whether or not <Drive> is the boot or system volume. Failed to create media (0×80041010).

Win32_VolumesFailure

This is because Windows XP does not have the Win32_Volume class that is used to query available drives.

We therefore need to add the class.

  •  Copy the following MOF text into a new file called config.mof and store it locally on the XP machine with the console installed (e.g. C:\config.mof)

#pragma namespace (“\\\\.\\root\\cimv2″)

Class Win32_Volume
{
[KEY]
String Name;
Boolean BootVolume;
Boolean SystemVolume;
};

Instance of Win32_Volume
{
Name=”E:\\”;
BootVolume=FALSE;
SystemVolume=FALSE;
};

  • Replace the red text above (E:) with the drive letter of your USB drive and save the mof file – note: keep the double backslashes.
  • It may also be necessary to replace the quotes around the text in red and the text on line 1, as wordpress converts them into incompatible speech-marks.
  • Open command prompt and run the following command:

mofcomp.exe <pathToMOF>\Config.mof

e.g.  mofcomp.exe C:\Config.mof

  • Now run the task sequence media wizard and select Stand-alone media.
  • Select USB flash drive and select your drive.

If the following warning comes up, just ignore it, the process will still work fine:

The USB flash drive is not formatted correctly. Format the USB flash drive from a Windows Vista or later operating system.

FormatWarning

  •  Complete the wizard with your desired options.

The process will take a while to complete but you’ll have a nice USB stick >32GB at the end.
Be sure to monitor CreateTsMedia.log in the console install directory (e.g. .\Program Files\Configuration Manager Console\AdminUILog   or .\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\AdminUILog) for progress.

 

It may be necessary to make the USB drive bootable at the end of the process. To do this, just run the following command in an elevated command shell:

bootsect.exe /nt60 E:\ /force /mbr

  • Replace the red text above (E:) with the drive letter of your USB drive.

Note: If bootsect.exe cannot be found in it’s default location (%WinDir%\System32), you can locate it in the Windows 7/8 source media .\boot folder.

 

Extending Hardware Inventory to retrieve Autodesk license info (CM2012)

no comment

I had the need last week to extend Hardware Inventory to report on installed Autodesk products, their license type and serial number.

This information is available in registry but is in a different place for each Autodesk product which makes retrieving it a bit difficult.

I used a list of all registry locations for each Autodesk product and then used the magic of excel to format it into MOF format.

The following steps will show how to extend ConfigMgr 2012 inventory to include Autodesk licensing information:

  • Click the following link to get a MOF-formatted link of all available registry-accessible Autodesk products (to 2014)
    Autodesk MOF
  • Advisable: Take a backup of current Configuration.mof in <ConfigMgr Installation Directory>\inboxes\clifiles.src\hinv
  • Copy and paste the products you want to include in Inventory into Configuration.mof at the bottom between ‘// Added extensions start’ and ‘// Added extensions end’
    Note – the file contains entries for both 32-bit and 64-bit products, be sure to take both. 64-bit starts at the middle of the file.
    Note – be sure to take the two class definitions at the top and middle of the document. (Anything removed should start with [DYNPROPS] and finish with };
  • Save Configuration.mof
  • Copy Configuration.mof to a test PC (e.g. %Temp%)
  • Run the following command in cmd.exe to check for syntax issues:
    mofcomp.exe -check “%Temp%\configuration.mof” (assuming file was copied to %temp%)
  • Ensure the resultant output contains “MOF file has been successfully parsed” (about 6 to 8 lines up) and “Syntax check complete
  • Run the following command to insert the configuration.mof changes into WMI:
    mofcomp.exe “%Temp%\configuration.mof” (assuming file was copied to %temp%)
  • On the ConfigMgr site server, open the console and go to Administration > Client Settings > Default Client Settings > Properties
  • Click the Hardware Inventory tab then click ‘Set Classes
  • Wait for the list to populate then click ‘Add
  • Click Connect then enter the Computer Name of the test PC that has just had the configuration loaded and any required credentials to connect to WMI.
  • Check the checkboxes next to Autodesk_Inventory and Autodesk_Inventory_64 and click OK
  • Ensure Autodesk_Inventory and Autodesk_Inventory_64 are checked in the Hardware Inventory Classes window then click OK twice more.

Dataldr.log should reflect the change being made, two new tables (AUTODESK_INVENTORY_DATA and AUTODESK_INVENTORY_64_DATA) and two new views (v_GS_AUTODESK_INVENTORY and v_GS_AUTODESK_INVENTORY_64) will be added to the database. After which, machines that run hardware inventory should start to report on any installed Autodesk products that they have installed.

The below query can be created which will show this information in a list (64-bit shown):

WQL:

select SMS_R_System.Name, SMS_G_System_AUTODESK_INVENTORY_64.* from  SMS_R_System inner join SMS_G_System_AUTODESK_INVENTORY_64 on SMS_G_System_AUTODESK_INVENTORY_64.ResourceID = SMS_R_System.ResourceId where SMS_G_System_AUTODESK_INVENTORY_64.ProductName is not null

AutodeskLicensing

SQL:

select
SYS.Name0, ADESK.InstanceKey, ADESK.KeyName00,
ADESK.ProductName00, ADESK.Release00, ADESK.MachineID,
ADESK.RevisionID, ADESK.SerialNumber00, ADESK.StandaloneNetworkType00,
ADESK.TimeKey from vSMS_R_System AS SYS INNER JOIN AUTODESK_INVENTORY_64_DATA AS ADESK
ON ADESK.MachineID = SMS_R_System.ItemKey where ADESK.ProductName00 is not null

 

Translate this page

EnglishFrenchGermanItalianPortugueseRussianSpanish

Recent Posts

Calendar

June 2017
M T W T F S S
« Jan    
 1234
567891011
12131415161718
19202122232425
2627282930  

Archive

Blogroll