Jump to content

Haken: Berechtigungen übergeordneter Objekte


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

sofern vererbbar, über alle untergeordneten Objekte verbreiten.

 

Hallo Gemeinde,

 

dieser Haken ist in den Computerkonten (die in OUs) nicht gesetzt, deshalb werden die Sicherheitseinstellungen der OUs nicht übernommen. Ich finde keine Möglichkeit, den Haken für alle Konten in einem Rutsch zu setzen im Snap-In und das auch für künftige hinzukommende Konten zu fixieren.

 

Hat bitte jemand einen Tipp für mich?

 

Habt Dank für Aufmerksamkeit und Rat.

 

Edgar

Link zu diesem Kommentar

Hi Edgar,

 

vielleicht hilft Dir der folgende Link weiter? Jorge 's Quest For Knowledge! : Script to set/clear INHERITANCE flag on AD objects

 

Als Grundlage kannst Du auch das folgende AdminSDHolder VBScript verwenden. "Einfach" die Objekttypen ändern und die Bedingung "Admincount=1" entfernen etc.: Delegated permissions are not available and inheritance is automatically disabled

 

Vorher testen. :p

 

Viele Grüße

olc

Link zu diesem Kommentar

Hallo olc,

 

dank für die Tipps. Ich muss mal schauen, ob mich das weiterbringt. :confused:

 

Damit bekomme ich tatsächlich den Haken gesetzt, leider muss ich da jedes Objekt einzeln behandeln. Da kann ich das auch händisch machen.

 

' ========= VBScript program ===========
' VBScript program to toggle "allow inheritable permissions from
' parent to propagate to this object" on the Security tab of the object.

Option Explicit
Const SE_DACL_PROTECTED = &H1000
Dim objADObject, objNtSecurityDescriptor, intNtSecurityDescriptorControl

' Distinguished Name of user object hard coded.
Set objADObject = GetObject("LDAP://cn=[b]R411-PC01,ou=R411,ou=rooms,dc=1Lubeca,dc=loc[/b]")

' Retreive security descriptor object for this object.
Set objNtSecurityDescriptor = objADObject.Get("ntSecurityDescriptor")

' Retrieve control settings.
intNtSecurityDescriptorControl = objNtSecurityDescriptor.Control

' Toggle the bit for "allow inheritable permissions".
intNtSecurityDescriptorControl = intNtSecurityDescriptorControl Xor SE_DACL_PROTECTED

' Save control settings in the security descriptor object.
objNtSecurityDescriptor.Control = intNtSecurityDescriptorControl

' Save the security descriptor object.
objADObject.Put "ntSecurityDescriptor", objNtSecurityDescriptor

' Update the user object.
objADObject.SetInfo

Wscript.Echo "Done"
' ========= VBScript program ===========

 

Ich werde mir mal die anderen Sachen anschauen.

Link zu diesem Kommentar

Bei diesem Skript sehe ich leider nicht, wo ich da etwas anpassen kann.

 

'********************************************************************
'*
'* File:           ResetAccountsadminSDHolder.vbs 
'* Created:        November 2003
'* Version:        1.0
'*
'*  Main Function:  Resets all accounts that have adminCount = 1 back
'*	to 0 and enables the inheritance flag
'*
'*  ResetAccountsadminSDHolder.vbs 
'*
'* Copyright (C) 2003 Microsoft Corporation
'*
'********************************************************************

Const SE_DACL_PROTECTED = 4096

On Error Resume Next

Dim sDomain
Dim sADsPath
Dim sPDC


Dim oCon 
Dim oCmd
Dim oRst
Set oRst = CreateObject("ADODB.Recordset")
Set oCmd = CreateObject("ADODB.Command")
Set oCon = CreateObject("ADODB.Connection")

Dim oRoot
Dim oDomain
Dim oADInfo
Dim oInfo
Set oADInfo = CreateObject("ADSystemInfo")
Set oInfo = CreateObject("WinNTSystemInfo")
sPDC = oInfo.PDC & "." & oADInfo.DomainDNSName

oCon.Provider = "ADSDSOObject"
oCon.Open "Active Directory Provider"

oCmd.ActiveConnection = oCon

Set oRoot = GetObject("LDAP://rootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
sADsPath = "<" & oDomain.ADsPath & ">"

oCmd.CommandText = "SELECT ADsPath FROM 'LDAP://" & sPDC & "/" & sDomain & "' WHERE objectCategory='person' and objectClass = 'user' AND adminCount = 1"
Set oRst = oCmd.Execute

WScript.Echo "searching for objects with 'admin count = 1' in " & sDomain

If oRst.RecordCount = 0 Then
   WScript.Echo "no accounts found"
   WScript.Quit
End If

Do While Not oRst.EOF
   WScript.Echo  "found object " & oRst.Fields("ADsPath")
   If SetInheritanceFlag(oRst.Fields("ADsPath")) = 0 Then WScript.Echo "Inheritance flag set"
   If SetAdminCount(oRst.Fields("ADsPath"), 0) = 0 Then WScript.Echo "adminCount set to 0"
   WScript.Echo  "=========================================="
   oRst.MoveNext
Loop


Private Function SetInheritanceFlag(DSObjectPath)

   Dim oSD
   Dim oDACL
   Dim lFlag
   Dim oIADs

   Set oIADs = GetObject(DSObjectPath)

   Set oSD = oIADs.Get("nTSecurityDescriptor")

   If oSD.Control And SE_DACL_PROTECTED Then
       oSD.Control = oSD.Control - SE_DACL_PROTECTED
   End If

   oIADs.Put "nTSecurityDescriptor", oSD
   oIADs.SetInfo

   If Err.Number <> 0 Then
       SetInheritanceFlag = Err.Number
   Else
       SetInheritanceFlag = 0
   End If

End Function


Private Function SetAdminCount(DSObjectPath, AdminCount)

   Dim oIADs
   Dim iAdminCount

   Set oIADs = GetObject(DSObjectPath)

   iAdminCount = oIADs.Get("adminCount")

   If iAdminCount = 1 Then iAdminCount = 0

   oIADs.Put "adminCount", iAdminCount
   oIADs.SetInfo
   If Err.Number <> 0 Then
       SetAdminCount = Err.Number
   Else
       SetAdminCount = 0
   End If

End Function

Link zu diesem Kommentar

Hi Edgar,

 

versuche es einmal in der Art (ungetestet):

 

'********************************************************************
'*
'* File:           ResetAccountsadminSDHolder.vbs 
'* Created:        November 2003
'* Version:        1.0
'*
'*  Main Function:  Resets all accounts that have adminCount = 1 back
'*	to 0 and enables the inheritance flag
'*
'*  ResetAccountsadminSDHolder.vbs 
'*
'* Copyright (C) 2003 Microsoft Corporation
'*
'********************************************************************

Const SE_DACL_PROTECTED = 4096

On Error Resume Next

Dim sDomain
Dim sADsPath
Dim sPDC


Dim oCon 
Dim oCmd
Dim oRst
Set oRst = CreateObject("ADODB.Recordset")
Set oCmd = CreateObject("ADODB.Command")
Set oCon = CreateObject("ADODB.Connection")

Dim oRoot
Dim oDomain
Dim oADInfo
Dim oInfo
Set oADInfo = CreateObject("ADSystemInfo")
Set oInfo = CreateObject("WinNTSystemInfo")
sPDC = oInfo.PDC & "." & oADInfo.DomainDNSName

oCon.Provider = "ADSDSOObject"
oCon.Open "Active Directory Provider"

oCmd.ActiveConnection = oCon

Set oRoot = GetObject("LDAP://rootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
sADsPath = "<" & oDomain.ADsPath & ">"

[b][color="Red"]oCmd.CommandText = "SELECT ADsPath FROM 'LDAP://" & sPDC & "/" & sDomain & "' WHERE objectCategory='computer' and objectClass = 'computer'"
[/color][/b]Set oRst = oCmd.Execute

[b][color="Red"]WScript.Echo "searching for computer objects in " & sDomain[/color][/b]

If oRst.RecordCount = 0 Then
   WScript.Echo "no accounts found"
   WScript.Quit
End If

Do While Not oRst.EOF
   WScript.Echo  "found object " & oRst.Fields("ADsPath")
   If SetInheritanceFlag(oRst.Fields("ADsPath")) = 0 Then WScript.Echo "Inheritance flag set"
[b][color="Red"]'* entfernt    If SetAdminCount(oRst.Fields("ADsPath"), 0) = 0 Then WScript.Echo "adminCount set to 0"[/color][/b]
   WScript.Echo  "=========================================="
   oRst.MoveNext
Loop


Private Function SetInheritanceFlag(DSObjectPath)

   Dim oSD
   Dim oDACL
   Dim lFlag
   Dim oIADs

   Set oIADs = GetObject(DSObjectPath)

   Set oSD = oIADs.Get("nTSecurityDescriptor")

   If oSD.Control And SE_DACL_PROTECTED Then
       oSD.Control = oSD.Control - SE_DACL_PROTECTED
   End If

   oIADs.Put "nTSecurityDescriptor", oSD
   oIADs.SetInfo

   If Err.Number <> 0 Then
       SetInheritanceFlag = Err.Number
   Else
       SetInheritanceFlag = 0
   End If

End Function


[b][color="Red"]'* entfernt Private Function SetAdminCount(DSObjectPath, AdminCount)
'*
'*    Dim oIADs
'*    Dim iAdminCount
'*
'*    Set oIADs = GetObject(DSObjectPath)
'*
'*    iAdminCount = oIADs.Get("adminCount")
'*
'*    If iAdminCount = 1 Then iAdminCount = 0
'*
'*    oIADs.Put "adminCount", iAdminCount
'*    oIADs.SetInfo
'*    If Err.Number <> 0 Then
'*        SetAdminCount = Err.Number
'*    Else
'*        SetAdminCount = 0
'*    End If

'* End Function

[/color][/b]

 

Das sollte bei allen in der Domäne vorhandenen Computer Objekten das "Inheritance Flag" setzen.

 

Viele Grüße

olc

Link zu diesem Kommentar
  • 1 Monat später...

Hallo, ich muss für unzählige eigenständige Server ein Prüfscript bauen und u.a.

Verzeichnisse prüfen ob der Haken bei

"allow inheritable permissions......" "übergeordnete Berechtigungen...."

unter der erweitert Lasche der Sicherheitsoptionen deaktiviert ist.

 

Ich finde unzählige Sachen zu AD Objekten oder aber wie man die Berechtigung setzt ich muss sie aber lediglich auslesen.

 

Bin noch frisch im VBS und gerade die SecurityDescriptor Sachen sind ziemlich verwirrend.

 

Wäre Euch echt dankbar für Hilfe.

 

lg

Bergi

Link zu diesem Kommentar
Ja, FAST genauso. Erstelle einen neuen Thread, eventuell mit einem Verweis auf diesen ...

 

Mei o mei ich komm mir fast vor wie Hr. Löw und die seltsamen UEFA Entscheidungen.

 

Ok ich mach einen neuen Thread auf, sehe zwar keinen Sinn denn ich will genau die Personen aus diesem Thread ansprechen da diese sich auch damit auskennen aber ok....

 

bergi

Link zu diesem Kommentar

Der Sinn ist einfach, dass in einem Thema nicht mehrere Anfragen vermischt werden. Der TO fragt nach Berechtigungen bzw. Vererbungen für Computerobjekte im Active Directory, Du fragst nach NTFS-Berechtigungen, was ja etwas vollkommen Verschiedenes ist. Der nächste, der sowas sucht, wird wahrscheinlich eher fündig, wenn man es auseinander hält ...

Im Übrigen hast Du die Regeln anerkannt, als Du hier einen Account erstellt hast. Diese Regeln sind ja nicht erstellt worden, um Euch zu ärgern ...

Also beim nächsten Mal bitte gleich so ... :)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...