Replace the Hardware for a Secondary Site

One way to replace the hardware for a Secondary Site

from Sherry ==> Tools needed:

  1. Preinst.exe from SMS 2003 Toolkit 2
  2. PreLoadPkgonSite also from SMS 2003 Toolkit 2
  3. CloneDP, installed (pre-req of .Net 2)
  4. Script or method to enumerate .pkg files in X:smspkg
  5. MPTroubleshooter also from SMS2003 Toolkit 2

Resources needed locally on the new server:

  1. SMS 2003 Setup files
  2. If secondary is to be a proxy MP, setup files for the Operating System
  3. Restored or copied from old server, X:smspkg
  4. Restored or copied from old server, X:smspkgx$ **  (Any steps marked with a ** are optional, see footnote)

Resources needed remotely: Rights and ability to remote into any primary sites above the secondary site to be replaced. Timeline – There are 4 time frames

  1. Tasks that can done before the new hardware is shipped to the destination; but could also be done once hardware arrives at new location.
  2. Tasks done after the new hardware has arrived.
  3. Work done after SMS 2003 reinstalled
  4. Follow up the next day.

Prior to shipping hardware

  1. From a local Distribution Point, copy otherserverx$smspkg to x:smspkg
  2. From a local Distribution Point, copy otherserverx$smspkgx$ to x:smspkgx$ **
  3. Copy SMS 2003 setup files to x:SMSToolssetup
  4. Copy PreloadPkgonSite.exe to x:SMSTools
  5. Copy PreloadBuild.vbs to x:SMSTools

The above steps could also be done once the hardware arrives at the destination, or restored from backup–if you backup your secondary (which we don’t normally) Hardware arrived

  1. Optional: if you copied smspkg & smspkgx$ over from ServerOld to ServerNew a significant time ago, you may want to do a Delta copy just before starting.  Otherwise, if you preloadpkgonsite of an old version of a pkg file, those packages will need to be re-replicated from the parent.
  2. On Current Server, Disable the SMS Services so they do not launch automatically following a reboot.
  3. Rename current Server to ServerName_OLD, change IP address from static to dhcp. Reboot.
  4. On new hardware, rename to ServerName, change IP from dhcp to static. Reboot.
  5. Install IIS with BITS. If IIS had been installed under the old name, uninstall IIS, then reinstall IIS. This is to ensure the iis usernames are defined correctly.
  6. Follow the EdNet instructions for removing the Secondary Site from the Primary Site(s) databases, and deleting any jobs. These instructions use the preinst.exe toolkit tool at the Primary Site, and Query Analyzer. (
  7. Remove the SMS entries for the server in Active Directory for the server itself, and for the MP record. (in the OU SystemSystem Management, SMS-Site-xxx, and SMS-MP-xxx-ServerName)
  8. At the Primary Site(s), remove the Standard Sender Address for the secondary site.  Wait a minute or so.
  9. At the Primary Sites(s), create a new Standard Sender Address for the secondary site.
  10. At the secondary site, unshare smspkge$ & rename to smspkge_old (you’ll move files later)**
  11. At the secondary site, install SMS from smstools…setup.exe, Advanced Security, Remote Tools enabled.
  12. Monitor smslogs*.log files for errors
  13. Monitor Active Directory Users and Computers, the OU System/System Management, for SMS-Site-Rxx to appear.
  14. At the direct Primary site, refresh Site hierarchy occasionally. When you see the site reappear, configure boundaries, Addresses, client Agents, Discovery Methods. Configure Site Systems to be a Management Point, and Distribution Point with BITS.
  15. At the secondary site, monitor smslogsmpsetup.log for success/failure.
    If failed, stop and troubleshoot. Multiple problems can occur with this step. Too many to detail here.
    If success, run the MP troubleshooter to verify.

SMS Reinstalled

  1. Push down 1 (smallish) package. Monitor the Secondary Site recreating smspkge$ share, and putting the new package in there.
  2. Highlight all the folders in smspkge_old, and verify the ntfs permissions match what they should be in the new smspkge$. Reset as necessary. Once satisfied permissions are correct, Move all the folders (except the new one you just had rebuilt) to the new smspkge$. You can delete smspkge_old when done (there should only be 1 folder left). **
  3. At the secondary, go to a command prompt. CD to x:smspkg Pick 1 package. Type in x:smstoolspreloadpkgonsite PackageID (without the .pkg extension, i.e., x:smstoolspreloadpkgonsite TST00012)
  4. A success message looks like this:
    Forward package status for pkg C0100012 to site C01
    ****** Successfully set the Compressed Package Path on this site ******
    ****** Successfully forwarded the information up the hierarchy ******
    If you got a different message (a failure message), try a different package. If all Packages fail, you may need to check that *.pkg are all Read-only.
  5. Following the success message, monitor distmgr.log on the Secondary to confirm that package’s info has been sent.
  6. At the Central Site, add the (new) Secondary site distribution point to that 1 package.
  7. Monitor Sender.log at the server(s). Monitor Package Status at the Primary Site server(s).
  8. Once you are satisfied the process works, use this script to create a batch file in e:smspkg to run preloadpkgonsite against all the .pkg files.
  9. Edit: instead of steps 9, 10, 11; check out Marcus Oh’s blog entry on using PreloadPkgOnSite
    Create a preloadbuild.vbs file with the below in e:smstools. Then start, run wscript e:smstoolspreloadbuild.vbs
    The script (correct the variables for your environment/server; the E: drive may not be correct for you):
    set fso = wscript.CreateObject(“Scripting.FileSystemObject”)
    set fo = fso.getFolder(“e:smspkg”)
    set fc = fo.Files
    set TheFile = fso.createtextfile(“e:smspkgpreload.bat”,True)
    For each file in fc
    TheArray = Split(file,””, -1, 1)
    StrNameToLoad = Left(TheArray(2),8)
    theFile.writeline “e:smstoolspreloadpkgonsite ” & strNameToLoad & ” >> e:smstoolspreload1.txt”
  10. Now that you have a e:smspkgpreload.bat, go to a cmd prompt, and switch to e:smspkg. Type in preload.bat, and wait.
  11. When it is done, open up e:smstoolspreload1.txt and verify the majority of the entries are “successfully forwarded”. It’s OK if there are a few errors, but if all are errors, there may be a problem.
  12. Watch distmgr.log on the secondary; wait for it to complete sending up packages (how long depends upon how many packages you have, this can take quite a while for me).
  13. After waiting, add the new DP to a package at the Central Site, and confirm via watching sender.log that the entire package is indeed NOT being replicated downward.
  14. Once you’ve confirmed that, run CloneDP, and pick a similar Secondary Site to Clone to the new one. It may take quite a while for CloneDP to go through the entire list of packages to Clone. This is normal; just wait.

CloneDP usage

  1. Launch
  2. SMS Primary Site Server = your Primary Site Server that has the packages, OK
  3. Select an existing Distribution Point, pick a Site Code, a DP, drag & drop the server name to the Packages Source List
  4. Select Destination of the new site
  5. Click “Assign Packages to DP”.
  6. This is the point where “waiting” begins; or the “go to bed and check on it in the morning” step!

Follow up the Next day

  1. The following day, check Package Status. For any packages that appear not to have worked, you may need to update all Distribution Points for that 1 package.

** Why are these optional?  In our environment, if for some reason there is an “emergency” software installation which may need to occur before a Secondary can be fully rebuilt, the local technicians can browse to the smspkgx$ share, the folder, and manually install software.  For that reason, we copy over the smspkgx$ folders, etc.  As SMS unpacks the .pkg files into smspkgx$, the folders are replaced.

Leave a Comment