Moving the SMSSIG$ and SMSPKGSIG folders in SCCM

Just by reading the title of this post you can rest assured that the s**t hit the fan on one of my SCCM Primary Sites today!  One of our drives was almost full and it turned out that the SMSSIG$ folder was the culprit.

First you should ask yourself, how did this happen?  How did I get here?  Same as it ever was.  Ahh….I digress. 

Well, for starters you should have the No_SMS_on_drive.sms file in the root of all drives that you don’t want SCCM to use.  For Distribution Points SCCM uses the drive with the most amount of free space.  Once that drive fills up it will use the next drive with the most freespace.  I am not sure that was my issue since I did have that file in the root of the drive that was filling up.  But, I certainly could have put it there after the SMSSIG$ folder was created.

The next step is to ensure that the Site Settings > Component Configuration > Software Distribution > Location of stored packages has the drive letter of the drive you want the SMSSIG$ folder on.  In my case it was set to Z:\.  I don’t have a Z: drive.  At this point you are probably asking yourself “Hey Matthew, what kind of shop are you running there?”.  I don’t know really!  But, I do know how to fix the issue.

First I Googled “moving SMSSIG$ folder” and came across this article:  http://www.myitforum.com/articles/1/view.asp?id=12833

You will notice that the article states that the SQL Update command has to be run for each packageID.  Well, I had over 300, so like, um….yeah…that wasn’t happening.

Enter our best friend PowerShell.  Here is the PowerShell script based on the article above.  You will see that I am changing the drive from I$ to H$.  Note:  read the article above, don’t just execute the PowerShell code.  The article states that this should be done on all of the parents of the site in question.

Add-PSSnapin SqlServerCmdletSnapin100
$SQLCMD = Invoke-Sqlcmd "SELECT * FROM PkgStatus WHERE Sitecode = 'p01' and Type = 1 and location like '%i$%'"
foreach ($i in $SQLCMD)
	{
	$NewLocation = $i.location.replace("I$", "H$")
	$NewLocation = "'" + $NewLocation + "'"
	$i.ID = "'" + $i.ID + "'"
#	$i.ID
#	$NewLocation
	$NewSQLCMD = "UPDATE PkgStatus SET Location = $NewLocation WHERE Sitecode = 'P01' and Type = 1 and ID = " + $i.ID
	$NewSQLCMD
	Invoke-Sqlcmd $NewSQLCMD
	}

Then I figured I better move the SMSPKGSIG folder as well.  Instructions here:  http://www.myitforum.com/articles/1/view.asp?id=11981

I followed all of this up by creating a package and sending it to the DP in question and all is well.

About these ads
This entry was posted in Uncategorized. Bookmark the permalink.

One Response to Moving the SMSSIG$ and SMSPKGSIG folders in SCCM

  1. Mark says:

    http://technet.microsoft.com/en-us/library/bb680614.aspx states that “SMSSIG$ is created on the drive with the most free space.” The article at http://www.myitforum.com/articles/1/view.asp?id=12833 solves a different problem: how to move the compressed site to site files. However, nice script for moving the compressed site to site files. ;)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s