用VB SHELL如何对注册表内文件夹进行权限修改
用VB SHELL如何对注册表内文件夹进行权限修改
我现在写了点用VB对注册表进行增删改
但是我现在需要对一个文件夹进行修改权限我不知道改如何修改了!
求大大帮助
[解决办法]
用shell函数调用cacls.exe吧
c:\>cacls
显示或者修改文件的访问控制表(ACL)
CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]
[/P user:perm [...]] [/D user [...]]
filename 显示 ACL。
/T 更改当前目录及其所有子目录中
指定文件的 ACL。
/E 编辑 ACL 而不替换。
/C 在出现拒绝访问错误时继续。
/G user:perm 赋予指定用户访问权限。
Perm 可以是: R 读取
W 写入
C 更改(写入)
F 完全控制
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
/P user:perm 替换指定用户的访问权限。
Perm 可以是: N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
/D user 拒绝指定用户的访问。
在命令中可以使用通配符指定多个文件。
也可以在命令中指定多个用户。
[解决办法]
这是我从网上抄来的。
楼主自己看看
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strComputer = "."
strRegSettings = Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "RegSettings.ini"
strRegKey = "SYSTEM\ControlSet001\Enum\USB\Vid_0bc7&Pid_0002\"
Const HKEY_LOCAL_MACHINE = &H80000002
Set objRegistry = GetObject("winmgmts:" & _
"{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
If Right(strRegKey, 1) = "\" Then
strResults = "\Registry\Machine\" & Left(strRegKey, Len(strRegKey) - 1) & " [17 7]" & VbCrLf
Else
strResults = "\Registry\Machine\" & strRegKey & " [17 7]" & VbCrLf
End If
EnumRegKeys HKEY_LOCAL_MACHINE, strRegKey
Set objFile = objFSO.CreateTextFile(strRegSettings, True)
objFile.Write strResults
objFile.Close
Set objFile = Nothing
strCommand = "regini """ & strRegSettings & """"
objShell.Run strCommand, 0, True
MsgBox "Done."
Sub EnumRegKeys(strRegRoot, strKey)
'Returns a non-zero return value if the key does not exist
If objRegistry.EnumKey(strRegRoot, strKey, arrKeyNames) = 0 Then
If IsNull(arrKeyNames) = False Then
For Each strKeyName In arrKeyNames
If Right(strKey, 1) = "\" Then
strFullPath = strKey & strKeyName
Else
strFullPath = strKey & "\" & strKeyName
End If
strResults = strResults & "\Registry\Machine\" & strFullPath & " [17 7]" & VbCrLf
EnumRegKeys strRegRoot, strFullPath
Next
End If
End If
End Sub