Here we are, week two of the New Year, and the goodies just keep coming. In case you missed it the Configuration Manager 2012 SP1 Toolkit has been released and with it brings a whole batch of goodness. Some of the tools included are the usual suspects (PolicySpy.exe, runmetersumm.exe, etc.) and then there are a few new ones. In this quick micro-deep dive I will be looking at one of these new tools – ContentLibraryTransfer.exe.

What is ContentLibraryTransfer.exe:

Quite simply, ContentLibraryTransfer.exe is a tool that will move a distribution point’s content store from one drive to another. That is it, and it is a very simple process.

The syntax used with the tool is – ContentLibraryTransfer.exe –SourceDrive <Current Drive Letter> -TargetDrive <New Drive Letter>

While I found no log file at execution time, piping the execution output to a text file appears to provide a good log of execution activities.

 I will include not include here the full results log; however here is a partial look into the beginning of the content transfer process. I've highlighted a few of the more interesting lines.

 

CLT:01/05/2013 17:20:21 ***************************************************************************************************

CLT:01/05/2013 17:20:21 Content Library Transfer                                                                          

CLT:01/05/2013 17:20:21 ***************************************************************************************************

CLT:01/05/2013 17:20:21 !!Warning!!                                                                                       

CLT:01/05/2013 17:20:21                                                                                                   

CLT:01/05/2013 17:20:21 Run this tool when the server hosting the content library is offline. If you run this tool when   

CLT:01/05/2013 17:20:21 data is being written to or removed from the content library, you may introduce errors.           

CLT:01/05/2013 17:20:21 ***************************************************************************************************

CLT:01/05/2013 17:20:21                                                                                                    

CLT:01/05/2013 17:20:21 Verify Credentials: Check if running as Administrator.                                            

CLT:01/05/2013 17:20:21 Verify Credentials: Completed Successfully                                                        

CLT:01/05/2013 17:20:21 Verify Other Instances: Check if another instance is running                                      

CLT:01/05/2013 17:20:21 Verify Other Instances: Completed Successfully                                                    

CLT:01/05/2013 17:20:21 Create Orchestrator                                                                               

CLT:01/05/2013 17:20:21 Read Input Arguments                                                                               

CLT:01/05/2013 17:20:21 CurrDir F NewDir C                                                                                

CLT:01/05/2013 17:20:21 Read Input Arguments: Completed Successfully                                                      

CLT:01/05/2013 17:20:21 Validating Input Arguments                                                                        

CLT:01/05/2013 17:20:21 Validating Input Arguments : Completed Successfully                                               

CLT:01/05/2013 17:20:21 Reading Host Configuration : Read configuration on host                                           

CLT:01/05/2013 17:20:21                                                                                                    

CLT:01/05/2013 17:20:21 Loaded Configuration                                                                              

CLT:01/05/2013 17:20:21 Folder Source:                                                                                     

CLT:01/05/2013 17:20:21 F:\SMSSIG$                                                                                        

CLT:01/05/2013 17:20:21 F:\SMSPKGF$                                                                                        

CLT:01/05/2013 17:20:21 F:\SCCMContentLib                                                                                 

CLT:01/05/2013 17:20:21                                                                                                    

CLT:01/05/2013 17:20:21 Folder Destination:                                                                               

CLT:01/05/2013 17:20:21 C:\SMSSIG$                                                                                         

CLT:01/05/2013 17:20:21 C:\SMSPKGC$                                                                                       

CLT:01/05/2013 17:20:21 C:\SCCMContentLib                                                                                 

CLT:01/05/2013 17:20:21                                                                                                   

CLT:01/05/2013 17:20:21 Share Source:                                                                                     

CLT:01/05/2013 17:20:21 SMSSIG$,F:\SMSSIG$                                                                                

CLT:01/05/2013 17:20:21 SMSPKGF$,F:\SMSPKGF$                                                                              

CLT:01/05/2013 17:20:21 SCCMContentLib$,F:\SCCMContentLib                                                                 

CLT:01/05/2013 17:20:21                                                                                                    

Share Destination:CLT:01/05/2013 17:20:21 SMSSIG$,C:\SMSSIG$                                                                                

CLT:01/05/2013 17:20:21 SMSPKGC$,C:\SMSPKGC$                                                                              

CLT:01/05/2013 17:20:21 SCCMContentLib$,C:\SCCMContentLib                                                                 

CLT:01/05/2013 17:20:21                                                                                                   

CLT:01/05/2013 17:20:21 Restart Service:                                                                                  

CLT:01/05/2013 17:20:21 winmgmt                                                                                           

CLT:01/05/2013 17:20:21                                                                                                   

CLT:01/05/2013 17:20:21 Stop Service:                                                                                      

CLT:01/05/2013 17:20:21 winmgmt                                                                                           

CLT:01/05/2013 17:20:21                                                                                                    

CLT:01/05/2013 17:20:21 Source Drive:F                                                                                    

CLT:01/05/2013 17:20:21 Target Drive: C                                                                                    

CLT:01/05/2013 17:20:21 Host Type:DP                                                                                      

CLT:01/05/2013 17:20:21                                                                                                    

CLT:01/05/2013 17:20:21 End of Configuration                                                                              

CLT:01/05/2013 17:20:21                                                                                                    

CLT:01/05/2013 17:20:21 Reading Host Configuration: Completed Successfully                                                

CLT:01/05/2013 17:20:21 Verify Drives: Validating drives specified for the transfer exist                                 

CLT:01/05/2013 17:20:21 Verify Drives: Completed Successfully                                                             

CLT:01/05/2013 17:20:21 Verify Destination: Check if target drive has enough space for the transfer                       

CLT:01/05/2013 17:20:21 Verify Destination: Completed Successfully                                                        

CLT:01/05/2013 17:20:21 Executing Transfer: Begin Content Library Transfer                                                 

CLT:01/05/2013 17:20:21 Mark Source: Mark source drive for Do Not Use                                                     

CLT:01/05/2013 17:20:21 Dropping No SMS .                                                                                 

CLT:01/05/2013 17:20:21 Successfully created NO_SMS file!                                                                 

CLT:01/05/2013 17:20:21 Mark Source: Completed                                                                            

CLT:01/05/2013 17:20:21 Copy Content                                                                                      

CLT:01/05/2013 17:20:21 Copying Folder F:\SMSSIG$                                                                         

CLT:01/05/2013 17:20:21 Moving F:\SMSSIG$ to C:\SMSSIG$                                                                   

CLT:01/05/2013 17:20:21 Creating directory C:\SMSSIG$                                                                     

CLT:01/05/2013 17:20:21 Copying file F:\SMSSIG$\0969e642-95e9-46cc-a1a2-8860d7e32706.tar to C:\SMSSIG$\0969e642-95e9-46cc-a1a2-8860d7e32706.tar

CLT:01/05/2013 17:20:21 Copying file F:\SMSSIG$\a53e1c26-a1d6-43fa-a7fc-3b01edfd607a.tar to C:\SMSSIG$\a53e1c26-a1d6-43fa-a7fc-3b01edfd607a.tar

CLT:01/05/2013 17:20:21 Copying file F:\SMSSIG$\SP100004.1.tar to C:\SMSSIG$\SP100004.1.tar                               

CLT:01/05/2013 17:20:21 Copying file F:\SMSSIG$\SP100005.1.tar to C:\SMSSIG$\SP100005.1.tar                               

CLT:01/05/2013 17:20:21 Copying Folder F:\SMSPKGF$                                                                        

CLT:01/05/2013 17:20:21 Moving F:\SMSPKGF$ to C:\SMSPKGC$                                                                 

CLT:01/05/2013 17:20:21 Creating directory C:\SMSPKGC$                                                                    

CLT:01/05/2013 17:20:21 Copying Folder F:\SCCMContentLib                                                                  

CLT:01/05/2013 17:20:21 Moving F:\SCCMContentLib to C:\SCCMContentLib

For Reference here is a screen shot of the source drive prior to running the ContentLibraryTransfer.exe process.

Also we can observe the current Content Library path at the following registry Key – HKLM\SOFTWARE\Microsoft\SMS\DP\ContentLibraryPath:

Once ContentLibraryTransfer.exe had completed, several items observed in the log can also be manually observed on the DP host system.

A NO_SMS_ON_DRIVE.SMS file has been created on the Source Drive.

 

And the complete content library has been moved, in this case from the C drive to F. NOTE: The Distribution Point Site System Role installation folder (SMS_DP$) remains where it was initially placed. This can be observed in the previous screen shot.    

Finally we can see there that the library path has been changed in the computers registry.

Other Observations:

The ContentLibraryTransfer.exe respects NO_SMS_ON_DRIVE.SMS files. In other words if the drive specified as the TargetDrive contains a NO_SMS_ON_DRIVE.SMS the ContentLibraryTransfer.exe will not copy the content library to this drive.

Output Block from ContentLibraryTransfer.exe (Click Image for a better view):

Conclusion:

The ability to move content from one drive to another has been a long requested SMS / Configuration Manager feature. Hats off to the Configuration Manager team for providing this simple yet effective tool.