一、本地电脑文件导出备份的设置
	
	摘要:来源:n3tl04dsBlog你有没有试过,当某天文件服务器突然死掉之后,重装系统添加好用户之后,麻烦事来了,以前几十甚至上百个共享目录的NTFS权限要重新设置,那不累死人?难道真的没有办法了。其实我们动动脑子,问题还是能解决的。也许有人说,建个原来一样的用户名后,权限就不用重新设了,这当然是错的,因为NTFS权限是和UID匹配的,而非用户名,同一个用户,UID是不同的。废话少说,我们开始吧。  首先,先要备份文件目录的权限,应该很多人都知道吧,就是用ca
	来源:n3tl04ds Blog
	 
	你有没有试过,当某天文件服务器突然死掉之后,重装系统添加好用户之后,麻烦事来了,以前几十甚至上百个共享目录的NTFS权限要重新设置,那不累死人?难道真的没有办法了。其实我们动动脑子,问题还是能解决的。也许有人说,建个原来一样的用户名后,权限就不用重新设了,这当然是错的,因为NTFS权限是和UID匹配的,而非用户名,同一个用户,UID是不同的。废话少说,我们开始吧。
	 
	   首先,先要备份文件目录的权限,应该很多人都知道吧,就是用cacls命令了,先看cacls命令的用法:
	显示或者修改文件的访问控制表(ACL)
	 
	               [/P user:perm [...]] [/D user [...]]
	   filename      显示 ACL。
	   /T            更改当前目录及其所有子目录中
	                 指定文件的 ACL。
	   /E            编辑 ACL 而不替换。
	   /C            在出现拒绝访问错误时继续。
	   /G user:perm  赋予指定用户访问权限。
	                 Perm 可以是: R  读取
	                              W  写入
	                              C  更改(写入)
	                              F  完全控制
	   /R user       撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
	   /P user:perm  替换指定用户的访问权限。
	                 Perm 可以是: N  无
	                             R  读取
	                             W  写入
	                             C  更改(写入)
	                             F  完全控制
	   /D user       拒绝指定用户的访问。
	在命令中可以使用通配符指定多个文件。
	也可以在命令中指定多个用户。
	cacls 需要备份的共享目录 /t >cacls.txt
	就可以把整个共享目录的acl列表(也就是权限了)导出到当前目录下的cacls.txt,我们打开cacls.txt看看。
	D: est COMPUTERsmall:(OI)(CI)F 
	        NT AUTHORITYSYSTEM:(OI)(CI)F
	             COMPUTERsmall:(OI)(CI)F 
	NT AUTHORITYSYSTEM:(OI)(CI)F
	其中 COMPUTER就是机器名了, BUILTIN表示后面是组名, NT AUTHORITY后面就是系统用户了,而用户名后的(OI)表示对象继承(ACE 会由目录继承),(CI)表示容器继承(ACE 会由文件继承),其它还有IO 表示只继承(ACE 不适用于当前文件/目录)。
	cacls D: est /t /c /e /g  small:F 
	当我们使用/c参数时有些目录可能会出现到需要你输入Y/N,现在xcacls就能解决这个问题了,它有个很好的参数,那就是 /Y  禁止在替换用户访问权限时出现确认提示。
	如:在命令提示符下键入 XCACLS *.* /G administrator:RW /Y,然后按 Enter 以替换当前文件夹中所有文件和文件夹的 ACL,而不扫描子文件夹且不进行确认。
	但如果我们有很多用户很多目录,而它们的权限又各不相同的话,这样一个个来设,那也是一件挺大的工程。但下面,我介绍一种更好的办法,可以省去大量的时间。
	   我们要先下载“半自动恢复权限程序测试版”(可到http://n3tl04d.ys168.com/或中国网管联盟论坛下载 权限恢复),要建立和原系统一样的用户名,先看说明。
	对备份权限的文本处理,我们先要去掉用户名前的主机名和后面的(OI)(CI)等多余的东东。
	如下面
	D: estdddd BUILTINUsers:(OI)(CI)R 
	             COMPUTERl:(OI)(CI)F 
	             NT AUTHORITYSYSTEM:(OI)(CI)F
	应该要变成
	D: estdddd Users:R 
	             bl:F 
	             SYSTEM:F
	然后去掉父目录(如D: est)的继承,接下来就可以使用该程序恢复NTFS权限了,使用很简单,就是“ca d:cacls.txt(NTFS权限的备份文本文件)”
	 
	至此,权限全部恢复完毕。
	
	
	
	2、服务器共享文件的权限导出备份方法
	
	
	
		如何导出共享文件夹的权限或转移
	
		实例:
		1, 先将文件夹复制到其他电脑或硬盘分区(包含文件夹的权限)
		xcopy /o /x /e /h /k c:\文件夹名字 d:\文件夹名字
	
		2, 使用Windows Resource Kits tools里面的permcopy.exe 进行共享文件夹的复制或转移
		permcopy \\ip或电脑名字 共享文件夹名字 \\ip或电脑名字 共享文件夹名字 
	
	
	
		NTFS权限和共享权限的迁移
		转自--gnaw0725 blog
	
		如何进行共享文件夹权限设置迁移复制?Permcopy.exes和ecure file copy 4。同台2003SERVER服务器,工作组管理,有个共用资料夹(里面有加了很多人的权限),移到另外一个盘中,里面多个使用者的权限还能有,如何能做到?(不用重新加一次使用权限)
		我想大家都会遇到文件服务器进行更换主机或增加空间,有很多个人的共用资料夹需要进行移动,而移动后重加权限问题是个头痛的问题,如有哪位有更好的办法,能否提供出来供大家学习!
	
		xcopy方法和fsmgmt迁移工具我已经测试过,它只能把资料夹"安全性"中的权限COPY过去;
		我需要的是下面这个功能的实现(前提是同台服务器):
		资料夹右键"内容"--"共用"--"共用此资料夹"--"使用权限"中所新增加的使用者权限在COPY到另外一盘后,里面的使用者权限仍有;
		我也清楚在同台服务器中,不能出现两个同名的共用资料夹,如果上面的功能能实现,我可以把原资料夹的共用停用后,再到新COPY过去的地方重做一次"共用此资料夹",这样我只需要把所COPY后的资料夹共用一次就OK,不用再去做对此资料夹进行"使用权限"的增加动作;
		像我们公司有上百个这样的共用用户资料夹,每个共用资料夹中都有多个使用者的权限,如果遇到服务器硬件空间升级或换新机,利用上述功能,可以大大地节省时间;
	
		回答:根据我的研究,您可以使用带 /O/X/E/H/K 开关的 Xcopy 命令复制文件并保留已明确应用于这些文件的现有权限。
		将一个文件夹复制到另一个文件夹中并保留其权限
		1. 单击开始,然后单击运行。
		2. 在打开框中,键入 cmd,然后单击确定。
		3. 键入 xcopy sourcedestination /O /X /E /H /K ,然后按 Enter,其中 source 是要复制的文件的源路径,destination 是这些文件的目标路径。
	
	
	
	
	
		备注: 不能使用 Permcopy.exe 工具来复制一个管理共享(共享名$,如 C$ 或 IPC$)的权限。 如果将权限复制到位于 x86 计算机的管理共享,则 Services.exe 程序可能会停止响应。有关这一注意事项及进一步信息可从 Windows光盘的Resource Kit 中找到。
		Tom Zhang 张一平 在线技术支持工程师 微软全球技术支持中心
	
		你可以用Secure Copy这个软件,我测试过。
		---小虫
	
		前面说过如何进行共享文件夹权限设置迁移复制 ,这里再讨论共享文件移动到其它磁盘,在上面设置过的共享权限怎样恢复?问:欲将服务器上的共享资源,移动至其它硬盘或服务器,如何保留其共享属性、共享权限和NTFS权限设置而不必重新手动设置?
	
		答:这个问题要分两方面:
		一、NTFS权限的保留
		<法1>利用Windows附件下备份工具进行备份,然后利用还原到“备用位置”,将共享资源还原到目标位置。这是较好的办法,目标的NTFS权限设置与原来的完全一样。
	
		<法2>利用xcopy /o ,命令格式如下:Xcopy 源 目标 /s /e /o
		【说明】 
		/s表示:复制包括所有非空子文件夹; 
		/e表示:复制包含空子文件夹,等同于DOS时代的/s /e,所以此命令可以只用/e参数;
		/o表示:复制文件所有权和ACL(即NTFS权限)信息。有些系统设置的帐号、权限没有复制过来,但管理员手动设置的帐号、权限一定会被复制过来。
	
		二、共享属性、共享权限的保留 
		<法1>利用注册表的导出/导入实现,具体操作如下:
		1、   在共享资源所在源计算机上,开始/运行:regedit 
		2、   找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares
		3、 在shares项上右键,将所有共享及其权限设置信息导出为.reg文件 
		4、   在目标计算机上,双击.reg文件导入 
		5、   在我的电脑/右键/管理,计算机管理的服务下,重新启动Server服务。
	
		<法2>如果共享资源的数量较少,也可以使用03 Resource Kits工具中的PermCopy将共享权限设置复制给目标,目标文件夹必须先共享出来,同一计算机上共享名不能相同。
		  利用PermCopy必须针对各个共享资源,逐个去复制共享权限(也仅是共享权限,不会复制NTFS权限、文件及文件夹)。命令格式如下: 
		      PermCopy \\源计算机 共享名 \\目标计算机 共享名
		---张东辉
	
		
		还有一个工具,fsmigrate_x86,Microsoft File Server Migration Toolkit 1.2,这个工具要装.net不建议使用
		详细情况看附件
		
		
		3、文件服务器备份操作命令
		
		
			移动共享,注意权限  
		
			  由于某些需要,有时要把共享文件夹移动位置,拷贝到别的目录下。复制操作虽然很简单,但要将共享文件夹所包含的用户访问权限信息和具体共享文件一起复制过去,这是一般的复制操作做不到的。利用“XCOPY”命令就能很好的解决这个问题。  
		
			  以D盘的CCE共享文件夹为例,将共享文件及其所包含的用户访问权限信息,复制到D盘的CCEB共享文件夹下。在“命令提示符”窗口中的“D:\>”提示符下,运行“xcopy CCE CCEB /O /S”命令后,就可以将CCE共享文件夹和所包含的用户访问权限信息,都复制到CCEB共享文件夹下了。其中“/O”参数表示“复制文件的所有权和 ACL 信息”,“/S”表示“复制目录和子目录”。  
		
			  有备无患,备份ACL  
		
			  如果共享文件夹所包含的ACL信息(用户访问权限)意外丢失,单凭记忆是很难恢复,还有可能造成遗漏,给共享文件夹留下安全隐患。这时用户就可以使用CACLS命令,做好这些共享文件夹的ACL信息备份。  
		
			  以D盘的共享文件夹CCE为例,该共享文件夹中包含着大量的ACL信息,下面就使用CACLS命令对此共享文件夹中的所有ACL信息进行备份。在“命令提示符”窗口中切换到“D:\>”提示符下,运行“cacls d:\ CCE /t > d:\aclsCCE.txt”命令后,就将共享文件夹CCE中所包含的ACL信息都备份到D盘的“aclsCCE.txt”文件中了。当ACL信息意外丢失时,就可以按照备份文件“aclsCCE.txt”中ACL信息,对CCE共享文件夹的访问权限进行重新设置,避免了部分ACL信息的遗漏,保证了共享文件夹的安全性。
			
			
			4、Win2003服务器文件权限备份方案
			 
		
			备份windows下NTFS分区文件夹的权限和共享权限
			windows升级到2003 sp2后有一个小工具——cacls.exe,使用简单的命令可设定或备份文件夹的权限,在服务器系统崩溃重装系统后,可快速恢复文件夹的权限。
			简单命令如下:
			cacls name /save aclfile [/T] [/C] [/L] [/Q]
			        将所有匹配名称的 ACL 存储到 aclfile 中以便将来用于 /restore。
			cacls directory [/substitute SidOld SidNew [...]] /restore aclfile    [/C] [/L] [/Q]
			       将存储的 ACL 应用于目录中的文件。
			cacls name /setowner user [/T] [/C] [/L] [/Q]
			       更改所有匹配名称的所有者。
			cacls name /findsid Sid [/T] [/C] [/L] [/Q]
			       查找包含显式提及 SID 的 ACL 的所有匹配名称。
			cacls name /verify [/T] [/C] [/L] [/Q]
			       查找 ACL 不标准或长度与 ACE 计数不一致的所有文件。
			cacls name /reset [/T] [/C] [/L] [/Q]
			       为所有匹配文件使用默认继承的 ACL 替换 ACL
			cacls name [/grant[:r] Sid:perm[...]] [/deny Sid:perm [...]] [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L]
			          [/setintegritylevel Level:policy[...]] /grant[:r] Sid:perm 
			授予指定用户访问权限。使用 :r,该权限将替换以前授予的所有显式权限。不使用 :r,该权限将添加到以前授予的所有显式权限。 /deny Sid:perm 显式拒绝指定的用户访问权限。 已经为规定的权限添加了显式拒绝 ACE,删除所有显式授予的权限中的相同权限。/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用 :g,删除授予该 SID 的所有权限。使用 :d,删除拒绝该 SID 的所有权限。       /setintegritylevel [(CI)(OI)] 级别将完整性 ACE 显式添加到所有匹配文件。要指定的级别为以下级别之一:
			               L[ow]
			               M[edium]
			               H[igh]
			           完整性 ACE 的继承选项可以优先于级别,但只应用于目录。
			注意:
			       Sids 可能是数字格式或友好的名称格式。如果给定数字格式,那么请在 SID 的开头添加一个 *。
			       /T 指示在以该名称指定的目录下的所有匹配文件/目录上 执行此操作。
			       /C 指示该操作将在所有文件错误上继续。仍将显示错误消息。
			       /L 指示此操作在符号链接本身而不是其目标上执行。
			       /Q 表示 cacls 应该压制成功的消息。
			       cacls 保留 ACE 项的规范顺序:
			               显式拒绝
			               显式授予
			               继承的拒绝
			               继承的授予
			       perm 是权限掩码,可以两种格式之一指定:
			           简单权限序列:
			                   F - 完全访问权限
			                   M - 修改权限
			                   RX - 读取和执行权限
			                   R - 只读权限
			                   W - 只写权限
			           在括号中以逗号分隔列表的特定权限:
			                   D - 删除
			                   RC - 读取控制
			                   WDAC - 写入 DAC
			                   WO - 写入所有者
			                   S - 同步
			                   AS - 访问系统安全性
			                   MA - 允许的较大值
			                   GR - 一般性读取
			                   GW - 一般性写入
			                   GE - 一般性执行
			                   GA - 全为一般性
			                   RD - 读取数据/列出目录
			                   WD - 写入数据/添加文件
			                   AD - 附加数据/添加子目录
			                   REA - 读取扩展属性
			                   WEA - 写入扩展属性
			                   X - 执行/遍历
			                   DC - 删除子项
			                   RA - 读取属性
			                   WA - 写入属性
			           继承权限可以优先于每种格式,但只应用于
			           目录:
			                   (OI) - 对象继承
			                   (CI) - 容器继承
			                   (IO) - 仅继承
			                   (NP) - 不传播继承
			示例:
		
			cacls d:\temp /t > c:\acls.txt
			H:\>cacls c:\scan\* >C:\CACLS.TXT
		
			           cacls c:\windows\* /save AclFile /T
			           - 将 c:\windows 及其子目录下所有文件的ACL 保存到 AclFile。
			           cacls c:\windows\ /restore AclFile
			           - 将还原 c:\windows 及其子目录下存在的 AclFile 内 所有文件的 ACL
			           cacls file /grant Administrator:(D,WDAC)
			           - 将授予用户对文件删除和写入 DAC 的管理员权限
			           cacls file /grant *S-1-1-0:(D,WDAC)
			           - 将授予由 sid S-1-1-0 定义的用户对文件删除和写入 DAC 的权限