none
Assign Package to Distribution Group RRS feed

  • Frage

  • Hallo zusammen,

    kann mir einer ev. weiterhelfen, wie man per VBScript einem Package eine Distribution Group zuweist.

    Ich habe mehrere Distribution Points, die in einer Gruppe zusammengefasst sind. Diese Group soll dem Paket zugewiesen werden...

    Das Verfahren um einen Distribution Point zu zuweisen kenn ich. Ich bekomm es nur nicht hin eine ganze Group dem Paket zu zuweisen.

    Wäre dankbar um Unterstützung bzw. Hilfe.

    Gruß

    Thommy

    Donnerstag, 12. August 2010 13:09

Antworten

  • Probier's mal so:

    '**************************************************************************************
    ' Verbindung zum SCCM Server aufbauen
    '**************************************************************************************
    Dim objLocator, con, providerLocation, siteCode, serverName
    Set objLocator = CreateObject("WbemScripting.SWbemLocator")
    Set con = objLocator.ConnectServer(".", "root\sms")
    Set providerLocation = con.InstancesOf("SMS_ProviderLocation")

    For Each location In providerLocation
        If location.ProviderForLocalSite = True Then
            Set con = objLocator.ConnectServer(location.Machine, "root\sms\site_" & location.SiteCode)
            siteCode = location.SiteCode
            serverName = location.Machine
            Exit For
        Else
            WScript.Quit
        End If
    Next       

    '**************************************************************************************
    ' Distribution Point Group
    '**************************************************************************************
    sGroup = "Standard DPs"
    Set services = GetObject("winmgmts://" & serverName & "/root/sms/site_" & siteCode)

    Set DPgrps = services.ExecQuery("SELECT sGroupName,arrNALPath FROM SMS_DistributionPointGroup")

    For each DP in DPgrps
     if lcase(DP.sGroupName) = lcase(sGroup) then
      for x = lbound(DP.arrNALpath) to ubound(DP.arrNALpath)
       wscript.echo DP.arrNALpath(x)
      next
     end if
    next

     

    • Als Antwort markiert Thommy' Montag, 16. August 2010 17:40
    Montag, 16. August 2010 08:42
    Beantworter

Alle Antworten

  • Du musst einfach ermitteln, welche DPs in der DP group sind und dann jeden DP einzeln zuweisen.
    Donnerstag, 12. August 2010 13:58
    Beantworter
  • Wie sieht das dann im konkreten aus?

    Ich habe folgendes versucht:

    'Gruppenname, in der all meine Distribution Points sind

    sGroup = "Standard DPs"

    'Servername

    serverName = "SRVTEST01"

    'Sitecode

    siteCode = "A1"

    Set services = GetObject("winmgmts://" & serverName & "/root/sms/site_" & siteCode)

    On Error Resume Next

    Set dpGroup = services.Get("SMS_DistributionPointGroup.sGroupName='" & sGroup & "'")

    For Each dp In dpGroup

        msgbox dp

        'Assign to package....

    Next

     

    Es kommt eine Fehlermeldung. Mache ich im vorne rein beim Auslesen schon etwas falsch?

    Vielleicht hat mir einer ein Beispiel?

    Donnerstag, 12. August 2010 14:14
  • SMS_DistributionPointGroup beinhaltet alle DP-Groups (sGroupName). Die Mitglieder der Gruppe sind im Array arrNALPath zu finden.
    Donnerstag, 12. August 2010 16:30
    Beantworter
  • OK, das passt soweit. Er bringt mir jetzt nur einen Fehler an der fett markierten Stelle:

    "Invalid Object Path"

    Müsste eigentlich richtig sein oder habe ich da etwas übersehen?

    '**************************************************************************************
    ' Verbindung zum SCCM Server aufbauen
    '**************************************************************************************
    Dim objLocator, con, providerLocation, siteCode, serverName
    Set objLocator = CreateObject("WbemScripting.SWbemLocator")
    Set con = objLocator.ConnectServer(".", "root\sms")
    Set providerLocation = con.InstancesOf("SMS_ProviderLocation")

    For Each location In providerLocation
        If location.ProviderForLocalSite = True Then
            Set con = objLocator.ConnectServer(location.Machine, "root\sms\site_" & location.SiteCode)
            siteCode = location.SiteCode
            serverName = location.Machine
            Exit For
        Else
            WScript.Quit
        End If
    Next       

    '**************************************************************************************
    ' Distribution Point Group
    '**************************************************************************************
    sGroup = "Standard DPs"
    Set services = GetObject("winmgmts://" & serverName & "/root/sms/site_" & siteCode)
    Set dpGroup = services.Get("SMS_DistributionPointGroup.sGroupName = '" & sGroup & "'")
    For Each dp in dpGroup
        For Each d in dpGroup.arrNALPath
            If d = dp.NALPath Then
                msgbox d
            End If
        Next
    Next

    Freitag, 13. August 2010 11:54
  • Probier's mal so:

    '**************************************************************************************
    ' Verbindung zum SCCM Server aufbauen
    '**************************************************************************************
    Dim objLocator, con, providerLocation, siteCode, serverName
    Set objLocator = CreateObject("WbemScripting.SWbemLocator")
    Set con = objLocator.ConnectServer(".", "root\sms")
    Set providerLocation = con.InstancesOf("SMS_ProviderLocation")

    For Each location In providerLocation
        If location.ProviderForLocalSite = True Then
            Set con = objLocator.ConnectServer(location.Machine, "root\sms\site_" & location.SiteCode)
            siteCode = location.SiteCode
            serverName = location.Machine
            Exit For
        Else
            WScript.Quit
        End If
    Next       

    '**************************************************************************************
    ' Distribution Point Group
    '**************************************************************************************
    sGroup = "Standard DPs"
    Set services = GetObject("winmgmts://" & serverName & "/root/sms/site_" & siteCode)

    Set DPgrps = services.ExecQuery("SELECT sGroupName,arrNALPath FROM SMS_DistributionPointGroup")

    For each DP in DPgrps
     if lcase(DP.sGroupName) = lcase(sGroup) then
      for x = lbound(DP.arrNALpath) to ubound(DP.arrNALpath)
       wscript.echo DP.arrNALpath(x)
      next
     end if
    next

     

    • Als Antwort markiert Thommy' Montag, 16. August 2010 17:40
    Montag, 16. August 2010 08:42
    Beantworter