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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 97970
Url: https://administrator.de/contentid/97970
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo haimer!
Der Benutzername ist in der Systemvariablen %username% zu finden (weitere derartige Variablen kannst Du mit "set") auflisten lassen, daher:
"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:
Dass die Benutzer die entsprechenden Berechtigungen in "Freigabe" benötigen, sollte klar sein.
Grüße
bastla
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
Für Informationen über weitere "xcopy"-Schalter:
xcopy /?
Dass die Benutzer die entsprechenden Berechtigungen in "Freigabe" benötigen, sollte klar sein.
Grüße
bastla
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:
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
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
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