Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Berechtigungen eines Freigegebenen Verzeichnisses mit cacls bearbeiten schlägt fehl

Frage Entwicklung Batch & Shell

Mitglied: Peter161

Peter161 (Level 1) - Jetzt verbinden

20.07.2009, aktualisiert 11:57 Uhr, 6546 Aufrufe, 22 Kommentare

Hallo,

ich bin schon am Verzeifeln.

Ich habe folgenden Code-Ausschnitt:

Die Variablen sind alle gesetzt. (%pfad% entspricht z.B. \\server\SNW)
01.
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...
Mitglied: Destry
20.07.2009 um 12:05 Uhr
Hi,

etwas mehr Code wäre nett.

Für's erste:
Wenn Du auf "\\server\SNW\test" Rechte setzen willst, sollte der Wert nicht auch in Deiner Variablen stehen?
Du schreibst dort steht nur "\\server\SNW".

Gruss,
Destry
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 12:08 Uhr
01.
cacls %pfad% /e /c /P %domaene%\Admin:f SNW\Useradmin:c SNW\Lehrer:c /D SNW\schueler 
02.
cacls %pfad%\%lehrer% /e /c /P %domaene%\Admin:f %domaene%\Useradmin:c %domaene%\Lehrer:c /D %domaene%\schueler
So sieht das ungefähr aus nur wenn ich auf %pfad% die Berechtigungen setzten will, kommt die Meldung, das der Netzwerkpfad nicht gefunden werden kann, aber auf %pfad%\%Lehrer% geht es.
Bitte warten ..
Mitglied: Destry
20.07.2009 um 12:21 Uhr
Nochmal:
Wenn Du nicht den Inhalt Deiner Variablen und wie sie zusammengebaut werden mitteilst wird es schwierig Dir zu helfen.
Wir können nicht hellsehen.

Gruss,
Destry
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 12:25 Uhr
Hallo, ich hab die komplette admincfg.bat mal auf meinen server geladen.
http://snw.bplaced.net/SNW/adminconfig.bat

Danke.
Bitte warten ..
Mitglied: Destry
20.07.2009 um 12:39 Uhr
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
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 12:53 Uhr
Zitat von Destry:
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.
Was ist Hochkommata???

Wenn es daran nicht liegt dann stell vor den cacls-Befehl ein echo
und lass Dir anzeigen was tatsächlich dort drinsteht.
Ok, aber es klappt ja auch nicht wenn ich den befehl manuell eingebe.
01.
C:\Dokumente und Einstellungen\Willi>echo J | cacls \\iserver\SNW /e /c /P SNW\A 
02.
dmin:f SNW\Useradmin:c SNW\Lehrer:c /D SNW\schueler 
03.
Der Netzwerkpfad wurde nicht gefunden.

Gruss,
Destry

bb pete
Bitte warten ..
Mitglied: bstefan82
20.07.2009 um 13:53 Uhr
Du kannst dir auch mal icacls anschauen, das ab 2k3 sp2 dabei. ist etwas komfortabler. Soweit ich weiß, können (cacls und icacls) aber Probleme mit umlauten etc, auftreten.
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 13:56 Uhr
Zitat von bstefan82:
Du kannst dir auch mal icacls anschauen, das ab 2k3 sp2 dabei. ist
etwas komfortabler. Soweit ich weiß, können (cacls und
icacls) aber Probleme mit umlauten etc, auftreten.

ok, mach ich, das Problem besteht nur wenn ich auf eine Freigabe auf einem Entfernten Rechner die Rechte ändern will.

Will ich aber auf ein Verzeichnis was unterhalb der eigendlichen Freigabe liegt die Rechte ändern, geht das.
Danke erstmal...
Bitte warten ..
Mitglied: Destry
20.07.2009 um 15:49 Uhr
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:
01.
cacls %pfad% /e /c /P %domaene%\Admin:f SNW\Useradmin:c SNW\Lehrer:c /D SNW\schueler
bitte:
01.
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
Bitte warten ..
Mitglied: Destry
20.07.2009 um 15:54 Uhr
Hi Peter,

mit cacls kannst Du nur die Rechte auf Verzeichnisse und Dateien verändern, nicht auf Freigaben.

Gruss,
Destry
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 15:55 Uhr
Aber eigendlich ist das doch auch nix anderes als ein Verzeichnis, nur eben Freigegeben.

Manuell kann ichs ja auch ändern....
Bitte warten ..
Mitglied: Destry
20.07.2009 um 16:01 Uhr
Ja, aber woher soll der Befehl wissen was was ist.

Beispiel:

Du gibst das Verzeichnis C:\temp mit "temp" frei.
Jetzt ist "\\servername\temp" die Freigabe und nicht das Verzeichnis.
Aber "\\servername\c$\temp" ist das Verzeichnis und nicht die Freigabe.

Zumindest cacls unterscheidet hier.

Gruss,
Destry
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 16:05 Uhr
Wie kann ich es da machen? Nur über diese C$ Freigabe??
Bitte warten ..
Mitglied: Destry
20.07.2009 um 16:21 Uhr
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
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 16:24 Uhr
Ok, danke. Aber kannst du mir Sagen wie ich aus C:\ ein C$ machen kann? Wie ich also den ersten Buchstaben nehme?
Bitte warten ..
Mitglied: Destry
20.07.2009 um 16:36 Uhr
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
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 16:40 Uhr
Zitat von 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

Ich weiß schon was du meinst
nur Mein Script weiß nur das der ORdner SNW den Pfad:
D:\Daten\test\SNW hat.

Der Pfad kann aber immer unterschiedlich sein. Der kann auch mal Z:\SNW sein
also brauche ich nur den ersten buchstaben und kann ich das mit ~machen?
Bitte warten ..
Mitglied: Destry
20.07.2009 um 16:58 Uhr
Versuche den UNC-Pfad zu nehmen.
Hast Du hier mehrere Möglichkeiten musst Du diese wohl abfangen.
Ganz deutlich wird mir Dein Problem nicht.

Gruss,
Destry
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 17:02 Uhr
Zitat von Destry:
Versuche den UNC-Pfad zu nehmen.
Hast Du hier mehrere Möglichkeiten musst Du diese wohl
abfangen.
Ganz deutlich wird mir Dein Problem nicht.

Gruss,
Destry

Das Problem ist, dass alles, wie ich schon öfters betonte VARIABEL sein muss. Also für verschiedene Nutzer, und auch auf verschiedenen Basisen laufen muss.

Wie du meinen Abfrage entnehmen kannst, frage ich nach der Freigabe auf dem Server
diese lautet im Normalfall (\\server\SNW)
Daraus ermittelt der Computer den lokalen Pfad auf dem Server.
Nun müsste ich nur den lokalen Pfad z.b. R:\test\SNW in \\%server%\r$\test\SNW ändern können. Danke.
Bitte warten ..
Mitglied: Destry
20.07.2009 um 17:25 Uhr
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
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 17:34 Uhr
Zitat von 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".

wie kommst du von R: auf C:?
Sowas wie, je nach Laufwerksbuchstabe nehme ich die Serverfreigabe
gibt es nicht.
Doch muss es doch geben, denn wenn einer den Splin hat und seine Partitionen ghi nennt, sind auch die Standardfreigaben h$, g$, und i$.
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.
Warum?
Normalerweise wird sie unter C liegen, oder
vielleicht noch unter D. Je nachdem wieviel Partitionen Du hast.
Wieso???

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.
Doch.

Mir würde es reichen, wenn du mir sagen kannst, wie ich nur den ersten Buchstaben verwenden kann. Danke.

Ich kann Deinen Wunsch nach maximaler Variabilität verstehen.
Den haben wir alle.
Ja aber es sollen auch welche damit arbeiten, die nicht so viel Ahnung haben.
Eigendlich soll es so einfach wie möglich sein.
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
Viele Grüße Pete
Bitte warten ..
Mitglied: Peter161
20.07.2009 um 17:44 Uhr
So, habs jetzt gelöst,

%lbasis% sieht so aus C:\test\SNW
kann aber auch R:\SNW
F:\Test\neu\SNW sein
Also Variabel.
Wie gefordert....
01.
rem  Pfad über Standardfreigabe zur Basis 
02.
set "A=%lbasis:~0,1%" 
03.
set "B=%lbasis:~2%" 
04.
set "sbasis=\\%a%$%B% 
05.
rem Irgendwie hab ich das Gefühl du hast selber keine Ahnung. Berichtige mich, wenn ich falsch liege.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Installation
Windows Upgrade schlägt fehl (11)

Frage von ratzekahlx zum Thema Windows Installation ...

Exchange Server
Migration Exchange 2007 zu 2013 schlägt fehl (1)

Frage von zimlars zum Thema Exchange Server ...

Windows 10
Win 10 Build 1607 OEM Key Aktivierung schlägt fehl (7)

Frage von STITDK zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...