none
SCCM 2012 SP1 and Powershell: Can't add Machine to collection with specific User rights RRS feed

  • Frage

  • Hello everybody,

    We face some problem when creating a new machine account and trying to add it to a specific collection with a direct rule (Powershell script below). We have 2 Users:

    User Y: Security Role: "Full Administrator" and Assigned Security Scopes and collections: All instances... (Admin for all Regions)
    User X: Security Role: "Full Administrator" and Assigned Security Scopes and collections: Security Scopes "RegionABC - Collection" and "Default - Security Scope". (Admin only for RegionABC)

    When User X executes the script it fails (doing the same steps in console is working!). 
    For User Y the script works fine.

    Background:

    In this case we have 2 Collections involved:
    1.Coll_RegionABC
    2.Coll_Windows7 (Limiting Collection is: Coll_RegionABC, User X should not be able to view all machines in Coll_Windows7)

    Script:

    $SiteServer = "SiteServer"
    $SiteCode = "CAS"
    $ResourceName = "Test-PC-New"
    $MACAddress = "12:12:12:13:13:13"
    $CollectionName = "Coll_Windows7"

    #Collection query
        $CollectionQuery = Get-WmiObject -Namespace Root\SMS\Site_$SiteCode -Class SMS_Collection -ComputerName $SiteServer -Filter "Name='$CollectionName'"
     
        #New computer account information
        $WMIConnection = ([WMIClass]"\\$SiteServer\root\SMS\Site_${SiteCode}:SMS_Site")
            $NewEntry = $WMIConnection.psbase.GetMethodParameters("ImportMachineEntry")
            $NewEntry.MACAddress = $MACAddress
            $NewEntry.NetbiosName = $ResourceName
            $NewEntry.OverwriteExistingRecord = $True
        $Resource = $WMIConnection.psbase.InvokeMethod("ImportMachineEntry",$NewEntry,$null)
     
        #Create the Direct MemberShip Rule
        $NewRule = ([WMIClass]"\\$SiteServer\root\SMS\Site_${SiteCode}:SMS_CollectionRuleDirect").CreateInstance()
        $NewRule.ResourceClassName = "SMS_R_SYSTEM"
        $NewRule.ResourceID = $Resource.ResourceID
        $NewRule.Rulename = $ResourceName
     
        #Add the newly created machine to collection
        $CollectionQuery.AddMemberShipRule($NewRule)

    Has somebody an Idea about this or had a similar problem?

    Thank you very much in advance!

    Montag, 22. April 2013 14:36

Antworten

  • Ich vermute, dass dann die AdminConsole noch nicht auf SP1CU1 aktualisiert worden ist. Klicke mal oben links in der Console auf das blaue "Ding" -> "About Configuration Manager". Die Version sollte dann .1202 sein. Wenn nicht, dann Console aktualisieren. Das cmdlet funktioniert definitiv mit SP1CU1.

    Torsten Meringer | http://www.mssccmfaq.de

    Dienstag, 23. April 2013 13:17
    Beantworter

Alle Antworten

  • Du kannst in einem deutschen Forum gerne deutsch posten ;-)
    Welche Fehlermeldung kommt denn genau? Was passiert, wenn Du das cmdlet Import-CMComputerInformation (http://technet.microsoft.com/en-us/library/jj821991.aspx)?

    Torsten Meringer | http://www.mssccmfaq.de

    Montag, 22. April 2013 15:16
    Beantworter
  • Na gut dann gerne auf deutsch :)
    Vielen Dank erstmal für die schnelle Antwort.

    Sorry hätte ich noch adden sollen, die Fehlermeldung:

    Ausnahme beim Aufrufen von "AddMembershipRule": "Allgemeiner Fehler "
    Bei D:\ImportMachineAccount.ps1:36 Zeichen:39
    +     $CollectionQuery.AddMemberShipRule <<<< ($NewRule)
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : WMIMethodException

    Das erstellen der Maschine funktioniert, nur das Hinzufügen der Maschine zur Collection  funktioniert nicht. Das cmdlet Import-CMComputerinformation probiere ich sobald wie möglich aus und berichte dann nochmal.

    Dienstag, 23. April 2013 09:23
  • Das cmdlet "Import-CMComputerInformation" scheint nicht zu funktionieren. Bekomme immer folgende Meldung:
    WARNING: The collection Coll_Windows7 does not exist or is not suitable for adding the new device.

    Unabhängig von collection oder ausführendem User. Also selbe Meldung mit Full Administrator und collection All Systems.

    In den englischen Foren habe ich eine Info über einen Bug in dem cmdlet gefunden welcher allerdings mit SP1 CU1 behoben sein sollte.
    http://social.technet.microsoft.com/Forums/de-DE/configmanagersdk/thread/0976acef-7b16-42f7-aba9-dd774af878b2
    Wir haben in der Umgebung SP1 CU1 installiert, es scheint aber noch nicht zu funktionieren, da der beschriebene Bug immernoch der selbe ist.

    Dienstag, 23. April 2013 12:58
  • Ich vermute, dass dann die AdminConsole noch nicht auf SP1CU1 aktualisiert worden ist. Klicke mal oben links in der Console auf das blaue "Ding" -> "About Configuration Manager". Die Version sollte dann .1202 sein. Wenn nicht, dann Console aktualisieren. Das cmdlet funktioniert definitiv mit SP1CU1.

    Torsten Meringer | http://www.mssccmfaq.de

    Dienstag, 23. April 2013 13:17
    Beantworter
  • Jap richtig, AdminConsole war nicht aktualisiert. Wusste nicht dass das damit zusammenhängt.
    Das cmdlet funktioniert dann einwandfrei!

    Vielen Dank!

    Dienstag, 23. April 2013 13:41
  • Tip:

    mit dem CU1(auch sp1) werden auch Pakete erstellt die das ganze updaten. Einfach die Pakete verteilen und alles ist auf dem richtigem Stand


    • Bearbeitet Sanw Dienstag, 23. April 2013 17:02
    Dienstag, 23. April 2013 17:02
  • Oder noch besser: statt der klassischen Paket einfach die Updates per SCUP verteilen. Das entsprechende .cab-File liegt unter \hotfix\KB2817245\SCUP.

    Torsten Meringer | http://www.mssccmfaq.de

    Dienstag, 23. April 2013 18:28
    Beantworter