标题: [问题求助] 【已解决】怎样将获取注册表SID的bat文件vbs文件? [打印本页]
作者: yyz219 时间: 2021-8-30 09:47 标题: 【已解决】怎样将获取注册表SID的bat文件vbs文件?
本帖最后由 yyz219 于 2021-12-25 08:51 编辑
完美解决了
复制【sid】(默静}。vbs
'【获取“注册表sid,并生成“注册表数字串.txt”文件】
set path=wscript.createobject("wscript.shell")
name=path.ExpandEnvironmentStrings("%username%")
strComputer = "."
Set wbemServices = Getobject("winmgmts:\\" & strComputer)
Set wbemObjectSet=wbemServices.execquery("select sid from win32_userAccount where name='"&name&"'")
For Each mo In wbemObjectSet
sSID = mo.sid
Next
If(sSID = "")Then
Else
set fso = CreateObject("Scripting.FileSystemObject")
currentpath = createobject("Scripting.FileSystemObject").GetFolder(".").Path
set f = fso.CreateTextFile(currentpath&"\"&"注册表数字串.txt", true)
f.Write sSID
f.Close()
set f = nothing
set fso = nothing
End If
'【复制“注册表数字串.txt”里面内容到剪切板】
set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
set f=fso.opentextfile("注册表数字串.txt",1)
ws.run "mshta vbscript:ClipBoardData.setData(""Text"","""&f.readall&""")(window.close)", 0, true
createobject("wscript.shell").run "cmd /c del 注册表数字串.txt",0 '【删除:注册表数字串.txt】
CreateObject("WScript.Shell").Run "cmd /c D:\1绿色软件\bat批处理\已经复制.bat",1 '【 行末尾的 ,0表示隐藏窗口】
作者: yyz219 时间: 2021-8-30 13:52
我自己写成下面,请大侠看看能不能简化?谢谢!
'【获取注册表sid并生存文本:“注册表数字串.txt”】
set fso=CreateObject("Scripting.FileSystemObject")
set fw=fso.createtextfile("获取sid.bat",2)
fw.writeline("@echo off" )
fw.writeline("for /f ""delims="" %%a in ('wmic userAccount where ""Name='%userName%'"" get SID /value') do call set %%a>nul")
fw.writeline("echo %sid%>注册表数字串.txt %【本行和上一行:获取注册表数字串( sid),并且写入“注册表数字串.txt”】%")
fw.writeline("exit")
CreateObject("WScript.Shell").Run "cmd /c 获取sid.bat",0 '【 行末尾的 ,0表示隐藏窗口】
作者: 窄口牛 时间: 2021-8-31 06:49
不是要生成注册表里没有的吗?你这是要把所有的取出来?
作者: yyz219 时间: 2021-8-31 07:19
不是要生成注册表里没有的吗?你这是要把所有的取出来?
窄口牛 发表于 2021-8-31 06:49
不容易取出来
作者: aries215 时间: 2021-8-31 19:56
本帖最后由 aries215 于 2021-8-31 20:14 编辑
查询注册表获取SID是最简便的,环境依赖最少,不用生成中间文件。- @echo off
- for /f "delims=\ tokens=2" %%a in ('reg query "HKU" /k /f "S-1-5-21-" 2^>nul') do (set "usid=%%~a" && goto end)
- :end
- echo %UserName%:%usid%
- pause
复制代码
还有键值:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI
作者: yyz219 时间: 2021-8-31 20:08
回复 5# aries215
我还希望能够复制到剪切板,粘贴的时候不换行
我的最终解决方案是:复制【sid】(默静}.vbs
'【获取“注册表sid,并生成“注册表数字串.txt”文件】
set path=wscript.createobject("wscript.shell")
name=path.ExpandEnvironmentStrings("%username%")
strComputer = "."
Set wbemServices = Getobject("winmgmts:\\" & strComputer)
Set wbemObjectSet=wbemServices.execquery("select sid from win32_userAccount where name='"&name&"'")
For Each mo In wbemObjectSet
sSID = mo.sid
Next
If(sSID = "")Then
Else
set fso = CreateObject("Scripting.FileSystemObject")
currentpath = createobject("Scripting.FileSystemObject").GetFolder(".").Path
set f = fso.CreateTextFile(currentpath&"\"&"注册表数字串.txt", true)
f.Write sSID
f.Close()
set f = nothing
set fso = nothing
End If
'【复制“注册表数字串.txt”里面内容到剪切板】
set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
set f=fso.opentextfile("注册表数字串.txt",1)
ws.run "mshta vbscript:ClipBoardData.setData(""Text"","""&f.readall&""")(window.close)", 0, true
createobject("wscript.shell").run "cmd /c del 注册表数字串.txt",0 '【删除:注册表数字串.txt】
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |