サーバー上で開かれているファイルの情報を返します。
#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ライブラリでNetFileEnumを検索して下さい。
例
#include <GuiConstantsEx.au3>
#include <NetShare.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $sServer, $aInfo
; GUI作成
$hGUI = GUICreate("NetShare", 400, 300)
; メモコントロール作成
$iMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; サーバー情報、共有情報の取得
$sServer = InputBox("NetWork Demo", "Enter Server Name:", "\\MyServer", "", 200, 130)
If @error Then Exit
; サーバー上の開いているファイルの列挙
$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
; メモにメッセージ書き込み
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite