Kuddel071089 9 Geschrieben 9. Oktober 2014 Melden Teilen Geschrieben 9. Oktober 2014 Hallo zusammen, wir räumen gerade unsere AD ein wenig auf. Jetzt haben wir ein paar Gruppen gefunden, zu denen wir kein Verzeichnis auf dem Filesystem mehr finden können. GIbt es eine Möglichkeit auszulesen, ob und auf welches Verezichnis eine Gruppe Schreib/Leserechte hat ? Wäre super wenn wir das irgendwie auslesen könnten, um sicher zu gehen, dass die Gruppe überflüssig ist. Danke schon einmal Gruß Kuddel Zitieren Link zu diesem Kommentar
samsam 14 Geschrieben 9. Oktober 2014 Melden Teilen Geschrieben 9. Oktober 2014 Moin, hier ist PowerShell Skript: PowerShell to Find Where Your Active Directory Groups Are Used On File Shares http://blogs.technet.com/b/ashleymcglone/archive/2014/03/17/powershell-to-find-where-your-active-directory-groups-are-used-on-file-shares.aspx MFG Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 9. Oktober 2014 Autor Melden Teilen Geschrieben 9. Oktober 2014 Okay. Danke schonmal. Wenn ich jetzt unter ./paths.txt einen Pfad angebe, bekomme ich angezeigt welche Gruppe Berechtigungen auf die Verzeichnisse haben. Auch nützlich, aber nicht das, was ich eigentlich suche. Mir schwebt ein Script vor, wo ich nach eine Gruppe gefragt werde wie z.B. "Personalabteilung-RW" und bekomme als Ergebnis, dass die Gruppe Schreibrechte auf das Verzeichnis "Personalabteilung" hat Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 9. Oktober 2014 Melden Teilen Geschrieben 9. Oktober 2014 Da das Script rekursiv durch die Verzeichnisse läuft, könntest ja als Pfad einfach z.B. D:\ angeben. Dann noch bissle umbauen, dass da nicht für jeden Pfad ne CSV-Datei erzeigt wird und beim "acl.access" ins Where noch die IdentityReference filtern auf Deine Gruppe... Allerdings würde ich an Deiner Stelle tatsächlich einfach mal alles auslesen in eine große CSV und dann mit Excel-Bordmitteln darin nach Deinen Gruppen suchen... Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 9. Oktober 2014 Autor Melden Teilen Geschrieben 9. Oktober 2014 Da das Script rekursiv durch die Verzeichnisse läuft, könntest ja als Pfad einfach z.B. D:\ angeben. Dann noch bissle umbauen, dass da nicht für jeden Pfad ne CSV-Datei erzeigt wird und beim "acl.access" ins Where noch die IdentityReference filtern auf Deine Gruppe... Allerdings würde ich an Deiner Stelle tatsächlich einfach mal alles auslesen in eine große CSV und dann mit Excel-Bordmitteln darin nach Deinen Gruppen suchen... Hallo Cyberquest. Danke für die Antwort. Leider bin ich noch ein total Anfänger was PowerShell angeht, da wir gerade erst unser Novell eDiretory zu MS AD migriert haben. Ich bräuchte dann noch ein wenig Hilfe bei der Anpassung des Scripts Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 9. Oktober 2014 Melden Teilen Geschrieben 9. Oktober 2014 Ich bräuchte dann noch ein wenig Hilfe bei der Anpassung des Scripts Zeig doch das Script her, das bisher schon im Einsatz ist. Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 9. Oktober 2014 Autor Melden Teilen Geschrieben 9. Oktober 2014 Zeig doch das Script her, das bisher schon im Einsatz ist. http://blogs.technet.com/b/ashleymcglone/archive/2014/03/17/powershell-to-find-where-your-active-directory-groups-are-used-on-file-shares.aspx Das war mein Ansatz, aber wirklich weiter bin ich noch nicht Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 9. Oktober 2014 Melden Teilen Geschrieben 9. Oktober 2014 Du hast auch das komplette Script aus der Gallery gedownloadet und schon laufen lassen? Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 9. Oktober 2014 Melden Teilen Geschrieben 9. Oktober 2014 (bearbeitet) $CsvFile = "C:\D_LW.csv" $Path= "D:\" "Path;Identity;Rights" | Out-File $CsvFile Get-ChildItem $Path -Recurse | where {$_.PsIsContainer} | foreach{ $FullName = $_.FullName $ACLs= @((Get-ACL $_.FullName).Access) | sort $ACLs | Where-Object {$_.IsInherited -eq $false} | foreach{ $Identity=$_.IdentityReference $FileSystemRights=$_.FileSystemRights "$FullName;$Identity;$FileSystemRights" | Out-File $CsvFile -Append } } Zum Testen bei Path evtl erst mal nicht gleich mit D:\ anfangen sondern ein Verzeichnis. Könnte sonst recht lange laufen... bearbeitet 9. Oktober 2014 von Cybquest Zitieren Link zu diesem Kommentar
NilsK 2.930 Geschrieben 9. Oktober 2014 Melden Teilen Geschrieben 9. Oktober 2014 Moin, "könnte sonst recht lange laufen" ist etwas, das man bei solchen Ansätzen sehr ernst nehmen sollte. Sowas kann einen größeren Dateiserver stundenlang komplett in die Knie zwingen. Nicht umsonst kosten professionelle Tools für sowas richtig Geld, weil sie auf solche Dinge Rücksicht nehmen. Gruß, Nils 1 Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 10. Oktober 2014 Autor Melden Teilen Geschrieben 10. Oktober 2014 Also bis jetzt bin ich so weit Write-Host "Pfad zur Auswertung angeben" Write-Host "" Write-Host "Beispiel: \\DOMAIN\DFS\PFAD" Write-Host "" #Eingabe des Pfades $Path = Read-Host "Eingabe" #Speichern des Ergebnisses in einer CSV-Datei Function Get-SaveFile($initialDirectory) { [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null $SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog $SaveFileDialog.initialDirectory = $initialDirectory $SaveFileDialog.filter = "CSVFile (*.csv)| *.csv" $SaveFileDialog.ShowDialog() | Out-Null $SaveFileDialog.filename } # open dialog box to select the .nessuss file. $CsvFile = Get-SaveFile "Path;Identity;Rights" | Out-File $CsvFile Get-ChildItem $Path -Recurse | where {$_.PsIsContainer} | foreach{ $FullName = $_.FullName $ACLs= @((Get-ACL $_.FullName).Access) | sort $ACLs | Where-Object {$_.IsInherited -eq $false} | foreach{ $Identity=$_.IdentityReference $FileSystemRights=$_.FileSystemRights "$FullName;$Identity;$FileSystemRights" | Out-File $CsvFile -Append } } Funktioniert, ist nur leider ein wenig umständlich, weil: 1. Ich muss danach noch die CSV-Datei nach meiner Gruppe dursuchen 2. Es kann dauern, wenn ich alle Ordner eines kompletten Standortes durchsuchen Vllt hat ja noch jmd eine Idee wie ich mein Problem evtl besser lösen kann Zitieren Link zu diesem Kommentar
NilsK 2.930 Geschrieben 10. Oktober 2014 Melden Teilen Geschrieben 10. Oktober 2014 Moin, mach so etwas immer nur lokal, nicht über das Netzwerk. Und: Schau, ob du etwas findest, was effizienter und performanter arbeitet als PowerShell. Die PowerShell ist prima, weil flexibel - aber sie ist ganz sicher nicht schnell. Ich weiß nicht, ob dies hier noch funktioniert: [Wie kann ich Berechtigungen dokumentieren? | faq-o-matic.net]http://www.faq-o-matic.net/2004/09/10/wie-kann-ich-berechtigungen-dokumentieren/ Auch SetACL solltest du dir dafür ansehen: [setACL Command Line-Version (SetACL.exe) - Syntax and Description]https://helgeklein.com/setacl/documentation/command-line-version-setacl-exe/ Gruß, Nils Zitieren Link zu diesem Kommentar
daabm 1.348 Geschrieben 10. Oktober 2014 Melden Teilen Geschrieben 10. Oktober 2014 ...und zu guter Letzt geht es auch - ganz trivial - mit icacls /save - da stehen dann zwar nur SIDs in SDDL drin, aber um Ressourcen zu finden, für die eine Gruppe berechtigt ist, reicht das allemal. Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 11. Oktober 2014 Melden Teilen Geschrieben 11. Oktober 2014 ...und zu guter Letzt geht es auch - ganz trivial - mit icacls /save - da stehen dann zwar nur SIDs in SDDL drin, aber um Ressourcen zu finden, für die eine Gruppe berechtigt ist, reicht das allemal. Naja, den Gruppennamen kann man auch auslesen: http://www.faq-o-matic.net/2004/09/10/wie-kann-ich-zu-einem-namen-den-sid-security-identifier-herausfinden/ http://joeware.net/freetools/tools/sidtoname/index.htm Und per Powershell: http://blogs.msmvps.com/ad/blog/2010/10/07/using-powershell-to-resolve-sids-to-friendly-names-2/ Zitieren Link zu diesem Kommentar
daabm 1.348 Geschrieben 11. Oktober 2014 Melden Teilen Geschrieben 11. Oktober 2014 Jaja, weiß ich doch :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.