What is NO_SMS_ON_DRIVE.SMS File ?
In Configuration Manager, the NO_SMS_ON_DRIVE.SMS file prevents site system role component installation. It also prevents the content library from being installed on a specific drive. When you place the NO_SMS_ON_DRIVE.SMS file on a drive, site role components will be installed on a different NTFS formatted disk drive.
Admins who have been working on Configuration Manager since version 2007 surely know the importance of NO_SMS_ON_DRIVE.SMS file. Even today, with Configuration Manager current branch, the NO SMS ON DRIVE.SMS file is still valid and in use.
I place this file on every distribution point server that I create. It is also a best practice to hide this file once you create it to prevent from deletion.
Table of Contents
What is NO_SMS_ON_DRIVE.SMS file ?
The NO_SMS_ON_DRIVE.SMS file is a empty file that you place on a drive to prevent Configuration Manager placing the files on drive. Configuration Manager will not install site role component files on a drive that contains a file named NO_SMS_ON_DRIVE.SMS.
To prevent the content library from being installed on a specific drive, you create an empty file named NO_SMS_ON_DRIVE. Copy it to the root of the drive before the content library is created.
When this file is placed on the content library drive, it also prevents the content distribution to the server. I will do a small test at the end of this post to prove this point.
How does NO_SMS_ON_DRIVE.SMS file works ?
Practical Example – You have prepared a Windows server to install the SCCM distribution point role. You are very clear that you want all the files to be placed on another drive and not on root drive. At one point you specify the SCCM Distribution Point drive settings and specify the drive where SCCM creates the content library.
If the drive that you specified is hardly left with any space, the Configuration Manager tries to place the files in next available drive which is C:\ drive. This is not what you want and at any cost you don’t want the files to be saved to C:\ drive. This is where SMS file comes into picture.
When you place the NO_SMS_ON_DRIVE.SMS file on the C:\ drive it restricts the Configuration Manager to place any files on that drive. If site role installation files are already present on the drive before placing the SMS file on the drive, the installation files are not moved.
How do I Create NO_SMS_ON_DRIVE.SMS file ?
The steps to create the NO_SMS_ON_DRIVE.SMS file include.
- Login to the server that is supposed to be installed with distribution point role.
- Navigate to Root Drive (C:\ Drive).
- Right click anywhere and create a new Text Document. This is a empty file.
- Rename this file as NO_SMS_ON_DRIVE.SMS. Note that the extension of this file should be .SMS.
So what happens when you place the NO SMS ON DRIVE.SMS file on your content library drive ?. Do not try this on your production server because it will halt the content distribution. This is a just a test. I will be placing this file on my content library drive.
Next, I will redistribute an application to this distribution point server. As a matter of fact every thing that you distribute fails.
With this file present on the content library drive on DP, the content distribution fails with the following errors.
- Failed to find a valid drive on the distribution point
- Failed to take snapshot of one or more contents in package MEM0000A
Delete the SMS file and redistribute the content to the distribution point server, the content distribution works perfectly fine. I hope you understood what NO_SMS_ON_DRIVE.SMS file is and how to create it and use it effectively.
Don’t know if you covered this problem yet, but I have a site server containing the primary site/management point et. al. – it’s not acting as a distribution point. During the installation, we forgot to set the NO_SMS_ON_DRIVE.SMS in drive C – I have now discovered that the drive is being filled up by SCCMContentLib, SMSPKG and SMSPKGSIG folders, which is less than ideal.
Is there a way to move these files and folders to another drive without braking the consistency of the server? I have looked into the “contentlibrarytransfer.exe” from the ServerTools folder, but it’s most likely aimed towards distribution points, which this is not.
I have an issue with our sql cluster. Both nodes have a local E drive, which is not clustered. On node 1 the E drive has the no_sms file, but on node 2 the E drive does not have the no_sms file. When a fail over occurs from node 2 to node 1 SCCM gives sms_site_component_manager errors referencing sql. I followed those errors and I believe I need to remove the no_sms file from node 1. My theory is that once removed the sql backup service will reinstall and failovers will work again. IS that correct? Is there a way to install that service or does it do it itself?