
42687
20.07.2009, aktualisiert um 11:57:05 Uhr
Berechtigungen eines Freigegebenen Verzeichnisses mit cacls bearbeiten schlägt fehl
Hallo,
ich bin schon am Verzeifeln.
Ich habe folgenden Code-Ausschnitt:
Die Variablen sind alle gesetzt. (%pfad% entspricht z.B. \\server\SNW)
Wenn ich aber das Verzeichnis \\server\SNW\test wähle geht es.
Was ist das Faul?
Danke für eure Hilfe...
ich bin schon am Verzeifeln.
Ich habe folgenden Code-Ausschnitt:
Die Variablen sind alle gesetzt. (%pfad% entspricht z.B. \\server\SNW)
cacls %pfad% /e /c /P %domaene%\Admin:f SNW\Useradmin:c SNW\Lehrer:c /D SNW\schueler
Wenn ich aber das Verzeichnis \\server\SNW\test wähle geht es.
Was ist das Faul?
Danke für eure Hilfe...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 120836
Url: https://administrator.de/forum/berechtigungen-eines-freigegebenen-verzeichnisses-mit-cacls-bearbeiten-schlaegt-fehl-120836.html
Ausgedruckt am: 10.04.2025 um 11:04 Uhr
22 Kommentare
Neuester Kommentar
Hi,
die Pfade kommen über die Nutzereingabe rein. Existiert dort nur ein Leer- oder Sonderzeichen geht alles schief, da Du die meisten Zeilen nicht in Hochkommata gestellt hast.
Wenn es daran nicht liegt dann stell vor den cacls-Befehl ein echo und lass Dir anzeigen was tatsächlich dort drinsteht.
Gruss,
Destry
die Pfade kommen über die Nutzereingabe rein. Existiert dort nur ein Leer- oder Sonderzeichen geht alles schief, da Du die meisten Zeilen nicht in Hochkommata gestellt hast.
Wenn es daran nicht liegt dann stell vor den cacls-Befehl ein echo und lass Dir anzeigen was tatsächlich dort drinsteht.
Gruss,
Destry
Hallo Peter,
das ist ein Hochkomma: "
Hochkommata sind mehrere Hochkomma. Also: " " " "
Du solltest das echo in Dein Script schreiben. Vor den cacls-Befehl.
Also statt:
bitte:
Wenn Du dann Dein Skript ausprobierst wird am Ende der cacls-Befehl nicht ausgeführt sondern nur angezeigt.
Bei dieser Anzeige werden auch alle Variablen aufgelöst und Du kannst sehen auf welchen Pfad der cacls-Befehl angewandt wird.
Das sollte Dir die Möglichkeit geben zu prüfen ob der Pfad tatsächlich existiert, bzw. richtig übermittelt wird.
Gruss,
Destry
das ist ein Hochkomma: "
Hochkommata sind mehrere Hochkomma. Also: " " " "
Du solltest das echo in Dein Script schreiben. Vor den cacls-Befehl.
Also statt:
cacls %pfad% /e /c /P %domaene%\Admin:f SNW\Useradmin:c SNW\Lehrer:c /D SNW\schueler
bitte:
echo cacls %pfad% /e /c /P %domaene%\Admin:f SNW\Useradmin:c SNW\Lehrer:c /D SNW\schueler
Wenn Du dann Dein Skript ausprobierst wird am Ende der cacls-Befehl nicht ausgeführt sondern nur angezeigt.
Bei dieser Anzeige werden auch alle Variablen aufgelöst und Du kannst sehen auf welchen Pfad der cacls-Befehl angewandt wird.
Das sollte Dir die Möglichkeit geben zu prüfen ob der Pfad tatsächlich existiert, bzw. richtig übermittelt wird.
Gruss,
Destry
Ja.
Ich kenne keinen anderen Weg.
Besser wäre es Du lässt die Ebene der Freigabe in Ruhe und erstellst darunter Ordner auf denen Du dann die Rechte anpasst.
Also statt ändern auf "c:\temp". Ordner erstellen wie "c:\temp\temp1" und "c:\temp\temp2", usw.
Freigabe auf "c:\temp" setzen. Den Ordner "c:\temp" einmalig mit den richtigen Rechten versehen, z.B. "Jeder\lesen" und dann die Rechte auf den Unterordnern "..\temp1" und "temp2", usw. anpassen.
Gruss,
Destry
Ich kenne keinen anderen Weg.
Besser wäre es Du lässt die Ebene der Freigabe in Ruhe und erstellst darunter Ordner auf denen Du dann die Rechte anpasst.
Also statt ändern auf "c:\temp". Ordner erstellen wie "c:\temp\temp1" und "c:\temp\temp2", usw.
Freigabe auf "c:\temp" setzen. Den Ordner "c:\temp" einmalig mit den richtigen Rechten versehen, z.B. "Jeder\lesen" und dann die Rechte auf den Unterordnern "..\temp1" und "temp2", usw. anpassen.
Gruss,
Destry
Ich glaube Du kennst die versteckten Standardfreigaben nicht.
Jeder Rechner hat normalerweise die Standardfreigaben "C$" und "Admin$. "C$" gibt es übrigens für jede Partition, also auch "D$", "E$", usw..
Probier mal auf Deiner Maschine auf der Kommandozeile ein: dir \\DEIN_RECHNERNAME\c$" aus. Dann verstehst Du vielleicht was ich meine.
Gruss,
Destry
Jeder Rechner hat normalerweise die Standardfreigaben "C$" und "Admin$. "C$" gibt es übrigens für jede Partition, also auch "D$", "E$", usw..
Probier mal auf Deiner Maschine auf der Kommandozeile ein: dir \\DEIN_RECHNERNAME\c$" aus. Dann verstehst Du vielleicht was ich meine.
Gruss,
Destry
Aha.
Nimm doch von "R:\test\SNW" den Teil nach dem Doppelpunkt, also "\test\SNW" und setze ihn mit der Serverfreigabe, also "\\%server%\c$", zusammen, also: "\\%server%\c$\test\SNW".
Sowas wie, je nach Laufwerksbuchstabe nehme ich die Serverfreigabe gibt es nicht.
Hast Du eine Freigabe auf dem PC unter dem Laufwerksbuchstaben R eingerichtet so bedeutet das doch nicht das die Freigabe auf dem Server unter R liegt. Normalerweise wird sie unter C liegen, oder vielleicht noch unter D. Je nachdem wieviel Partitionen Du hast.
Du stellst da einen Zusammenhang her, den es nicht gibt. Das eine sind die Partitionen und damit Laufwerke des Servers, das andere sind Laufwerksbuchstaben welche Du für die Clients benutzt um Netzlaufwerke zu verbinden.
Ich kann Deinen Wunsch nach maximaler Variabilität verstehen. Den haben wir alle.
Aber es allem und jedem Recht zu machen bedeutet erhöhten Programmieraufwand. Eventuell sind gruppen- oder personenabhängige Loginskripts das Richtige für Dich.
Gruss,
Destry
Nimm doch von "R:\test\SNW" den Teil nach dem Doppelpunkt, also "\test\SNW" und setze ihn mit der Serverfreigabe, also "\\%server%\c$", zusammen, also: "\\%server%\c$\test\SNW".
Sowas wie, je nach Laufwerksbuchstabe nehme ich die Serverfreigabe gibt es nicht.
Hast Du eine Freigabe auf dem PC unter dem Laufwerksbuchstaben R eingerichtet so bedeutet das doch nicht das die Freigabe auf dem Server unter R liegt. Normalerweise wird sie unter C liegen, oder vielleicht noch unter D. Je nachdem wieviel Partitionen Du hast.
Du stellst da einen Zusammenhang her, den es nicht gibt. Das eine sind die Partitionen und damit Laufwerke des Servers, das andere sind Laufwerksbuchstaben welche Du für die Clients benutzt um Netzlaufwerke zu verbinden.
Ich kann Deinen Wunsch nach maximaler Variabilität verstehen. Den haben wir alle.
Aber es allem und jedem Recht zu machen bedeutet erhöhten Programmieraufwand. Eventuell sind gruppen- oder personenabhängige Loginskripts das Richtige für Dich.
Gruss,
Destry