标题: [分享]发现reg import的一处bug
[打印本页]
作者: qzwqzw
时间: 2008-6-25 17:59
标题: [分享]发现reg import的一处bug
日前测试一个简单的.reg文件的导入
结果发现reg import开关的一个bug
当.reg文件中含有中文注释时
reg import会导入不完整
而且无任何错误提示
随着中文注释的增多
导入所缺失的表项就越多
下面是一个测试范例
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoStartMenuSubFolders"=dword:00000001
;从「开始」菜单删除用户文件夹
"NoWindowsUpdate"=dword:00000001
;删除到“Windows Update”的访问和链接
"NoSMMyDocs"=dword:00000001
;从「开始」菜单中删除“我的文档”图标
"NoRecentDocsMenu"=dword:00000001
;从「开始」菜单上删除“文档”菜单
"NoNetworkConnections"=dword:00000001
;从「开始」菜单删除“网络连接
"NoFavoritesMenu"=dword:00000001
;从「开始」菜单中删除“收藏夹”菜单
"NoFind"=dword:00000001
;从「开始」菜单中删除“搜索”菜单
"NoSMHelp"=dword:00000001
;从「开始」菜单删除“帮助”命令
"NoRun"=dword:00000001
;从「开始」菜单中删除“运行”菜单
"NoSMMyPictures"=dword:00000001
;从「开始」菜单中删除“图片收藏”图标
"NoStartMenuMyMusic"=dword:00000001
;从「开始」菜单中删除“我的音乐”图标
"NoStartMenuNetworkPlaces"=dword:00000001
;从「开始」菜单中删除“网上邻居”图标
"NoNetHood"=dword:00000001
;隐藏桌面上“网上邻居”图标
"NoPropertiesMyDocuments"=dword:00000001
;从“我的文档”上下文菜单中删除“属性”
"NoPropertiesMyComputer"=dword:00000001
;从“我的电脑”上下文菜单中删除“属性”
"DisablePersonalDirChange"=dword:00000001
;禁止用户更改“我的文档”路径
"NoShellSearchButton"=dword:00000001
;从 Windows 资源管理器上删除搜索按钮
"NoViewOnDrive"=dword:03FFFFFF
;隐藏“我的电脑”中的这些指定的驱动器
"NoDrives"=dword:03FFFFFF
;防止从“我的电脑”访问驱动器
"NoSharedDocuments"=dword:00000001
;从“我的电脑”删除共享文档
"DisallowRun"=dword:00000001
;不要运行指定的 Windows 应用程序
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]
"1"="setup.exe"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Network]
"NoEntireNetwork"=dword:00000001
;“网上邻居”中不含“整个网络”
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum]
"{645FF040-5081-101B-9F08-00AA002F954E}"=dword:00000001
;从桌面删除“回收站”图标
"{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000001
;删除桌面上的“我的电脑”图标
"{450D8FBA-AD25-11D0-98A8-0800361B1103}"=dword:00000001
;删除桌面上的“我的文档”图标
作者: wxcute
时间: 2008-6-25 19:03
可以改用
regedit/s *.reg
作者: lxmxn
时间: 2008-6-25 19:10
直接复制的这段脚本,reg import regfilename 之后没有发现有注册表项的丢失啊。
OS : Windows Server 2003 Enterprise Edition sp2
作者: qzwqzw
时间: 2008-6-25 20:59
忘了提测试环境:WinXP SP2
03的reg.exe与XP明显有别
改用regedit /s也是后来的折中办法
当然也可以将注释改成英文的或者拼音
另外记起XP的reg query也有个关于中文的bug来着
谁还记着?
作者: knoppix7
时间: 2008-6-25 21:21
记得是会和谐掉最后几个字符..
作者: qzwqzw
时间: 2008-6-25 21:35
记起来了
似乎是当键值中出现了中文或其它双字节字符时
query的结果会被截断
丢失的字节数约等于出现的双字节字符数
当然
03里已经没有这个问题了
作者: HAT
时间: 2008-6-25 22:04
据说WinXP SP3的reg没有这个bug
作者: wxcute
时间: 2008-6-25 23:36
那将SP3中的reg复制过来能用吗?
作者: HAT
时间: 2008-6-26 10:03
Quote: |
Originally posted by qzwqzw at 2008-6-25 09:35 PM:
记起来了
似乎是当键值中出现了中文或其它双字节字符时
query的结果会被截断
丢失的字节数约等于出现的双字节字符数
当然
03里已经没有这个问题了 |
|
我的测试结果没有发现问题
WinXP SP2 英文版
Quote: |
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Test>reg query HKEY_LOCAL_MACHINE\SOFTWARE /v 哈哈
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE
哈哈 REG_SZ 我们 测试 |
|
WinXP SP3 中文版
Quote: |
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\test>reg query HKEY_LOCAL_MACHINE\SOFTWARE /v 哈哈
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE
哈哈 REG_SZ 我们 测试 |
|
我的测试用例有问题吗?
作者: qzwqzw
时间: 2008-6-26 14:00
为什么偏偏漏掉了最常用的XP SP2 中文版?
作者: HAT
时间: 2008-6-26 14:07
我没有WinXP SP2 中文版环境
公司的电脑全是英文版的
WinXP SP3 中文版还是我在虚拟机上装的
有时间再装个WinXP SP2 中文版试试
呵呵