原创文章,转载请注明出处!谢谢
和unix一样,在程序世界里,用户只是一个id。通常新建用户id会递增,删除后这个id就不再使用了。通常unix系统可以修改passwd文件,但是windows不能。
我这里使用了RunasSystem和注册表编辑器实现修改用户id。以下测试方案在windows7虚拟机中测试通过,在win10目标机测试通过。
测试流程如下:
1.当前用户名是user,新建用户new,两者都隶属于administrators
2.在当前桌面上创建一个标记文件,例如user.txt
3.注销user,登录新用户new,删掉user用户
4.启动RunasSystem,运行regedit,这相当于启动了一个system权限的regedit
5.进入HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users,并导出注册保存到c:\1.reg
6.进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 单击下面的每个SID,查看右侧的ProfileImagePath路径,找出new和user的ID,例如user用户的SID是S-1-5-21-3758146366-2367375602-3803148922-1001,那么user的id就是1001。这里我查看到new用户是1001,user用户是1002,对应的16进制就是0x3e9和0x3ea
6.在RunasSystem的命令行运行 notepad c:\1.reg
7.[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003EA] 修改为 [HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003E9]。同时修改下面的F值和V值,寻找其中的ea,03改成e9,03。
8.[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\new]下面的@=hex(3ea):改成3e9
9.保存1.reg,使用注册表编辑器导入1.reg,导入后删除HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003EA
10.使用管理工具将new用户重新添加到users组、administrators组,并修改密码
11.注销new用户重新登录,发现已经恢复成user用户的桌面了,将new用户改回user的名字即可。
原创文章,转载请注明出处!谢谢