Zum Inhalt wechseln


Foto

Verknüpfungsreihenfolge GPO dokumentieren

Windows Server 2008 GPO

  • Bitte melde dich an um zu Antworten
6 Antworten in diesem Thema

#1 sg08234

sg08234

    Newbie

  • 96 Beiträge

 

Geschrieben 22. August 2016 - 01:51

Ich möchte gerne im SOM-Tree die Verknüpfungsreihenfolge meiner GPOs (Server 2008) dokumentieren und habe das Skript ListSOMPolicyTree.wsf aus den GPMC Sample Scripts wie folgt (fett) erweitert:

 

    Dim GPOLink
    Dim LinkSOM
    Dim strGPOName
    Dim strGPOOrder
    Dim iLinkOrder : iLinkOrder = 0

    For Each GPOLink in GPOLinks
        iLinkOrder = iLinkOrder + 1
        On Error Resume Next
        Set GPO = GPMDomain.GetGPO(GPOLink.GPOID)
        strGPOOrder = GPOLink.Order
        strGPOName = GPO.DisplayName
                
                If Err.Number <> 0 Then
            ' See if it failed because it's from a different domain
            If LCase(GPOLink.GPODomain) <> LCase(GPMDomain.Domain) Then
                strGPOName = "[Link to GPO in external domain]"
            Else
                ' Could not find the GPO - might be an orphaned link or
                ' we might not have read access
                strGPOName = "[Inaccessible]"
            End If
        End If

        ' See if this is an inherited link
        Set LinkSOM = GPOLink.SOM
        
        WScript.Echo strTab & "GPO=" & strGPOName & " - Verknuepfungsreihenfolge=" & strGPOOrder

 

Leider bleibt die Variable strGPOOrder leer: Was ist falsch?

Vielen Dank!
 



#2 NilsK

NilsK

    Expert Member

  • 12.457 Beiträge

 

Geschrieben 22. August 2016 - 06:59

Moin,

 

das lässt sich schlecht nachvollziehen, weil den Codeschnippsel unvollständig ist. Kannst du den bitte im Zusammenhang posten?

 

Ansonsten habe ich gerade mal nachgesehen. Das AD-Feld gpLink ist ja leider ziemlich ungünstig implementiert:

  • Es enthält mehrere Werte in einer eigenen Notation.
  • Alle GPO-Links sind in ein einziges Feld gequetscht und mit eckigen Klammern voneinander getrennt.
  • Innerhalb der einzelnen Einträge gibt es zwei Textinformationen: Den GUID des GPO und ein Bit, das über "enforced" oder "disabled" Auskunft gibt.
  • Darüber hinaus ist aber auch die Reihenfolge der Einträge von Relevanz: Sie gibt die Verarbeitungsreihenfolge an. Dabei steht das Objekt mit der höchsten Priorität am Ende der Liste.

Die Prio-Reihenfolge, die die GPMC darstellt, erhält man also, wenn man die Reihenfolge der Einträge in dem Feld umkehrt.

 

Mein AD-Doku-Tool José stellt die Reihenfolge/Priorität der Links korrekt dar, allerdings genau andersrum als die GPMC (José stellt die Reihenfolge der Verarbeitung dar, die GPMC stellt die höchste Prio an den Anfang der Liste). Ich habe für die nächste Version mal notiert, die Ausgabe der Links umzudrehen, damit sie der GPMC entspricht.

 

http://www.faq-o-matic.net/jose/

 

Gruß, Nils


Bearbeitet von NilsK, 22. August 2016 - 07:33.

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#3 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 22. August 2016 - 07:33

Vermutung: Du versuchst ein Array in eine einfache skalare Variable zu speichern. Das ist selbst noc h mit Powershell fehleranfällig.

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#4 sg08234

sg08234

    Newbie

  • 96 Beiträge

 

Geschrieben 22. August 2016 - 09:32

Nils: In der Anlage findest Du das komplette Skript (Original und von mir (ohne Erfolg) erweiterte Version).

 

Wo finde ich die Doku zum AD-Feld gpLink? Hab leider in der Glaskugel nichts Zielführendes gefunden

 

Wenn das zu kompliziert wird, werde ich mich mal in   http://www.faq-o-mat...tic.net/jose/  einlesen.

 

Vielen Dank! Michael

Angehängte Dateien



#5 NilsK

NilsK

    Expert Member

  • 12.457 Beiträge

 

Geschrieben 22. August 2016 - 10:00

Moin,

 

das Skript enthält im Original doch schon eine Variable für die Reihenfolge: iLinkOrder. Warum nimmst du die nicht?

 

Ansonsten müsste man jetzt die Javascript-Bibliothek durcharbeiten, um herauszufinden, was denn diese "Order"-Eigenschaft überhaupt enthält. Das ist mir jetzt zu mühselig.

Das Problem ist, wie du schon richtig erkannt hast, dass die Informationen im Detail leider nicht besonders gut dokumentiert sind. Meine Kenntnisse darüber stammen aus meiner eigenen Analyse.

 

Mit José baust du dir mit wenigen Mausklicks einen Report, der sogar noch mehr Informationen enthält. Es gibt sogar schon eine fertige Definitionsdatei dafür: !Gruppenrichtlinien.txt

 

EDIT: Gut, okay, ich habe doch noch mal nachgesehen. Die Lösung ist einfach: Die Property "Order", die dein Skript anzusprechen versucht, gibt es gar nicht. Wie bist du denn auf die Idee gekommen?!

Die richtige Eigenschaft lautet "SOMLinkOrder".

Aber: Wie ich schon vermutete, ist deren Wert immer identisch zu dem Wert von iLinkOrder, den man viel einfacher erhält (nämlich durch Mitzählen) und der im Skript bereits enthalten ist.

Und: Noch dazu muss man die Reihenfolge auch gar nicht benennen, denn sie entspricht der Reihenfolge der ausgegebenen Werte.

 

Nimm José ... die Reihenfolge ist dort auch dieselbe.

 

Gruß, Nils


Bearbeitet von NilsK, 22. August 2016 - 10:23.

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#6 sg08234

sg08234

    Newbie

  • 96 Beiträge

 

Geschrieben 23. August 2016 - 02:20

Da habe ich falsch geschaut: Die GPos werden in der richtigen Reihenfolge angelistet.

 

Property "Order": Habe ich aus https://msdn.microso...s(v=vs.85).aspx assoziiert.

 

Ich werde mich trotzdem (zusätzlich, weil die GPMC-Skripte bieten Backup und Restore von GPOs) in   http://www.faq-o-mat...tic.net/jose/  einlesen (Dokumentation des gesamten ADs).

 

Vielen Dank für die Hilfe!



#7 NilsK

NilsK

    Expert Member

  • 12.457 Beiträge

 

Geschrieben 23. August 2016 - 11:22   Lösung

Moin,

 

hm, da scheint es, als würde Microsoft an verschiedenen Stellen mit unterschiedlichen Bezeichungen arbeiten. Dein Link bezieht sich, wenn ich das richtig deute, auf einen anderen Namespace innerhalb des GPMC-Objektmodells.

 

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!




Auch mit einem oder mehreren der folgenden Tags versehen: Windows Server 2008, GPO