NAS、CIFS文件服务器迁移,并规划部署DFS

 

需求分析

原方案多分支节点数据无法同步,如果全部从总部访问速度又太慢。共享权限设置混乱,设置了ntfs权限有的用户看不到文件夹,设置了共享权限有的时候打不开。

分解需求如下

  1. 共享目录权限同步。
  2. 拷贝原共享文件,保留NTFS权限。
  3. 文件权限批量修改
  4. DFS分支站点策略配置。

步骤

  1. Send-SmigServerData -Force -Recurse -ComputerName 1.1.1.1 -DestinationPath d:\DFS\ -Include All -SourcePath z:

    【语法】

    Send-SmigServerData [-Force] [-Recurse] -ComputerName <string> -DestinationPath <string> -Include <All | Data | Share> -Password <SecureString> -SourcePath <string> [-confirm] [<CommonParameters>]
    
  2. 利用xcopy /o/x/e/h/k ,命令格式如下:Xcopy 源 目标 /s /e /o

    【参数说明】

    /s表示:复制包括所有非空子文件夹;
    /e表示:复制包含空子文件夹,等同于DOS时代的/s /e,所以此命令可以只用/e参数;
    /o表示:复制文件所有权和ACL(即NTFS权限)信息。有些系统设置的帐号、权限没有复制过来,但管理员手动设置的帐号、权限一定会被复制过来。
    【示例】

    robocopy Z:\ D:\DFS\ /e /copyall #简单复制
    robocopy Z:\ D:\DFS\ /mir /copy:DATS #完全复制(删除源没有的文件)
    
  3. 利用icacls显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。由于原nas的文件共享权限超级用户是UID 0的root系统,导致迁移完成以后所有权权限丢失,批量进行修改。

    【语法】

    icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
    icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]
    

    【参数说明】
    参考 url:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/icacls 【示例】
    递归修改所有者

    icacls D:\DFS /T /Q /setowner administrators
    

    给administrator添加完整权限

    icacls D:\DFS\部门外共享访问 /T /Q /inheritance:r /grant:r administrators:F
    

    给TEST域内的域用户添加读写权限

    icacls D:\DFS\部门外共享访问 /T /Q /grant TEST\"domain users":RX
    
  4. 服务器上分别安装“DFS复制和DFS命名空间”角色,点击下一步完成角色的安装,打开DFS管理器,选中“命名空间”,点击右上角“新建命名空间”,填写命名空间名称,然后点击“编辑设置”,选中“试用自定义权限”,并点击“自定义”,我这里删除默认的Everyone读取权限,赋予普通域用户“读取”和“更改”的权限,域管理员Administrator和Node1管理员群组用户“完全控制”权限。