Windows Server 2008R2\2012\2016使用域策略自定义隐藏指定驱动器
最近在做项目的时候需要对Win7客户端的部分驱动器进行隐藏,但域策略默认的隐藏选项不能满足需求,根据微软官方文档https://support.microsoft.com/zh-cn/help/231289/using-group-policy-objects-to-hide-specified-drives, 修改%SystemRoot%\Sysvol\Sysvol\你的域名\Policies{31B2F340-016D-11D2-945F-00C04FB984F9}\Adm\System.adm。 貌似是适用于Windows Server2003的。因为在2008R2服务器上面根本找不到System.amd文件。
经过在网上查找资料,自己实践并纠正了一些错误的地方,现将解决方法整理分享一下:
1、 首先在C:\Windows\SYSVOL\sysvol\你的域名\Policies文件夹下,创建文件夹PolicyDefinitions.(在此处创建PolicyDefinitions是因为这是默认域策略的目录位置,当你域中有多个域控制器的时候,这些策略内容会通过文件复制服务 (FRS) 复制到整个域中,从而保证每个域控制器上的策略文件是同步的)
2、 将C:\Windows\PolicyDefinitions\下所有文件复制C:\Windows\SYSVOL\sysvol\xxx.com\Policies\PolicyDefinitions下。
3、 用记事本打开C:\Windows\SYSVOL\sysvol\xxx.com\Policies\PolicyDefinitions\WindowsExplorer.admx文件,在记事本中使用查找功能查找NoViewOnDrive字段,添加相应的字段后保存。如图所示:
4、 其中decimal value=31457223值是指使用 26 位二进制字符串(每一位代表一个驱动器盘符,A盘到Z盘)相对应的十进制数字,计算方法如下:(之前有其它网友的文章有提供隐藏磁盘驱动器计算器来得到相应的值,下载地址: http://www.datacrash.net/downloads/ddc.exe,但可能时间久了,这个链接貌似已经失效了,所以只能自己计算)
11111111111111111111111111
ZYXWVUTSRQPONMLKJIHGFEDCBA
此配置11111111111111111111111111对应于十进制数字 67108863,它会隐藏所有驱动器。 如果你要隐藏驱动器 C,请将倒数第三位设置为 1(例如00000000000000000000000100)然后将该二进制字符串转换为十进制数字是4。
如图所示,我测试时需要显示ZVDEF盘,其它盘符全部隐藏,对应二进制是01110111111111111111000111转换为十进制就是31457223
5、 之后修改C:\Windows\SYSVOL\sysvol\xxx.com\Policies\PolicyDefinitions\zh-CN\WindowsExplorer.adml,如果你是英文版本系统,还需要修改C:\Windows\SYSVOL\sysvol\xxx.com\Policies\PolicyDefinitions\en-US\WindowsExplorer.adml
6、 添加如下字符串 不限制VZDEF驱动器,其余驱动器全部限制 注意:string id要跟WindowsExplorer.admx设置相同.
7、 打开域策略,已经可以看到新增的选项
8、 验证Win7客户端驱动器隐藏情况,已经生效。