lele9013 发表于 2009-6-4 11:33:00

在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)

lele9013 发表于 2009-6-4 11:41:24

刚又试了下。。发现 在初始情况下 (就是新建一个test 默认的用户权限下) 是可以的

然后。。如何运行后。。把 everyone的 安全控制 设为拒绝 或者改版现有权限后

就不管用了。。。。

pusofalse 发表于 2009-6-4 12:10:21

用_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]
查看完整版本: 在UDF板块内的 安全策略 那个udf 请问怎么用??