haggi83
Goto Top

lokale Ordner von Usern über skript auf Fileserver

Hallo,


folgendes Problem:


ich möchte lokale Ordner von Usern über Anmeldeskript auf den Fileserver kopieren.

z.B. Ordner Archiv\Bilder auf den Workstations sollen auf den FS bei der Anmeldung kopiert werden.


Wie muss ich das Skript einstellen, das der Username entsprechend auf dem Fileserver abgelegt wird. - z.B. Auf dem FS einen Ordner mit dem Usernamen copy \\FS\%user%\Archiv?? erstellen


Nichts weltbewegendes, wäre aber cool wenn mir jemand helfen könnte. Hab auf die schnelle nichts gefunden.


Danke

Content-Key: 97970

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: bastla
bastla 27.09.2008 um 11:08:46 Uhr
Goto Top
Hallo haimer!

Der Benutzername ist in der Systemvariablen %username% zu finden (weitere derartige Variablen kannst Du mit "set") auflisten lassen, daher:
xcopy /y /d /c C:\Archiv\Bilder \\FS\Freigabe\%username%\Archiv\>nul
"xcopy" erzeugt, falls noch nicht vorhanden, den Zielordner. Der Schalter "/d" sorgt dafür, dass nur neuere (und im Zielordner noch nicht vorhandene) Dateien kopiert werden.

Für Informationen über weitere "xcopy"-Schalter:
xcopy /?

Dass die Benutzer die entsprechenden Berechtigungen in "Freigabe" benötigen, sollte klar sein.

Grüße
bastla
Mitglied: haggi83
haggi83 29.09.2008 um 12:10:29 Uhr
Goto Top
hi bastla,


danke für die antwort!


Berechtigungen sind klar... kann man die auch über skript automatisch zuweisen lassen, oder muss ich da jeden ordner einzeln anfassen?


danke nochmal!
Mitglied: bastla
bastla 29.09.2008 um 19:36:15 Uhr
Goto Top
Hallo haimer!

Berechtigungen kannst Du mit "cacls" setzen (mehr dazu: "cacls /?" und ein Beispiel unten).

Welche Rechte willst Du denn vergeben? Zum "Einsammeln" müsste es genügen, den Benutzern für den freigegebenen Ordner nur das Recht "Schreiben" zu erteilen - damit können die Dateien kopiert werden, und der jeweilige Benutzer hat als "Besitzer" auch das Recht, die Dateien seines Ordners (und auch die Unterordner) zu bearbeiten oder löschen - die Dateien eines anderen Benutzers kann er hingegen nicht löschen oder verändern; allerdings wäre es möglich, diese durch gleichnamige Dateien zu überschreiben.

Um auch dies zu verhindern könntest Du nachträglich zB nur den Administratoren Vollzugriff und dem jeweiligen Benutzer Änderungsrechte geben - das könnte so aussehen:
@echo off & setlocal
set "Ordner=\\FS\Freigabe"  
for /f %%i in ('dir /b /ad "%Ordner%"') do echo j|cacls "%Ordner%\%%i" /T /G Administratoren:F %%i:C  
Achtung: Die bestehenden Sicherheitseinstellungen werden durch diesen Batch ersetzt - zum Testen daher einen anderen Ordner (einfach in Zeile 2 ändern) verwenden (ich würde das ohnehin nicht über die Freigabe, sondern direkt am Server laufen lassen) oder durch ein zusätzliches "/E" vor dem "/T" die danach angegebenen Rechte nur hinzufügen (ohne die derzeitigen Einstellungen zu entfernen).

Das "/T" während der Testphase wegzulassen (um den Ablauf zu beschleunigen), wäre übrigens auch noch möglich - damit würden zwar nur für den jeweiligen Ordner (aber nicht für den Unterordner "Archiv" und dessen Inhalte) die Berechtigungen neu gesetzt, aber die Funktionsfähigkeit ließe sich damit schon überprüfen.

Grüße
bastla