#include <LocalSecurityAuthority.au3>
If Not IsDeclared("FILE_ALL_ACCESS") Then $FILE_ALL_ACCESS = 0x1f01ff
If Not IsDeclared("GENERIC_READ") Then $GENERIC_READ = 0x80000000
$sFile = @ScriptDir & "\Tasks.x" ; 要设置权限的文件, 必须位于NTFS系统上。
; 定义访问权限的ACE信息,用于_SetEntriesInAcl函数返回ACL指针。
Dim $aAccess[2][4] = [["admin", $FILE_ALL_ACCESS, 1, 0], ["guest", $GENERIC_READ, 1, 0]]
; 以上,admin用户可完全控制文件(权限), guest用户只能只读。
$pAcl = _SetEntriesInAcl($aAccess, 0)
If _SetNamedSecurityInfo($sFile, $SE_FILE_OBJECT, 4, 0, 0, $pAcl, 0) Then
Msgbox(0, "Done", "成功")
Else
Msgbox(0, "失败", "错误码:" & @error)
EndIf
|