函数参考


_Net_Share_FileEnum

返回服务器上打开的文件信息

#Include <NetShare.au3>
_Net_Share_FileEnum([$sServer = ""[, $sBaseName = ""[, $sUserName = ""]]])

参数

$sServer [可选参数] 包含服务器执行函数的名称
留空则指定本地计算机.
$sBaseName [可选参数] 包含返回信息的限定符. 如果为空, 则枚举所有打开的资源
如果不为空, 函数枚举有 $sBaseName 前缀的唯一资源.
$sUserName [可选参数] 指定用户名. 如果不为空, $sUserName 作为枚举的限定符.

返回值

成功: 返回以下格式的数组:
[0][0] - 数组条目数量 (n)
[1][0] - 资源打开时分配的 ID
[1][1] - 与打开的应用程序相关的权限:
1 - 读取和执行资源
2 - 写入到资源.
4 - 创建资源
8 - 执行权限
16 - 删除权限
32 - 更改属性
64 - 更改 ACL
[1][2] - 包含锁定在资源上的文件数
[1][3] - 指定打开资源的路径
[1][4] - 指定打开资源的用户或计算机
失败: 设置@error:

注意/说明

系统管理员,服务器操作员或本地组成员才能执行此功能

相关

_Net_Share_ConnectionEnum, _Net_Share_SessionEnum, _Net_Share_ShareEnum

详情参考

在MSDN中搜索


示例/演示


#include <GUIConstantsEx.au3>
#include <NetShare.au3>
#include <WindowsConstants.au3>

Global $iMemo

_Main()

Func _Main()
    Local $sServer, $aInfo

    ; 创建 GUI
    GUICreate("NetShare", 400, 300)

    ; 创建 memo 控件
    $iMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

    ; Get server and share information
    $sServer = InputBox("NetWork Demo", "Enter Server Name:", "\\MyServer", "", 200, 130)
    If @error Then Exit

    ; Enumerate open files on the server
    $aInfo = _Net_Share_FileEnum($sServer)
    MemoWrite("Error ...................: " & @error)
    MemoWrite("Entries read ............: " & $aInfo[0][0])
    For $iI = 1 To $aInfo[0][0]
        MemoWrite("Resource ID .............: " & $aInfo[$iI][0])
        MemoWrite("Resource permissions ....: " & _Net_Share_PermStr($aInfo[$iI][1]))
        MemoWrite("Resource locks ..........: " & $aInfo[$iI][2])
        MemoWrite("Resource path ...........: " & $aInfo[$iI][3])
        MemoWrite("Resource user ...........: " & $aInfo[$iI][4])
        MemoWrite()
    Next

    ; 循环直到用户退出
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>_Main

; 写入消息到 memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite