partydevil
Goto Top

Cacls Freigabe Berechtigungen setzten auf Windows Server 2003

Hallo Zusammen

Ich hab folgendes Problem:

Ich habe ein Ordner freigegeben und habe dem mit cacls Berechtigungen gesetzt.

cacls %pfad%%name% /T /C /G Administrators:F %domain%\%name%:C SYSTEM:F "Domain Admins":F


Unter Windows XP setzt es automatisch die Jeder Berechtigung auf Full Kontrol:
5e08eab21619c9b0ad94360c198ae43d-unbenannt


cb61382e66678a650b98cde9d6ee93b3-unbenannt1



Unter Windows Server 2003 funktioniert das aber nicht. Dort wird nur lesen vergeben...

Kann mir jemand helfen?

Content-Key: 114499

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

Printed on: April 28, 2024 at 02:04 o'clock

Mitglied: 33968
33968 Apr 23, 2009 at 12:51:53 (UTC)
Goto Top
Das recht Lesen für Jeder ist Standartmässig für jede Freigabe definiert, das heisst dein Script wird auf dem Server gar nicht korrekt angewendent, bzw. ausgeführt.

Mögliche Fehlerursachen:

Kann es sein, dass das Windows XP auf deinen Client sich sprachlich von Windows Server 2003 unterscheidet?

Befindet sich der command cacls überhaupt auf dem Server?

Wird dein Script mit den notwendigen Rechten ausgeführt?
Member: partydevil
partydevil Apr 23, 2009 at 13:05:20 (UTC)
Goto Top
Hay danke für die Hilfe, aber ich hab den Fehler gefunden.

Er liegt nicht beim Befehl cacls sondern bei net share:
Die Option

/GRANT:User,FULL gibt es nur unter Windows Server 2003 und nicht unter Win XP.

Also:
net share %name%$=%pfad% /GRANT:everyone,FULL


Somit habe ich es gelöst.


Für alle die ein Script suchen um Homeshares zu machen (also Ordner erstellen, sharen und Berechtigungen setzten) habe ich heir mein Script:


:: Erklärung:
:: Mit diesem Batch Script können Homluafwerksordner erstellt und freigegeben werden.
:: Die Berechtigungen werden automatisch richtig gesetzt.

:: Benutzereingabe
:start
@echo off
echo Wie heisst der Benutzername:
set /P name=
echo -----------------------------------------------
:: Benutzereingabe

:repeat
echo Unter welchem Pfad (Hinweis: Pfad mit \ beenden):
set /P pfad=

:: Überprüfung ob Pfad vorhanden

if exist %pfad% goto done
echo Der Pfad %pfad% wurde nicht gefunden!
goto repeat
:done
echo der Pfad existiert!
echo -----------------------------------------------

:: Anlegen vom Ordner

mkdir %pfad%%name%
echo Der Ordner wurde angelegt.
echo -----------------------------------------------

:: Der Ordner sharen
set hiden=$
set domain=(eure Domäne)
net share %name%%hiden%=%pfad%%name% /GRANT:everyone,FULL

:: Berechtigungen vergeben
echo Berechtigung vergeben?
cacls %pfad%%name% /T /C /G Administrators:F %domain%\%name%:C SYSTEM:F "Domain Admins":F

::Wiederholung?

set /P abfrage=Wollen Sie einen Weiteren Ordner hinzufuegen (J / N)?
if "%abfrage%" == "N" then
goto ENDE
else
goto start

:ENDE
PAUSE