Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zugriffsrechte von Ordnern mit VB-Script auslesen NEU

Mitglied: Kabadeluxe

Kabadeluxe (Level 1) - Jetzt verbinden

19.02.2013 um 13:27 Uhr, 2481 Aufrufe

Hallo

Ich habe mir mal erlaubt, einen Alten beitrag der schon 2 Jahre Alt ist nach vorne zu scheiben.
hier ist der Link vom Alten Forum:
https://www.administrator.de/forum/zugriffsrechte-von-ordnern-mit-vb-scr ...

Ich habe es kopiert, und in eine Excelliste eingefügt, und muss sagen ich bin sehr zufrieden. Ein Dank an den Scriptschrieber.

Nur ein Paar Fragen habe ich noch

Ich weiss nicht in welcher Spaten die Berechtigungen für Read Write..... und so weiter geschrieben werden.
Leider kenn ich mich nicht so gut aus, aber vieleicht hat jemand von euch etwas Ahnung und kann mir Helfen

Hier einmal der Ganze Code.

Option Explicit
Option Compare Text

Const FoldersPath = "D:\Temp" 'Start-Ordner

Const CsvFileName = "FolderUserRights.csv" 'Wird im Workbook-Pfad gespeichert

Const CsvDelim = ";" 'Beliebiges Trennzeichen festlegen
'______________________________________________________________________________________

'Spalte 1-4 = Path, Erstellungsdatum, Gruppe/Benutzername, G/B-Name-SID
Const CsvTextReserved = 4

'Control-Flag Infos verfügbar
Const SE_DACL_PRESENT = &H4

'Zugriffs-Flags, TitelText nach belieben festlegen
Const AF00 = "AF&;&H01;TitelText" 'OBJECT_INHERIT_ACE
Const AF01 = "AF&;&H02;TitelText" 'CONTAINER_INHERIT_ACE
Const AF02 = "AF&;&H04;TitelText" 'NO_PROPOGATE_INHERIT_ACE
Const AF03 = "AF&;&H08;TitelText" 'INHERIT_ONLY_ACE
Const AF04 = "AF&;&H10;TitelText" 'INHERIT_ACE"

'Zugriffs-Type
Const ATx0 = "AT=;&H00;TitelText" 'ACCESS_ALLOWED_ACE_TYPE

Const AT00 = "AT&;&H01;TitelText" 'ACCESS_DENIED_ACE_TYPE
Const AT01 = "AT&;&H02;TitelText" 'AUDIT

'Zugriffsrechte: Objektspezifisch
Const AM00 = "AM&;&H00000001;TitelText" 'DIR_LIST_DIRECTORY/FILE_READ_DATA
Const AM01 = "AM&;&H00000002;TitelText" 'DIR_ADD_FILE/FILE_WRITE_DATA
Const AM02 = "AM&;&H00000004;TitelText" 'DIR_ADD_SUBDIRECTORY/FILE_APPEND_DATA
Const AM03 = "AM&;&H00000008;TitelText" 'READ_NAMED_ATTRIBUTS
Const AM04 = "AM&;&H00000010;TitelText" 'WRITE_NAMED_ATTRIBUTS
Const AM05 = "AM&;&H00000020;TitelText" 'EXECUTE
Const AM06 = "AM&;&H00000040;TitelText" 'DELETE_CHILD
Const AM07 = "AM&;&H00000080;TitelText" 'READ_ATTRIBUTES
Const AM08 = "AM&;&H00000100;TitelText" 'WRITE_ATTRIBUTES

Const AMx1 = "AM=;&H001F01FF;TitelText" 'FILE_ALL_ACCESS"

'Zugriffsrechte: Standard --> Zugriffsrechte auf Objektspezifisch
Const AM16 = "AM&;&H00010000;TitelText" 'DELETE
Const AM17 = "AM&;&H00020000;TitelText" 'READ_ACL
Const AM18 = "AM&;&H00040000;TitelText" 'WRITE_ACL
Const AM19 = "AM&;&H00080000;TitelText" 'WRITE_OWNER
Const AM20 = "AM&;&H00100000;TitelText" 'SYNCHRONIZE

'Zugriffsrechte: Security-Descriptor SACL (System Access Control List)
Const AM24 = "AM&;&H01000000;TitelText" 'ACCESS_SYSTEM_SECURITY

'Zugriffsrechte Erweitert --> Zugriffsrechte auf Standard/Objektspezifisch
Const AM28 = "AM&;&H10000000;TitelText" 'GENERIC_ALL
Const AM29 = "AM&;&H20000000;TitelText" 'GENERIC_EXECUTE
Const AM30 = "AM&;&H40000000;TitelText" 'GENERIC_WRITE
Const AM31 = "AM&;&H80000000;TitelText" 'GENERIC_READ
'______________________________________________________________________________________

Const Msg0 = "Der Vorgang kann je nach Anzahl der Ordner einige Minuten dauern!"
Const Msg1 = "Der Csv-Export ist abgeschlossen."

Dim Fso As Object, ACL As Object, objWMIService As Object, CsvFile As Object
Dim CsvText As Variant, CsvSize As Integer

Sub GetFoldersAccessRights()
Dim CsvListe As Variant, CsvTitel As Variant, Token As Variant, i As Integer

If MsgBox(Msg0, vbOKCancel Or vbInformation, "Zugriffsrechte...") = vbCancel Then Exit Sub

CsvListe = Array(AF00, AF01, AF02, AF03, AF04, ATx0, AT00, AT01, AM00, AM01, AM02, AM03, AM04, AM05, AM06, AM07, AM08, AM16, AM17, AM18, AM19, AM20, AMx1)

CsvSize = UBound(CsvListe) + CsvTextReserved

ReDim CsvText(CsvSize): ReDim CsvTitel(CsvSize)

Set ACL = CreateObject("Scripting.Dictionary")

CsvTitel(0) = "Pfad"
CsvTitel(1) = "Erstellt"
CsvTitel(2) = "Benutzer"
CsvTitel(3) = "SID"

For i = 0 To UBound(CsvListe)
Token = Split(CsvListe(i), ";")
ACL.Add Token(0) & Hex(Token(1)), i + CsvTextReserved & ";" & Token(1)
CsvTitel(i + CsvTextReserved) = Token(2)
Next

Set Fso = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=Impersonate,(TakeOwnership)}!\\.\root\cimv2")

Set CsvFile = Fso.CreateTextFile(ThisWorkbook.Path & "\" & CsvFileName)

CsvFile.WriteLine Join(CsvTitel, ";")

Call GetFolder(Fso.GetFolder(FoldersPath)): CsvFile.Close

MsgBox Msg1, vbInformation, "Csv-Export..."
End Sub

Private Sub GetFolder(ByRef Folder)
Dim Subfolder As Object, i As Integer

CsvText(0) = Folder.Path

If Folder.Name = "" Then
CsvText(1) = ""
Else
CsvText(1) = FormatDateTime(Folder.DateCreated, vbShortDate)
End If

Call GetSecuritySettings(Folder)

On Error Resume Next

For Each Subfolder In Folder.SubFolders
If Err.Number = 0 Then
Call GetFolder(Subfolder)
Else
Err.Clear
Call WriteCsvFile("Zugriff verweigert")
End If
Next
End Sub

Private Sub GetSecuritySettings(ByRef Folder)
Dim objFSS As Object, objSD As Object, objACL As Variant
Dim LastName As String, DoWrite As Boolean, i As Integer

On Error Resume Next

Set objFSS = objWMIService.Get("Win32_LogicalFileSecuritySetting='" & Folder & "'")

If Err.Number <> 0 Then
Call WriteCsvFile("Nicht verfügbar"): Exit Sub
End If

On Error GoTo 0

If objFSS.GetSecurityDescriptor(objSD) = 0 Then
If (objSD.ControlFlags And SE_DACL_PRESENT) <> 0 Then
For Each objACL In objSD.DACL
With objACL
CsvText(2) = .Trustee.Name
CsvText(3) = .Trustee.SIDString

For i = 4 To CsvSize: CsvText(i) = "": Next

Call SetSecuritySettings("AM", .AccessMask)
Call SetSecuritySettings("AF", .AceFlags)
Call SetSecuritySettings("AT", .AceType)

CsvFile.WriteLine Join(CsvText, CsvDelim)
End With
Next
Else
Call WriteCsvFile("Nicht verfügbar")
End If
Else
Call WriteCsvFile("Nicht verfügbar")
End If
End Sub

Private Sub SetSecuritySettings(ByRef Target, ByVal Value)
Dim Key As Variant, Token As Variant

If ACL.Exists(Target & "=" & Hex(Value)) Then
Token = Split(ACL.Item(Target & "=" & Hex(Value)), ";")
CsvText(Token(0)) = "x"
Else
For Each Key In ACL.Keys
If Left(Key, 3) = Target & "&" Then
Token = Split(ACL.Item(Key), ";")
If (Value And CLng(Token(1))) Then CsvText(Token(0)) = "x"
End If
Next
End If
End Sub

Private Sub WriteCsvFile(ByRef Text)
Dim i As Integer

CsvText(2) = Text

For i = 3 To CsvSize: CsvText(i) = "": Next

CsvFile.WriteLine Join(CsvText, CsvDelim)
End Sub





Mich würde auch intreessieren, was das genau bedeutet





'Spalte 1-4 = Path, Erstellungsdatum, Gruppe/Benutzername, G/B-Name-SID
Const CsvTextReserved = 4

'Control-Flag Infos verfügbar
Const SE_DACL_PRESENT = &H4

'Zugriffs-Flags, TitelText nach belieben festlegen
Const AF00 = "AF&;&H01;TitelText" 'OBJECT_INHERIT_ACE
Const AF01 = "AF&;&H02;TitelText" 'CONTAINER_INHERIT_ACE
Const AF02 = "AF&;&H04;TitelText" 'NO_PROPOGATE_INHERIT_ACE
Const AF03 = "AF&;&H08;TitelText" 'INHERIT_ONLY_ACE
Const AF04 = "AF&;&H10;TitelText" 'INHERIT_ACE"

'Zugriffs-Type
Const ATx0 = "AT=;&H00;TitelText" 'ACCESS_ALLOWED_ACE_TYPE

Const AT00 = "AT&;&H01;TitelText" 'ACCESS_DENIED_ACE_TYPE
Const AT01 = "AT&;&H02;TitelText" 'AUDIT

'Zugriffsrechte: Objektspezifisch
Const AM00 = "AM&;&H00000001;TitelText" 'DIR_LIST_DIRECTORY/FILE_READ_DATA
Const AM01 = "AM&;&H00000002;TitelText" 'DIR_ADD_FILE/FILE_WRITE_DATA
Const AM02 = "AM&;&H00000004;TitelText" 'DIR_ADD_SUBDIRECTORY/FILE_APPEND_DATA
Const AM03 = "AM&;&H00000008;TitelText" 'READ_NAMED_ATTRIBUTS
Const AM04 = "AM&;&H00000010;TitelText" 'WRITE_NAMED_ATTRIBUTS
Const AM05 = "AM&;&H00000020;TitelText" 'EXECUTE
Const AM06 = "AM&;&H00000040;TitelText" 'DELETE_CHILD
Const AM07 = "AM&;&H00000080;TitelText" 'READ_ATTRIBUTES
Const AM08 = "AM&;&H00000100;TitelText" 'WRITE_ATTRIBUTES

Const AMx1 = "AM=;&H001F01FF;TitelText" 'FILE_ALL_ACCESS"

'Zugriffsrechte: Standard --> Zugriffsrechte auf Objektspezifisch
Const AM16 = "AM&;&H00010000;TitelText" 'DELETE
Const AM17 = "AM&;&H00020000;TitelText" 'READ_ACL
Const AM18 = "AM&;&H00040000;TitelText" 'WRITE_ACL
Const AM19 = "AM&;&H00080000;TitelText" 'WRITE_OWNER
Const AM20 = "AM&;&H00100000;TitelText" 'SYNCHRONIZE

'Zugriffsrechte: Security-Descriptor SACL (System Access Control List)
Const AM24 = "AM&;&H01000000;TitelText" 'ACCESS_SYSTEM_SECURITY

'Zugriffsrechte Erweitert --> Zugriffsrechte auf Standard/Objektspezifisch
Const AM28 = "AM&;&H10000000;TitelText" 'GENERIC_ALL
Const AM29 = "AM&;&H20000000;TitelText" 'GENERIC_EXECUTE
Const AM30 = "AM&;&H40000000;TitelText" 'GENERIC_WRITE
Const AM31 = "AM&;&H80000000;TitelText" 'GENERIC_READ

Danke schon mal an alle die mir Helfen

Gruss Thomas


PS: Ein echt spitzen Forum, hoffe ich kann auch mal jemanden Helfen
Ähnliche Inhalte
Entwicklung

VB Script gesucht um Videodateien auslesen zu können.

gelöst Frage von templierEntwicklung7 Kommentare

Hallo zusammen, ich habe einen Kunden der auf seinem SAN hunderte von Präsentationsvideos angesammelt hat. Diese sollen nun in ...

VB for Applications

VB Script rekursiv statt nur ein Ordner

gelöst Frage von SaschaaaaaVB for Applications4 Kommentare

Hallo Community, ich beginne gerade erst mich in die verschiedensten Sprachen einzulesen und habe momentan ein kleines Problem bei ...

VB for Applications

VB-Script in VB-Script starten und Parameter übergeben

gelöst Frage von denkisVB for Applications7 Kommentare

Hallo liebe Scriptgemeinde, ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche ...

VB for Applications

Neue Zeile in Excel per VB Script

gelöst Frage von TheFalconVB for Applications1 Kommentar

Hallo zusammen, ich habe ein Script welches soweit auch funktioniert. Ich möchte jetzt aber gerne, dass die Werte fortlaufend ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement17 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...