Board logo

标题: [问题求助] [已解决]VBS能否不使用第三方程序实现获取注册所有权? [打印本页]

作者: 9zhmke    时间: 2015-12-19 15:36     标题: [已解决]VBS能否不使用第三方程序实现获取注册所有权?

本帖最后由 9zhmke 于 2016-1-18 11:24 编辑

以前一直使用SetAcl来做自己的优化程序,前几天安装了个锋城的精简版Win10,发现用之前的SetAcl语句无法正常使用了,有没有直接使用VBS语句对注册表取得所有权,然后能重置某个子树权限的方法呢?

附上以前使用的程序片段:
  1. SetRegACL("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}")
  2. WshShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}\"
  3. Function SetRegACL(reg_path) '为当前用户设置注册表权限
  4.     dim tmp1,tmp2,tmp3,sid
  5.     Set tmp1 = Getobject("winmgmts:\\.") '取当前用户SID
  6.     Set tmp3=tmp1.execquery("select sid from win32_userAccount where name='"&WshShell.ExpandEnvironmentStrings("%username%") &"'")
  7.     For Each tmp2 In tmp3
  8.         sid = tmp2.sid
  9.     Next
  10.     set tmp1=nothing
  11.     set tmp3=nothing
  12.     tmp1=chr(34) & reg_path & chr(34) & " -ot reg -actn setowner -ownr " & chr(34) & "n:" & sid & ";s:y" & chr(34)
  13.     tmp2=chr(34) & reg_path & chr(34) & " -ot reg -actn ace -ace " & chr(34) & "n:"
  14.     WshShell.Run chr(34) & my_dir & "data\setacl.exe" & chr(34) & " -on " & tmp1,0,true '先获得所有权
  15.     WshShell.Run chr(34) & my_dir & "data\setacl.exe" & chr(34) & " -on " & tmp2 & WshShell.ExpandEnvironmentStrings("%username%") & ";p:full",0,true '再设置用户权限
  16. End Function
复制代码
完整程序请移步:http://bbs.dp168.com/thread-90732-1-1.html
作者: CrLf    时间: 2015-12-19 16:51

ini
作者: 707093864    时间: 2015-12-19 17:17

用wmic试试看
作者: 9zhmke    时间: 2015-12-19 20:35

本帖最后由 9zhmke 于 2015-12-19 20:36 编辑

回复 2# CrLf


    一直以为Regini也是第三方软件,刚在WIN10里敲了下,居然内置了。
作者: 9zhmke    时间: 2015-12-19 20:38

用wmic试试看
707093864 发表于 2015-12-19 17:17



    貌似不行,很早前找到过一个脚本,很长很大很复杂,大约是只能实现权限部分,没有获取所有权功能。
作者: 9zhmke    时间: 2015-12-23 11:12

ini
CrLf 发表于 2015-12-19 16:51



    由于不太熟和没足够时间一直没弄。刚试过了regini的功能,貌似不能获取控制权啊?
系统:Windows10 x64
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\DefaultIcon [1 7 17]
默认权限:
SYSTEM Administraotr 只读 / Trustedinstaller完全 / 所有者SYSTEM
将此句写入到regini.ini文件中并用regini regini.ini配置没有提示:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\DefaultIcon [1 7 17]
进注册表看内容仍然没有改变,怎样设置取得所有权呢?
作者: wskwfkbdn    时间: 2016-1-17 22:42     标题: 标题

回复 5# 9zhmke
系统里面本来就有滴
作者: 9zhmke    时间: 2016-1-18 11:23

本帖最后由 9zhmke 于 2016-1-18 11:25 编辑

回复 7# wskwfkbdn


    是的,已经搞定,以后不再用外置软件了,感谢各位的帮助、指导
作者: ygqiang    时间: 2016-1-18 15:50

回复 8# 9zhmke


    最后解决的代码是?
作者: 9zhmke    时间: 2016-1-19 19:56

回复  9zhmke


    最后解决的代码是?
ygqiang 发表于 2016-1-18 15:50



    在楼顶的链接已给出了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2