The script refreshes all packages and what's interesting to note is that it doesn't matter that the drive on the old server wasn't the same location. Of course, if you are rebuilding for production use and have a specific drive to use, put the NO_SMS_ON_DRIVE file where you don't want it to create it and be mindful of the bandwidth to whatever site because it will transmit all the packages again.
This isn't the same as adding packages to a DP that was never on it and will only refresh the packages SCCM shows up with the server.
The script below reads from a list of packageIDs that I exported into a txt file.
Check the distmgr.log on the site server where the DP is to see the progress.
A note that if your site is multi-site hierarchy, you'll need to enter the site code where the DP is in not the parent site where the package was distributed from.
Dim StrSMSServer, DPs, ObjFS, StrFile, ts, strPackageID, DP
'On Error Resume Next
strSMSServer = ""
strDPserver = ""
strSMSSiteCode = ""
Set objLoc = CreateObject("WbemScripting.SWbemLocator")
Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms")
Set Results = objSMS.ExecQuery _
("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true")
For each Loc in Results
If Loc.ProviderForLocalSite = True Then
Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _
Loc.SiteCode)
'strSiteCode = Loc.SiteCode
end if
Next
Set objFS = CreateObject("Scripting.FileSystemObject")
strFile = "c:\dp1.txt"
Set objFile = objFS.GetFile(strFile)
Set ts = objFile.OpenAsTextStream(1,-2)
Do Until ts.AtEndOfStream
strPackageID = ts.Readline()
Set DPs = objSMS.ExecQuery ("Select * From SMS_DistributionPoint WHERE ServerNALPath like '%" & strDPserver & "%' and siteCode='" & strSMSSiteCode & "' and PackageID='" & strPackageID & "'")
For Each DP In DPs
wscript.echo strPackageID
DP.RefreshNow = True
DP.Put_
Next
Loop
No comments:
Post a Comment