none
Anordnung einer GPO mit VB ändern RRS feed

  • Frage

  • Hallo Forum

    Ich suche eine Möglichkeit, mit einem VB Skript/Programm ein GPO z.B. vor die Default Domain Policy zu schieben. Lösungsmöglichkeiten mit der Powershell fallen leider aus. Mit RSOP_GPLink kann ich offenbar nur lesend auf die Linkorder zugreifen. Kennt jemand ein Codefragment in VB mit dem man die Reihenfolge ändern kann? Ich würde den ersten, der eine Lösung anbietet, in mein Nachtgebet aufnehmen:-)

    Danke

    fuzzi0815

    Dienstag, 22. Juli 2014 10:37

Antworten

  • > lesend auf die Linkorder zugreifen. Kennt jemand ein Codefragment in VB
    > mit dem man die Reihenfolge ändern kann? Ich würde den ersten, der eine
    > Lösung anbietet, in mein Nachtgebet aufnehmen:-)
     
    Dann fang schon mal an zu beten :-)
     
    Reihenfolge festlegen heißt "erst löschen, dann neu linken an der
    richtigen Position":
     
    name = "Name Deiner GPO..."
    strOU = "DN der OU relativ zur Domäne"    'Leer lassen für Link an der
    Domäne selbst
    intPos = 1        'Link-Position - "1" = ganz oben, "-1" = ganz unten
    bEnforced = False    'Erzwungen
     
    Set adSys = CreateObject("ADSystemInfo")
    strDomainName = adSys.DomainDNSName
     
    Set gpm = CreateObject( "GPMGMT.GPM" )
    Set Constants = GPM.GetConstants()
    Set gpmDomain = gpm.GetDomain( strDomainName, "", Constants.UseAnyDC )
    strLDAPSuffix = gpmDomain.GetSOM( "" ).Path
     
    Set objGPO = getGPObyName( name, gpmDomain )
     
    If strOU = "" Then
        Set objSOM = gpmDomain.GetSOM( strLDAPSuffix )
    Else
        Set objSOM = gpmDomain.GetSOM( strOU & "," & strLDAPSuffix )
    End If
     
    Set somGPOLinks = objSOM.GetGPOLinks
    For Each somGPOLink in somGPOLinks
        If UCase( objGPO.ID ) = UCase( somGPOLink.GPOID ) then
    somGPOLink.Delete
    Next
     
    Set somGPOLink  = objSOM.CreateGPOLink( intPos, objGPO )
    somGPOLink.enforced = bEnforced
    somGPOLink.enabled = True
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Dienstag, 22. Juli 2014 13:14
    Beantworter
  • > Vielen Dank für das Codebeispiel, welches ich gut nachvollziehen kann
     
    Was mir grad noch einfällt: Wenn Du ADSI-Skripting gut kannst, dann
    könntest Du auch das gPLink-Attribut der OUs auslesen und die Einträge
    darin neu sortieren. Ist im Ergebnis das gleiche :-)
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Mittwoch, 23. Juli 2014 10:28
    Beantworter

Alle Antworten

  • Hi Fuzzi,

    reicht es denn nicht, wenn Du in der Gruppenrichtlinienverwaltung rechts unter "Verknüpfte Gruppenrichtlinienobjekte" bzw. "Gruppenrichtlinienvererbung" Deine Richtlinie nach ganz oben schiebst?

    Gruß

    Ben

    Dienstag, 22. Juli 2014 12:33
  • > lesend auf die Linkorder zugreifen. Kennt jemand ein Codefragment in VB
    > mit dem man die Reihenfolge ändern kann? Ich würde den ersten, der eine
    > Lösung anbietet, in mein Nachtgebet aufnehmen:-)
     
    Dann fang schon mal an zu beten :-)
     
    Reihenfolge festlegen heißt "erst löschen, dann neu linken an der
    richtigen Position":
     
    name = "Name Deiner GPO..."
    strOU = "DN der OU relativ zur Domäne"    'Leer lassen für Link an der
    Domäne selbst
    intPos = 1        'Link-Position - "1" = ganz oben, "-1" = ganz unten
    bEnforced = False    'Erzwungen
     
    Set adSys = CreateObject("ADSystemInfo")
    strDomainName = adSys.DomainDNSName
     
    Set gpm = CreateObject( "GPMGMT.GPM" )
    Set Constants = GPM.GetConstants()
    Set gpmDomain = gpm.GetDomain( strDomainName, "", Constants.UseAnyDC )
    strLDAPSuffix = gpmDomain.GetSOM( "" ).Path
     
    Set objGPO = getGPObyName( name, gpmDomain )
     
    If strOU = "" Then
        Set objSOM = gpmDomain.GetSOM( strLDAPSuffix )
    Else
        Set objSOM = gpmDomain.GetSOM( strOU & "," & strLDAPSuffix )
    End If
     
    Set somGPOLinks = objSOM.GetGPOLinks
    For Each somGPOLink in somGPOLinks
        If UCase( objGPO.ID ) = UCase( somGPOLink.GPOID ) then
    somGPOLink.Delete
    Next
     
    Set somGPOLink  = objSOM.CreateGPOLink( intPos, objGPO )
    somGPOLink.enforced = bEnforced
    somGPOLink.enabled = True
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Dienstag, 22. Juli 2014 13:14
    Beantworter
  • Hi Ben

    Vielen Dank für deine Bemühungen. Ich suchte aber nach einer Lösung ohne Verwendung der Gruppenrichtlinienverwaltung. Die Lösung von Martin, die auf deine folgte, passt auf meine Anfrage sehr gut. Trotzdem Danke für die aufgewendete Zeit.

    Gruß

    fuzzi0815

    Dienstag, 22. Juli 2014 18:18
  • Hallo Martin

    Vielen Dank für das Codebeispiel, welches ich gut nachvollziehen kann und den Hinweis auf ein gutes Buch. Unser Projektetat wird die Beschaffung noch hergeben. Man kann nicht genug Literatur im Schrank haben und deines sollte offenbar nicht fehlen:-). Hab schon beim Anlesen einiges gelernt. 

    Vielen Dank für die aufgewendete Zeit.

    fuzzi0815

    Dienstag, 22. Juli 2014 18:40
  • > gutes Buch
     
    +1 :-)
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Mittwoch, 23. Juli 2014 07:03
    Beantworter
  • > Vielen Dank für das Codebeispiel, welches ich gut nachvollziehen kann
     
    Was mir grad noch einfällt: Wenn Du ADSI-Skripting gut kannst, dann
    könntest Du auch das gPLink-Attribut der OUs auslesen und die Einträge
    darin neu sortieren. Ist im Ergebnis das gleiche :-)
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Mittwoch, 23. Juli 2014 10:28
    Beantworter
  • Nice :-)

    MVP Group Policy - Mythen, Insiderinfos und Troubleshooting zum Thema GPOs: Let's go, use GPO!

    Mittwoch, 23. Juli 2014 12:23
    Beantworter
  •  
    > Nice :-)
     
    Um ehrlich zu sein: War schon fertig. War mal Bestandteil einer
    GP-Deployment-Lösung, die das Linken beherrschen musste :)
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Mittwoch, 23. Juli 2014 15:27
    Beantworter