coltseavers
Goto Top

NTFS-Partition auf einem Rechner von Platte zu Platte verschieben, inkl Freigaben und Berechtigungen - aber wie?

Servus zusammen,

ich habe hier nen SBS 2008-Server mit 2 Raid-Laufwerken.

Auf dem 1. Raid ist die Systempartition und eine Datenpartition
Auf dem 2. Raid soll entweder der Inhalt der Datenpartition in eine bestehende Partition integriert werden, oder aber als weitere Partition angefügt werden - das ist eigentlich egal.

Auf der Datenpartition sind nun reichlich Freigaben mit Berechtigungen eingetragen, die ich am liebsten in einem Rutsch 1:1 mit übernehmen möchte.

Gefunden habe ich in einem anderen Thread in diesem Forum den Hinweis auf das Tool Robocopy, was angeblich genau das können soll.
Nur fluppt das leider nicht.

Die verwendete Syntax war:
robocopy d:/daten e:/daten /e /dcopy:t /copyall
evtl noch mit /move ergänzt.

Läuft auch wunderbar durch, angeblich fehlerfrei, die Daten werden auch kopiert/verschoben, nur werden die Freigaben und Berechtigungen nicht an der neuen Stelle angelegt.
Beim reinen Kopiervorgang bleiben sie an alter Stelle erhalten, beim /move fallen sie einfach weg.

Eingabeaufforderung wurde als Administrator aufgerufen.

Jemand ne Idee, woran das liegen könnte?
Mir stösst natürlich schon bedenklich auf, dass bei einem reinen Kopiervorgang die Freigaben dann ja quasi 2x auf dem System vorhanden wären, was ja nicht sein kann.
Aber im Verschiebemodus wäre das ja eigentlich kein Problem. Frage ist, ob das Programm das leisten kann, oder ob das nur fürs Übertragen auf andere Maschinen gedacht ist?? Wer kennt sich da aus?

Infos zu Robcopy gibts hier:
http://technet.microsoft.com/de-de/library/cc733145%28v=ws.10%29.aspx

Vielen Dank vorab!

Content-Key: 213535

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

Printed on: April 19, 2024 at 04:04 o'clock

Member: Penny.Cilin
Penny.Cilin Aug 07, 2013 at 07:06:42 (UTC)
Goto Top
Moin coltseavers,

mit Robocopy kannst Du meines Wissens nach nur die Daten kopieren/verschieben, nicht die Freigaben. Diese musst Du selbst anpassen. Die Berechtigungen werden auch nur auf NTFS-Ebene kopert. Und nicht die der Fregaben.


Gruss Penny.
Member: colinardo
colinardo Aug 07, 2013 at 07:07:22 (UTC)
Goto Top
Hallo coltseavers,
Robocopy kopiert nur die Sicherheitseinstellungen bzw. die ACL der Dateien und Ordner und nicht die Freigabeeinstellungen. Die sind in der Registry des Systems hinterlegt. Man müsste sie also dort manipulieren das sie auf das neue Laufwerk zeigen.
Tools dafür die das automatisch erledigen gibt es auch (nicht ganz billig) http://www.quest.com/secure-copy/

Schaue mir die Registry-Einträge nachher mal an, vielleicht lässt sich da ein simples Replace-Tool für so was schreiben...

Grüße Uwe
Member: Penny.Cilin
Penny.Cilin Aug 07, 2013 at 07:17:12 (UTC)
Goto Top
Zitat von @colinardo:
Hallo coltseavers,
Robocopy kopiert nur die Sicherheitseinstellungen bzw. die ACL der Dateien und Ordner und nicht die Freigabeeinstellungen. Die
sind in der Registry des Systems hinterlegt. Man müsste sie also dort manipulieren das sie auf das neue Laufwerk zeigen.

Hallo Uwe,

wenn er den/die Registryzwiege exportiert, anschließend anpasst und wieder importiert, sollte es gehen. Oder irre ich mich?
Er muss doch dann nur die Pfade anpassen. Die Berechtigungen bleiben.

Schaue mir die Registry-Einträge nachher mal an, vielleicht lässt sich da ein simples Replace-Tool für so was
schreiben...

Grüße Uwe

Gruss Penny.
Member: DerWoWusste
DerWoWusste Aug 07, 2013 updated at 07:18:42 (UTC)
Goto Top
Hi.

MS bietet dazu seit Jahren das Fileserver migration Toolkit zum Download an.
Aber, wie gesagt, manuell mit robocopy und dem Regexport/-import geht auch schnell.
Member: colinardo
colinardo Aug 07, 2013 at 08:35:40 (UTC)
Goto Top
Zitat von @DerWoWusste:
MS bietet dazu seit Jahren das Fileserver migration Toolkit zum Download an.
hier noch der Link dazu http://www.microsoft.com/de-de/download/details.aspx?id=10268

@Penny.Cilin
wenn er den/die Registryzwiege exportiert, anschließend anpasst und wieder importiert, sollte es gehen. Oder irre ich mich?
Er muss doch dann nur die Pfade anpassen. Die Berechtigungen bleiben.

Der Registry-Pfad in dem die Shares hinterlegt sind ist dieser:
HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Shares
Dort sind die Shares in REG_MULTI_SZ Werten gespeichert. Wenn man diese Exportiert werden sie als Hex-Werte in die REG-Datei geschrieben, also nicht sonderlich angenehm und Fehler trächtig dort dann die Ersetzung vorzunehmen.

Habe dazu mal ein Powershell-Script geschrieben das den zu ändernden Laufwerksbuchstaben bei allen Einträgen durch einen anderen ersetzt falls dieser vorhanden ist.
(Hinweise: In den ersten beiden Variablen legt man die Laufwerksbuchstaben fest. Standardmäßig werden die Freigaben die mit einem "$" enden ignoriert)
$strDriveOLD = "D:"  
$strDriveNew = "X:"  
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\services\LanmanServer\Shares'  

function Get-RegValType([String] $path, [String] $valName)
{
   switch ((gp $path -Name $valName).$valName.gettype().Name)
   {
      "String"{"REG_SZ"; break;}  
      "Int32" {"REG_DWORD"; break;}  
      "Int64" {"REG_QWORD"; break;}  
      "String" {"REG_MULTI_SZ"; break;}  
      "Byte" {"REG_BINARY"}  
      default {throw "Unknown type"}  
    }
 }

$shares = Get-Item -Path $regPath | select -ExpandProperty Property

foreach ($share in $shares){
    if (!$share.EndsWith('$')){  
        $type = Get-RegValType $regPath $share
        if ($type -eq "REG_MULTI_SZ"){  
            $regMultiString = (Get-ItemProperty -Path $regPath -Name $share).$share
            foreach ($str in $regMultiString){
                if ($str -like "Path=$strDriveOLD*"){  
                    $newShare = $regMultiString | %{$_.Replace("Path=$strDriveOLD","Path=$strDriveNEW")}  
                    Set-ItemProperty -Path $regPath -Name $share -Value $newShare -Type MultiString
                }
            }
        }
    }
}
Vielleicht hilft das dem ein oder anderen face-wink

Grüße Uwe