ConfigMgr 2012 Content Library Overview

Content Management in ConfigMgr 2012 has completely changed to what we did in SCCM

When you distribute content to a Distribution Point in ConfigMgr 2012, a check is done against the Content Library to confirm that any of the source files being referenced in your application/package do not already exist in the Content Library. Ie. There is only one copy of every file stored on a DP regardless of how many packages reference that one file.

The SCCMContentLib Directory

The ConfigMgr 2012 Content Library (SCCMContentLib) consists of 3 subfolders:

1. PkgLib
2. DataLib
3. FileLib

1. PkgLib

In the Package Library folder you will find a PackageID.ini file for every package. The PackageID.ini file for each package will give you the details for the Data library content and what file you will need to look for.

2. DataLib

In the Data Library folder you will find a PackageID.ver.ini file for each package and a PackageID.ver folder. The folder is a “copy” of the exact package folder structure but without any of the real files. For each file in the original package you will find a corresponding .INI file with information about the original file. To find the HASH value for the file you are interested in, open the relevant .INI file and make a note of the first 4 digits of the HASH value, this will be needed to find the data in the FileLib directory

3. FileLib

The File Library folder is where you will find the actual files that are used in the different packages. All files are grouped together in a folder. The folder for each file uses a 4 digit pre-fix of the HASH value of that file found in the DataLib. The FileLib is where the nuts and bolts of the application are stored. You will see three files under each folder:

1. A file with no extension (FILE) , the actual file named is the HASH value. This file
contains all of the source files for that part of the application. If the
application only had a single .EXE or .MSI file to execute than you could copy
the file to a location such as the Desktop, rename it to the original file name,
ie .EXE, .MSI and start the installation

2. Hash.ini file contains a link between the file and the packages that uses the file. If you have multiple
packages referring the same file, you will just see an entry for each package

3. Hash.sig. It contains the original package signature

ConfigMgr 2012 Content Library in Action…

For this example I will use my Microsoft Office 2010 package which has Package ID IBC0000B.

1. Navigate to the SCCMContentLib directory on your DP.

2. open the PkgLib directory 
Content Library 1
Content Library 2

3. Open the configuration file referencing your Package ID, ie IBC0000B, and make a note of the ContentID it is referencing, ie Content_30b777f9-be…………..
Content Library 3

4. Navigate to SCCMContentLib\DataLib and open the directory that was referenced in your package configuration file, ie Content_30b777f9_30b777f9-be51-484b-8327-77bf2ef75169.1
Content Library 4

Notice that folder Content_30b777f9_30b777f9-be51-484b-8327-77bf2ef75169.1 holds reference to all files in your source location, ie you will see all the Office 2010 files being referenced. NOTE: These files do not contain any of the actual source data, only references to the HASH values for each

Content Library 5

5. Open any of the configuration files referencing a file in your package to gain the HASH value to the actual content. For this example I will use the setup.exe file as the example.
Content Library 6

6. Take note of the first 4 digits in the hash, so for the setup.exe file it will be “97E6”

7. Navigate to SCCMContentLib\FileLib\<4 digit hash> -  eg SCCMContentLibrary\FileLib\97E6
Content Library 7

8. The file with extension ‘FILE’ is the actual content for the setup.exe file in our source content. To confirm this we can see the size of this file is 1075KB, the same as our setup.exe file from our source location.OriginalSource Files
Content Library 8

9. As this Office is an application made up of many components, ie Word, Excel etc, they all share common files; to see what packages require the setup.exe file you could open the “Configurations Settings” file to see the package IDs of all packages that require the setup.exe file.
For applications that are compiled to one executable, eg Adobe Reader, you could follow this process and simply copy the FILE file to a desktop, set the file extensions accordingly, ie .EXE and you could simply run this file and it would execute and install as it would contain all source files…