找回密码
 加入
搜索
查看: 2553|回复: 1

[AU3基础] 修改注册表权限问题 ( 有更细部的权限可以控制吗??)

[复制链接]
发表于 2014-5-1 00:34:14 | 显示全部楼层 |阅读模式
看到一篇 有關 註冊表 權限的問題....
實際測試後 卻發現 ~~~取消的時候 無法 真正取消 恢復原來的權限~~

有人 了解 更細部的 權限控管嗎??
譬如: 通知 刪除  讀取控制 等等的  可以細到進階權限的方法嗎??


#include <Array.au3>
#include <LocalSecurityAuthority.au3>

; 设置注册表Machine\Sam\Sam键的权限。
; ==================================================================================


; 返回包含Machine\Sam\Sam键安全信息的数组
$aKeySecur = _GetNamedSecurityInfo("Machine\Sam\Sam", $SE_REGISTRY_KEY, 

$DACL_SECURITY_INFORMATION)

$pKeySecurDesc = $aKeySecur[8]        ; 指向Sam键安全信息的安全描述符(security descriptor)指针。
$pKeyACL = $aKeySecur[6]        ; 指向注册表键“访问控制列表(ACL)”的指针

; $pKeyACL = _GetSecurityDescriptorDacl($pKeySecurDesc)                ; 另一种获取ACL指针的方法。

Dim $aExplicitAccess[1][4]        ; 定义包含ACE信息的数组,为新用户设置新的权限。

$aExplicitAccess[0][0] = "administrator"                ; 要设置权限的用户。
$aExplicitAccess[0][1] = $KEY_ALL_ACCESS        ; KEY_ALL_ACCESS = 完全控制
$aExplicitAccess[0][2] = $SET_ACCESS                ; 访问模式为SET_ACCESS
$aExplicitAccess[0][3] = $SUB_CONTAINERS_AND_OBJECTS_INHERIT        ; 权限继承其所有子键。

$pNewDacl = _SetEntriesInAcl($aExplicitAccess, $pKeyACL) ; 在原有的ACL基础上,新添加一个ACE。返回一个

新的ACL指针,用于_SetNamedSecurityInfo设置权限。

; 设置权限
$iResult = _SetNamedSecurityInfo("Machine\Sam\Sam", $SE_REGISTRY_KEY, 

$DACL_SECURITY_INFORMATION, 0, 0, $pNewDacl, 0)

If $iResult = True Then
        Msgbox(0, "提升权限", "成功")
Else
        Msgbox(0, "提升权限", "失败,错误码:" & @ERROR)
EndIf

$aExplicitEntries = _GetExplicitEntriesFromACL($pNewDacl); 返回"访问控制列表ACL"中的“访问控制条目(? 

or入口)ACE”的信息,包含在一个二维数组中。

_ArrayDisplay($aExplicitEntries)


; 删除刚刚添加的权限

_DeleteAce($pNewDacl, 0)        ; 删除第一个ACE(以0为基始,新添加的ACE始终都是在ACL的头部)。
$iResult = _SetNamedSecurityInfo("Machine\Sam\Sam", $SE_REGISTRY_KEY, 

$DACL_SECURITY_INFORMATION, 0, 0, $pNewDacl, 0) ;重新设置权限

$aExplicitEntries = _GetExplicitEntriesFromACL($pNewDacl);再次返回ACE条目(or 入口?)信息。

_ArrayDisplay($aExplicitEntries)

发表于 2014-5-1 11:11:43 | 显示全部楼层
同问,这个我也想知道,就不知道可否再深入。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 21:59 , Processed in 0.066649 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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