[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 请教reg转批处理,关于sid,自动判断。

1.比如下面这个注册表转bat后,不知道新机器的sid,能否自动判断?
请大神不吝赐教,感谢!

[HKEY_USERS\S-1-5-21-3677012637-222222222-2222222222-500\SOFTWARE\Boilsoft\Boilsoft Video Splitter]
"sn"="88888"
"usr"="88888"

本帖最后由 test666 于 2021-5-27 17:15 编辑

for /f %%a in (reg query HKEY_USERS\S-1-5-21-3677012637-222222222-2222222222-500\SOFTWARE\Boilsoft\Boilsoft Video Splitter/ /v sn) do set snn=%%a
if %snn%=="88888" (echo 是) else (echo 不是)
另外一个也可以这样写

TOP

1.比如下面这个注册表转bat后,不知道新机器的sid,能否自动判断?
请大神不吝赐教,感谢!

[HKEY_USER ...
zag0699 发表于 2021-5-27 13:10

注册表用户的键值不同,需要获取

TOP

注册表用户的键值不同,需要获取
test666 发表于 2021-5-27 17:10



    就是HKEY_USERS后面的键值不同

TOP

回复 4# test666


   是的,就是这个意思,后面的值能自动判断吗??

TOP

回复 2# test666


这样就解决了么?看着不像,看不懂,我的需求就是自动判断后面的值或者替代方法,感谢回复。

TOP

获取账户名及对应的SID
wmic UserAccount get Name,SID

TOP

回复 7# WHY
大神能否套进注册表,完整表达。这样不知道怎么整啊。感谢!

TOP

回复 5# zag0699


    能
用if来判断

TOP

  1. @echo off
  2. for /f %%i in ('wmic UserAccount where "Name='%UserName%'" get SID ^| find "-"') do (
  3.     set "SID=%%i"
  4. )
  5. reg query "HKEY_USERS\%SID%\Software"
  6. pause
复制代码

TOP

回复 10# WHY


谢谢帮助,我试试

TOP

回复 1# zag0699


    wmic UserAccount where "Name='%username%'" get sid /value
更加简单的

TOP

批处理没有具体测试过,inno setup 我是这样处理的
HKEY_USERS\S-1-5-21-3677012637-222222222-2222222222-500\SOFTWARE
替换为
HKEY_CURRENT_USER\Software

TOP

本帖最后由 zag0699 于 2021-6-1 10:44 编辑

回复 13# hfstar

这样行么?这样行的话就简单了
以前好像在哪看见别人也这么说的,不知道没去试,还是试了不行,忘了

TOP

回复 14# zag0699
这个可以的,你可以试用一下,sid 会自动生成的

TOP

返回列表