中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 19:33
47,811 主题排行 / 349,896 发帖 / 今日 1 篇 / 48,254 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]用系统SID值替换注册表SID值
可打印版本  1,290 / 11
第1楼 hgx126 发表于 2008-09-13 00:33
初级用户 发帖 80 积分 100
[求助]用系统SID值替换注册表SID值
我导出了一个注册表文件,以便我重装系统后快速恢复设置。可重装系统后,系统的SID值发生变化。我想从系统中获取SID值,再替换已经导出的注册表文件。
SID值即注册表中“HKEY_USERS\S-1-5-21-××××××××××-××××××××××-××××××××××-×××\”中的红色部分。

比如我导出的注册表文件为Win.reg,部份内容为:

Windows Registry Editor Version 5.00
; 2008-9-12 22:20:22


S-1-5-21-1409082233-1563985344-1417001333-500\Software\Microsoft\Windows\CurrentVersion\Explorer]
"ShellState"=hex(03):24,00,00,00,35,ac,01,00,00,00,00,00,00,00,00,00,00,00,\
00,00,01,00,00,00,0d,00,00,00,00,00,00,00,00,00,00,00


S-1-5-21-1409082233-1563985344-1417001333-500\Software\Microsoft\Windows\CurrentVersion\Explorer\SmallIcons]
"SmallIcons"="no"
S-1-5-21-1409082233-1563985344-1417001333-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams]
"Settings"=hex(03):08,00,00,00,04,00,00,00,01,00,00,00,00,77,7e,13,73,35,cf,\
11,ae,69,08,00,2b,2e,12,62,04,00,00,00,01,00,00,00,43,00,00,00


我现在就是想编一个批处理,用系统中获取的SID值替换此注册表文件中的SID值(红色部分),然后导入系统。求高手帮忙。

[ Last edited by hgx126 on 2008-9-13 at 12:37 AM ]
第2楼 s11ss 发表于 2008-09-13 01:50
银牌会员 发帖 566 积分 2,098
第3楼 hgx126 发表于 2008-09-13 09:57
初级用户 发帖 80 积分 100
首先感谢S11SS.
不过我要是SID2从系统中获取,不是0-0-0-0-0-0-0-0.还求帮忙.
第4楼 HAT 发表于 2008-09-13 10:05
版主 发帖 5,017 积分 9,023
Re 3楼
第5楼 hgx126 发表于 2008-09-13 13:06
初级用户 发帖 80 积分 100
谢谢两位。
我综合两位的,结果如下:
@echo off
@set SID=S-1-5-21-1409082233-1563985344-1417001333-500
@set reg=win.reg
@for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS^|findstr /i "S-1-5-21-"') do (
set sid2=%%a
goto :show
)
goto :eof
:show
set reg2=win2.reg
@for /f "delims=" %%a in (%reg%) do @set s=%%a&call echo %%s:%SID%=%SID2%%%>>%reg2%
regedit /s win2.reg
del win2.reg

终于达到我要的效果。
我还有一个想法(不要嫌我太婆婆妈妈哈^-^):
同一目录下,有好几个注册表文件,类似于win.reg,其中也有SID值(S-1-5-21-1409082233-1563985344-1417001333-500),想批量替换成系统中的SID值后导入注册表,能否?
第6楼 HAT 发表于 2008-09-13 14:17
版主 发帖 5,017 积分 9,023
第7楼 hgx126 发表于 2008-09-13 15:07
初级用户 发帖 80 积分 100
衷心感谢,学习ing!!!

[ Last edited by hgx126 on 2008-9-16 at 11:07 PM ]
第8楼 hgx126 发表于 2008-09-16 23:09
初级用户 发帖 80 积分 100
不知为什么,用我5楼的批处理有时候又替换不成功?

[ Last edited by hgx126 on 2008-9-16 at 11:10 PM ]
第9楼 HAT 发表于 2008-09-16 23:14
版主 发帖 5,017 积分 9,023
哪个时候替换不成功?举个例子出来看看?
第10楼 hgx126 发表于 2008-09-16 23:58
初级用户 发帖 80 积分 100
Windows Registry Editor Version 5.00
; 2006-1-11 19:07:50 - 2006-1-11 19:13:27
;比较于 \HKEY_USERS



[HKEY_USERS\S-1-5-21-1409082233-1563985344-1417001333-500\Printers\DevModePerUser]
[HKEY_USERS\S-1-5-21-1409082233-1563985344-1417001333-500\Software\Microsoft\Office\11.0\Common\BaseSuite]
"1EBDE4BC9A514630B5412561FA45CCC5"=dword:00000001

[HKEY_USERS\S-1-5-21-1409082233-1563985344-1417001333-500\Software\Microsoft\Office\11.0\Common\DrawAlerts]
[HKEY_USERS\S-1-5-21-1409082233-1563985344-1417001333-500\Software\Microsoft\Office\11.0\Common\DrawAlerts\FTP Sites]
[HKEY_USERS\S-1-5-21-1409082233-1563985344-1417001333-500\Software\Microsoft\Office\11.0\Common\Internet]
"UseOnlineContent"=dword:00000002
第11楼 HAT 发表于 2008-09-17 00:18
版主 发帖 5,017 积分 9,023
第12楼 pusofalse 发表于 2008-09-17 00:36
银牌会员 发帖 646 积分 1,604
getsid/?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023