Robocopy rechte im Ordner hinzufügen und nicht ersetzen
Hallo zusammen,
ich plane den Umzug eines Fileservers auf einen neuen Fileserver.
Hierzu soll sich das Berechtigungskonzept ebenfalls ändern.
Was ich gerne möchte ist, dass z.B. Robocopy die Ordner den alten Servers auf den neuen Server kopiert und synchronisiert und die Berechtigungen vom alten Ordner auf den neuen Ordner hinzufügt und nicht ersetzt und alles was neu vererbt wurde ersetzt.
C:\Windows\system32>robocopy.exe \\file01\share$\OrdnerA F:\Shares\Archiv\OrdnerA /mir /B /E /W:5 /R:1 /DCOPY:T
Ich könnte nun natürlich /copyall hinzufügen, dieser würde dann aber die Berechtigung vom alten Server nehmen und auf dem neuen Server ersetzen.
Das möchte ich allerdings nicht, da die alten Berechtigungen erstmal nur hinzugefügt werden sollen.
Leider finde ich so eine Möglichkeit mein Vorhaben umzusetzen.
Hat jemand von Euch eine Idee dazu?
ich plane den Umzug eines Fileservers auf einen neuen Fileserver.
Hierzu soll sich das Berechtigungskonzept ebenfalls ändern.
Was ich gerne möchte ist, dass z.B. Robocopy die Ordner den alten Servers auf den neuen Server kopiert und synchronisiert und die Berechtigungen vom alten Ordner auf den neuen Ordner hinzufügt und nicht ersetzt und alles was neu vererbt wurde ersetzt.
C:\Windows\system32>robocopy.exe \\file01\share$\OrdnerA F:\Shares\Archiv\OrdnerA /mir /B /E /W:5 /R:1 /DCOPY:T
Ich könnte nun natürlich /copyall hinzufügen, dieser würde dann aber die Berechtigung vom alten Server nehmen und auf dem neuen Server ersetzen.
Das möchte ich allerdings nicht, da die alten Berechtigungen erstmal nur hinzugefügt werden sollen.
Leider finde ich so eine Möglichkeit mein Vorhaben umzusetzen.
Hat jemand von Euch eine Idee dazu?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 350599
Url: https://administrator.de/contentid/350599
Ausgedruckt am: 17.11.2024 um 01:11 Uhr
25 Kommentare
Neuester Kommentar
Zitat von @Penny.Cilin:
soweit ich weiß, konnte man mit die Berechtigungen übernehmen.
Leider hat Microsoft den TechNetartikel nicht mehr online.
soweit ich weiß, konnte man mit
robocopy <quelle> <ziel> /xn /xo /xc
Leider hat Microsoft den TechNetartikel nicht mehr online.
/XC :: Schließt geänderte Dateien aus.
/XN :: Schließt neuere Dateien aus.
/XO :: Schließt ältere Dateien aus.
Zitat von @emeriks:
Es wurde doch gefragt, die einzelnen ACEs in den ACLs zu mischen. So habe ich es jedenfalls verstanden.
Genau das machen die Parameter. Es werden keine Dateien kopiert, sondern nur die Berechtigungen.Zitat von @Penny.Cilin:
soweit ich weiß, konnte man mit die Berechtigungen übernehmen.
Leider hat Microsoft den TechNetartikel nicht mehr online.
soweit ich weiß, konnte man mit
robocopy <quelle> <ziel> /xn /xo /xc
Leider hat Microsoft den TechNetartikel nicht mehr online.
> /XC :: Schließt geänderte Dateien aus.
> /XN :: Schließt neuere Dateien aus.
> /XO :: Schließt ältere Dateien aus.
Sorry muss mich korrigieren.
Hier der Artikel So verwenden Sie Robocopy zum Kopieren von Sicherheitsinformationen, ohne andere Dateidaten zu kopieren
Hier der Artikel So verwenden Sie Robocopy zum Kopieren von Sicherheitsinformationen, ohne andere Dateidaten zu kopieren
robocopy Quelle Ziel /secfix /xo /xn /xc
Es wird nur die Berechtigung kopiert. Alle anderen Berechtigungen, welche auf dem Ordner auf dem Ziel bereits gesetzt sind, werden gelöscht.
Also Du willst
Vorher:
Quelle: Datei1 --> Admins Vollzugriff, Benutzer Lesen, Peter ändern
Ziel: Datei1 --> Admins Vollzugriff, Benutzer Lesen, Hans ändern
Hinterher:
Ziel: Datei1 --> Admins Vollzugriff, Benutzer Lesen, Hans ändern, Peter ändern
Korrekt? Falls ja: Geht nicht mit Robocopy.
$source = 'c:\temp\homes\homeuser001'
$target = 'c:\temp\homes\homeuser002'
gci $source -Directory -Recurse | %{
$targetDir = $_.FullName.toLower().Replace($source.ToLower(),$target)
if(Test-Path $targetDir){
$aclTarget = Get-ACL $targetDir
(Get-ACL $_.Fullname).Access | ?{!$_.IsInherited} | %{$aclTarget.SetAccessRule($_)}
write-host "Setting permission on '$targetDir' ..." -F Green
Set-ACL $targetDir $aclTarget
}
}
Anzugeben sind die Oberordner in denen sich jeweils die exakt gleiche Baumstruktur befindet, denn wie du siehst werden nur Unterordner der Quelle verarbeitet
Und der abschließende Backslash in der Variablen $target darf ebenfalls dort nicht stehen.
Das dein Account in allen Strukturen Rechte ändern können muss, müssen wir ja nicht wiederholen.
gci $source -Directory -Recurse
Verarbeitete Unterordner werden dann aufgelistet.Und der abschließende Backslash in der Variablen $target darf ebenfalls dort nicht stehen.
Das dein Account in allen Strukturen Rechte ändern können muss, müssen wir ja nicht wiederholen.
ich habe jetzt eine Lösung für das Problem gefunden
xcopy quelle ziel /S /E /O /I
Sorry, aber das ist Quatsch! Du täuschst Dich selbst oder willst was anderes erreichen, als Du hier formuliert hast.xcopy quelle ziel /S /E /O /I
Ich habe das eben nachgestellt. Der von Dir genannte Befehl kopiert eine Datei erneut (er fragt sogar explizit danach!) und zwar incl. der ACL. Die ACL des Ziels wird also nicht um die ACEs der Quelle ergänzt (Deine formlulierte Anforderung) sondern das Ziel wird verworfen, neu kopiert und bekommt auch eine neue ACL, nämlich eine Kopie der ACL der Quelle.
Edit:
Meine Glaskugel hat gerade gesprochen ...
Es sein denn, Du hast Deine Anforderung vollkommen falsch formuliert und es kommt Dir statt dessen darauf an, dass Dateien beim Kopieren nicht die Berechtigungen des Zielordners erben sollen sondern jene behalten sollen, welche sie an der Quelle haben. In diesem Sinne also "hinzufügen" von Berechtigungen.
Zitat von @emeriks:
Dito.ich habe jetzt eine Lösung für das Problem gefunden
xcopy quelle ziel /S /E /O /I
Sorry, aber das ist Quatsch!xcopy quelle ziel /S /E /O /I
Dann hast Du aber hier
sehr irreführend geantwortet!
sehr irreführend geantwortet!