[已解决]_Net_Share_ShareAdd有法设置只读共享吗?
本帖最后由 jycel 于 2009-6-27 15:04 编辑使用_Net_Share_ShareAdd做共享,$iType>共享权限,UDF中每个都试了下,要么是完全共享,要么无法设置权限!不会像批处理要借助三方软件才能设权限吧?牛人请指点下! 刚问了下其它朋友,好像UDF的问题,建议牛人完善下!
http://www.cnblogs.com/wdhust/archive/2009/03/03/1264388.html有参照方法
UDF:NetShare.au3 没有搜索吗?-,-
http://www.autoitx.com/forum.php?mod=viewthread&tid=6767&highlight=%B9%B2%CF%ED 本帖最后由 jycel 于 2009-5-10 21:37 编辑
那参考答案太深了还是C++~~别说论坛,网上都搜索过~~
我是想用AU3 来实现 4# jycel
3楼给出的链接就是用au3实现的啊,4楼的代码。
你把其中的一句$tSid = _LookupAccountName(@UserName)改成:
$tSid = _LookupAccountName("everyone")就好了啊。 权限一个都没勾用那代码 本帖最后由 mhgd 于 2009-6-24 23:55 编辑
我也想知道,还是没有解决啊,
#include <WinAPI.au3>
CONST $FILE_CREATE_PIPE_INSTANCE = 4
CONST $GENERIC_ALL = 0x10000000
CONST $GENERIC_READ = 0x80000000
CONST $GENERIC_WRITE = 0x40000000
CONST $FILE_EXECUTE = 0x20
CONST $FILE_TRAVERSE = 0x20
$hHeap = _GetProcessHeap()
$pAcl = _HeapAlloc($hHeap, 0, 1024)
_InitializeAcl($pAcl, 1024)
$tSecurDesc = _InitializeSecurityDescriptor()
$pSecurDesc = DllStructGetPtr($tSecurDesc)
$tSid = _LookupAccountName(@UserName)
$pSid = DllStructGetPtr($tSid)
_AddAccessAllowedAce($pAcl, $pSid, $GENERIC_READ)
_SetSecurityDescriptorDacl($pSecurDesc, $pAcl)
红色是关键代码,但经查资料,应该是很正确的,但不知道为什么,运行的效果是什么都没选 ,如果改成完全共享的话_AddAccessAllowedAce($pAcl, $pSid, $GENERIC_ALL),又很正常。郁闷中。。。。 #include <LocalSecurityAuthority.au3>
$sShareName = "MyShare"
$iAccessMask = 0x001200a9 ; Read only
$pAcl = _SetEntriesInAcl1("Everyone", $iAccessMask, 1, 0)
$iResult = _SetNamedSecurityInfo($sShareName, $SE_LMSHARE, 4, 0, 0, $pAcl, 0)
If $iResult Then
Msgbox(0, 'Success', 'Done!')
Else
Msgbox(0, 'Error', 'Error code:' & @ERROR)
EndIfLocalSecurityAuthority.au3 - http://www.autoitx.com/forum.php?mod=viewthread&tid=7080 多谢老大,终于成功了,
谢谢。。。。 好东西啊,收藏 我试了一下,怎么提示错误代码2310呢 提示错误代码2310,为什么呢?
页:
[1]