bernds
Goto Top

Auslesen von Freigabeberechtigungen

Gibt es ein Commandline-Tool zum Auslesen von Freigabeberechtigungen?

Hallo erstmal! Wirklich nette Seite hier, bin schon öfter durch googeln hier gewesen, aber jetzt habe ich eine Frage die noch nicht gestellt wurde und daher habe ich mich angemeldet face-wink

Los geht's:

Wenn ich unter XP Pro die einfache Dateifreigabe deaktiviert habe, ist es ja bekanntermassen möglich für verschiedene User auch verschiedene Freigabeberechtigungen zu erstellen.

Beim Aufruf von "net share" von der Eingabeaufforderung erhalte ich ja die Übersicht meiner aktuellen Freigaben und Pfade mit Kommentaren, aber leider nicht die einzelnen Berechtigungen. Tools mit GUI gibt es wie Sand am Meer, aber leider keine auf Commandline-Basis. Das benötige ich jedoch da ich es per Umleitung in eine Text-Datei speichern und danach auswerten möchte. (commandlinetool.exe > %temp%\shares.tmp).

Gibt es da eine Möglichkeit? Weder googlen, noch das Lesen und Anfragen in anderen Foren hat mir bisher geholfen.

Laut dem Homepage-Titel müsste es ja hier jemanden geben, der das wissen müsste. Wenn nicht hier, wo denn dann? face-wink

Ich hoffe, jemand kann mir helfen. Danke schon einmal im Voraus!

MfG,
Bernd

Content-ID: 12722

Url: https://administrator.de/contentid/12722

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

8644
8644 05.07.2005, aktualisiert am 17.10.2012 um 15:39:06 Uhr
Goto Top
Moin,

eine Möglichkeit ist cacls

so kannst du das ganze auch dokumentieren:

for /r d: %a in (.) do cacls %a >>"d:\test.txt"

habe ich auch hier im Forum gefunden, muß es auch irgendwo einen Beitrag geben.

Psycho

Edit: habs gefunden:

HowTo... Benutzerrechte anzeigen über alle Verzeichnisse hinweg
BerndS
BerndS 05.07.2005 um 09:46:08 Uhr
Goto Top
Danke für die schnelle Antwort face-smile

Aber ist es nicht so, dass da ist doch ein Unterschied zwischen Sicherheitsberechtigungen und Freigabeberechtigungen.
Ich suche aber nach den Freigabeberechtigungen.

Beispiel:
net share

Name________Ressource________Beschreibung
Test1________D:\Testordner1________Testfreigabe
Test2________E:\Testordner2________Eine weitere Testfreigabe
Der Befehl wurde erfolgreich ausgeführt.

Ich möchte aber etwas in der Art:
Name: Test1
Ressource: D:\Testordner1
Beschreibung: Testfreigabe
Rechte:
Administrator: Ändern, Lesen
User1: Lesen
Verweigern:
User2: Lesen

Name: Test2
Ressource: E:\Testordner2
Beschreibung: Eine weitere Testfreigabe
Rechte:
Administrator: Lesen
User2: Ändern, Lesen
Verweigern:
User1: Lesen

usw.

Falls ich bei der gegebenen Lösung etwas übersehen habe, lasse ich mich natürlich gerne eines besseren belehren face-wink

MfG,
Bernd
Biber
Biber 05.07.2005 um 11:07:56 Uhr
Goto Top
Moin Bernd,

was Deiner Nur-Freigabe-Ordner-Liste halbwegs nahe kommt, ist:
   for /f "tokens=2 skip=2" %i in ('net share^|find ":"') do @cacls %i   

bzw. falls Du showacls.exe hast:
   for /f "tokens=2,* skip=2" %i in ('net share^|find ":"') do @showacls %i   
(nimmt sich diesem Fall nicht viel vom Output, Showacls ist ein bisschen lesbarer)

Output mit showacls für alle freigegeben Ordner:
C:\WINDOWS
________VORDEFINIERT\Benutzer     Special Access [RX]
________VORDEFINIERT\Hauptbenutzer Special Access [RWXD]
________VORDEFINIERT\Administratoren Special Access [A]
________NT-AUTORIT©¤T\SYSTEM       Special Access [A]
________ERSTELLER-BESITZER        Special Access [A]

D:\Biber\share
________DOMAINXY\USERFRITZ (DENIED) Special Access [DdrwarEwEfx]
________Jeder                     Full Control [ALL]
......
etc..
Kannst natürlich den Einzeiler noch ein bisschen verfeinern, dann bekommst Du sicherlich auch die Beschreibung mit rein.

Hope It Helps

Frank / der Biber aus Bremen


P.S. @psycho Dad:
for /r d: %a in (.) do cacls %a >>"d:\test.txt" ...................(funktioniert oft)
for /r d: %a in (.) do cacls "%a" >>"d:\test.txt" ................(funktioniert immer) face-wink
BerndS
BerndS 05.07.2005 um 12:27:27 Uhr
Goto Top
@Biber: Yes, that's it!

Manchmal ist es so simpel face-wink

Da hätte ich auch selber draufkommen können.

Mit einfachsten Bordmitteln kann man - genügend Hirnwindungen vorrausgesetzt face-wink - so viel machen, nur darauf kommen muss man erst ein Mal.

Vielen Dank!

MfG
Bernd
BerndS
BerndS 05.07.2005 um 15:21:24 Uhr
Goto Top
Verflixt, ich glaube doch zu früh gefreut... face-wink

Gerade mal genauer mit beschäftigt und festgestellt, dass ich auch wieder die Sicherheitsberechtigungen und nicht die Freigabeberechtigungen angezeigt bekomme.

Wenn ich mit rmtshare einen Ordner freigebe, z. B.

rmtshare \\127.0.0.1\Dateien=V:\Data /users:2 /remove Jeder /grant Peter:r /grant Nicole:r

So gebe ich ja den Ordner V:\Data als \\localhost\Dateien frei. Zwei User dürfen gleichzeitig daraufzugreifen und in diesem Fall haben auch nur zwei User Lesezugriff, nämlich Peter und Nicole. Dem vordefinierten Nutzer "Jeder" habe ich natürlich alle Rechte entzogen.

Diese Informationen, die ich über rmtshare manuell gesetzt habe, möchte ich wieder auslesen können, also wirklich auf FREIGABE- und NICHT auf lokaler SICHERHEITSebene.

Freue mich auf neue Vorschläge face-wink

Danke schon Mal!

MfG,
Bernd
Biber
Biber 05.07.2005 um 15:52:02 Uhr
Goto Top
Och Menno, Bernd,

da kasper ich minutenlang mit dem For-Befehl rum und Du wolltest ganz was anderes *grmmbbll*..

Gegenvorschlag:
Im Windows ResKit gibt es eine SrvCheck.exe, nimm die...

Beispieloutput
>[Path2ResKit]SrvCheck.exe \\%computername%

\\BIBERSEINER\share
________Jeder           Full Control
________DOMAINXY\USERFRITZ        Full Control


oder interaktiv in einer Ein-Zeilen-"CheckShares.Bat", ggf. noch ein " & pause" dahinter:
(SET /P C=Computername eingeben: ) & x:\M$\ResKit\SrvCheck.exe \\!C!
Hope That Fits

Frank / der Biber aus Bremen
BerndS
BerndS 05.07.2005 um 16:00:21 Uhr
Goto Top
face-smile

Das ist es diesmal wirklich.

Endlich mal einen Nutzen für die vielen Tools aus dem Resource Kit face-wink

Spitzenboard hier. Superschnelle und hilfreiche Antworten!

Vielen, vielen Dank! (besonders an Biber, der sich nie aufgegeben hat und immer einen nachzulegen wußte face-wink )

MfG,
Bernd