标题: [系统相关] 怎样用批处理获取系统中当前账户的SID? [打印本页]
作者: lk188 时间: 2008-10-28 18:39 标题: 怎样用批处理获取系统中当前账户的SID?
在windows平台下 因为需要绿化一个软件 所以需要用bat取得当前账户的sid
曾经想过用系统盘下回收站的名字来获取sid
-
- for /f "delims=:" %%a in ('dir /a:hs %SystemDrive%\RECYCLER\S-1-5-21* /b') do set sid=%%a
复制代码
但是经过朋友测试 在其他人的机器上总是失败···
请问有没有另外的方法去获取系统里当前用户的sid??
作者: jesqiu 时间: 2010-11-7 13:24
昨晚为了写一个批处理,也要取得当前帐户的SID,网上没看到有资料,捣鼓了很久,终于出来了,WINDOWS 7下测试,不过我的系统只有一个用户,所以不确定是否完全正确
- ::先在HKEY_USERS\[当前帐户的SID]\Volatile Environment\下的USERNAME键值,判断是否与%username%相等,如果是得到SID
- for /f "tokens=*" %%a in ('REG QUERY "HKEY_USERS" /s /v USERNAME ^| find /i "Volatile Environment"') do (
- ::这个时候可能有多个匹配结果,在用户列表中找USERNAME为当前帐户的SID
- for /f "tokens=*" %%1 in ('REG QUERY "%%a" /v USERNAME ^| find /i "%username%"') do (
- ::echo %%1
- SET "SID=%%a"
- )
- )
- ::取出SID
- for /f "tokens=1-4,* delims=\" %%i in ('echo %SID%') do (
- SET "SID=%%j"
- )
-
- echo SID值为:%SID%
- pause
- exit
复制代码
请高手指教~挖坟,留爪给后来人测试
作者: zqz0012005 时间: 2010-11-7 13:55
运行wmic的帐户可能需要管理员权限- @echo off
- for /f "delims=" %%a in ('wmic userAccount where "Name='%userName%'" get SID /value') do call set %%a >nul
- echo %sid%
- pause
复制代码
作者: jesqiu 时间: 2010-11-7 14:10
good!谢谢版主~~
wmic还真是第一次见到,学习了,好久没到论坛,一来又学到新知识了
作者: pcl_test 时间: 2017-4-13 14:13
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |