Script sending package to one distribution point

This script will send out an existing package in the site hierarchy to a single DP in the site.

 

' Save as LoadSingleDP.vbs, watch line wrap

 

strSMSServer = "<centralsite>"

arrPackageIDs = "<pkgid>"

strSiteCode = "<sitecode>"

strServer = "<dpname>"

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)

      end if

Next

Set DPs = objSMS.ExecQuery _

      ("SELECT ServerName, SiteCode, NALPath " & _

      "FROM SMS_SystemResourceList " & _

      "WHERE (RoleName = 'SMS Distribution Point' AND SiteCode = '" & _

            strSiteCode & "' AND ServerName = '" & strServer & "')")

For Each DP In DPs

    Wscript.echo DP.SiteCode & vbTAB & DP.ServerName

    Set Site = objSMS.Get("SMS_Site='" & DP.SiteCode & "'")

      'create a list of packages already on the DP

      Set AlreadyOnDP = objSMS.ExecQuery _

            ("SELECT PackageID " & _

            "FROM SMS_DistributionPoint " & _

            "WHERE SiteCode='" & strSiteCode & "' " & _

            "AND ServerNalPath like '%" & strServer & "%'" )

      for each tmpDP in AlreadyOnDP

            strOnDP = strOnDP & tmpDP.PackageID

      next

      for each strPackageID in split(arrPackageIDs,",")

            'if it doesn't exist on that sitecode/server, then

            if instr(ucase(strOnDP), ucase(strPackageID)) = 0 then

                  wscript.echo "Adding " & strPackageID

                  Set newDP = objSMS.Get("SMS_DistributionPoint").SpawnInstance_()

            newDP.ServerNALPath = DP.NALPath

            newDP.PackageID = strPackageID

            newDP.SiteCode = DP.SiteCode

            newDP.SiteName = Site.SiteName

           newDP.Put_

           end if

      next

Next

Published Friday, February 13, 2009 12:26 PM by sthompson

Comments

No Comments
Powered by Community Server (Commercial Edition), by Telligent Systems