在UDF板块内的 安全策略 那个udf 请问怎么用??
本帖最后由 lele9013 于 2009-6-4 11:39 编辑链接在此
http://www.autoitx.com/forum.php?mod=viewthread&tid=7080&extra=page%3D1
我首选新建了一个注册表 在 Machine\SOFTWARE\test
然后想把everyone 设为只读 权限
为啥有时候可以。。有时候不可以呢??$aKeySecur = _GetNamedSecurityInfo("Machine\SOFTWARE\test", $SE_REGISTRY_KEY, $DACL_SECURITY_INFORMATION)
$pKeySecurDesc = $aKeySecur ; 指向Sam键安全信息的安全描述符(security descriptor)指针。
$pKeyACL = $aKeySecur ; 指向注册表键“访问控制列表(ACL)”的指针
Dim $aExplicitAccess
$aExplicitAccess = "everyone" ; 要设置权限的用户。
$aExplicitAccess = $KEY_READ ; KEY_ALL_ACCESS = 完全控制
$aExplicitAccess = $SET_ACCESS ; 访问模式为SET_ACCESS
$aExplicitAccess = $SUB_CONTAINERS_AND_OBJECTS_INHERIT ; 权限继承其所有子键。
$pNewDacl = _SetEntriesInAcl($aExplicitAccess, $pKeyACL) ; 在原有的ACL基础上,新添加一个ACE。返回一个
; 设置权限
$iResult = _SetNamedSecurityInfo("Machine\SOFTWARE\test", $SE_REGISTRY_KEY, $DACL_SECURITY_INFORMATION, 0, 0, $pNewDacl, 0)
刚又试了下。。发现 在初始情况下 (就是新建一个test 默认的用户权限下) 是可以的
然后。。如何运行后。。把 everyone的 安全控制 设为拒绝 或者改版现有权限后
就不管用了。。。。 用_RegSetKeySecurityDacl函数吧。
#include <LocalSecurityAuthority.au3>
Dim $aAccess = [["Everyone", $KEY_READ, 1, 3]]
$iResult = _RegSetKeySecurityDacl($HKEY_LOCAL_MACHINE, "Software\Test", $aAccess, 0)
If $iResult Then
Msgbox(0, "", "Succeed")
Else
Msgbox(0, "", "Fail, error code: " & @error)
EndIf
注意此函数的第一个参数必须是主键句柄,第二个是子键。$aAccess 同_SetEntriesInAcl。
页:
[1]