找回密码
 加入
搜索
查看: 1260|回复: 2

在UDF板块内的 安全策略 那个udf 请问怎么用??

[复制链接]
发表于 2009-6-4 11:33:00 | 显示全部楼层 |阅读模式
本帖最后由 lele9013 于 2009-6-4 11:39 编辑

链接在此

http://www.autoitx.com/forum.php ... &extra=page%3D1


我首选新建了一个注册表 在 Machine\SOFTWARE\test

然后想把everyone 设为只读 权限

为啥有时候可以。。有时候不可以呢??
$aKeySecur = _GetNamedSecurityInfo("Machine\SOFTWARE\test", $SE_REGISTRY_KEY, $DACL_SECURITY_INFORMATION)



$pKeySecurDesc = $aKeySecur[8]        ; 指向Sam键安全信息的安全描述符(security descriptor)指针。

$pKeyACL = $aKeySecur[6]        ; 指向注册表键“访问控制列表(ACL)”的指针




Dim $aExplicitAccess[1][4]


$aExplicitAccess[0][0] = "everyone"                ; 要设置权限的用户。

$aExplicitAccess[0][1] = $KEY_READ        ; KEY_ALL_ACCESS = 完全控制

$aExplicitAccess[0][2] = $SET_ACCESS                ; 访问模式为SET_ACCESS

$aExplicitAccess[0][3] = $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)
 楼主| 发表于 2009-6-4 11:41:24 | 显示全部楼层
刚又试了下。。发现 在初始情况下 (就是新建一个test 默认的用户权限下) 是可以的

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

就不管用了。。。。
发表于 2009-6-4 12:10:21 | 显示全部楼层
用_RegSetKeySecurityDacl函数吧。
#include <LocalSecurityAuthority.au3>

Dim $aAccess[1][4] = [["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。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 21:41 , Processed in 0.068708 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表