サーバー上で開いている特定のリソースに関する情報を取得します。
#Include <NetShare.au3>
_Net_Share_FileGetInfo($sServer, $iFileID)
パラメータ
$sServer | この関数が実行されるリモートサーバーのDNSまたはNetBIOS名を指定する文字列。 このパラメータが空白の場合、ローカルコンピュータが使用されます。 |
$iFileID | 情報を返すリソースのファイル識別子。 このパラメータの値は以前の列挙呼び出しで返されたものでなければなりません。 |
返し値
成功: | 次のフォーマットの配列: |
[0] - 開かれた際にリソースに割り当てられるID番号 | |
[1] - 開くアプリケーションに関連付けられたアクセス許可: | |
1 - リソース読み込み、リソース実行許可 | |
2 - リソースへの書き込み許可 | |
4 - リソース作成許可 | |
8 - 実行許可 | |
16 - 削除許可 | |
32 - 属性変更許可 | |
64 - ACL変更許可 | |
[2] - リソース上のファイルロックの数を格納しています | |
[3] - 開かれているリソースのパスを指定します | |
[4] - どのユーザー、コンピュータがリソースを開いたかを指定します | |
失敗: | @errorを設定します |
注意
この関数の実行には管理者権限、サーバーまたはプリントオペレータまたはパワーユーザーグループのメンバー権限が必要です。
関連
_Net_Share_SessionGetInfo, _Net_Share_ShareGetInfo
こちらも参照
MSDNライブラリでNetFileGetInfoを検索して下さい。
例
#include <GuiConstantsEx.au3>
#include <NetShare.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $sServer, $aFile, $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
; サーバー上の開いているファイルの列挙
$aFile = _Net_Share_FileEnum ($sServer)
MemoWrite("Error ...................: " & @error)
MemoWrite("Entries read ............: " & $aFile[0][0])
MemoWrite()
; 開かれている各ファイルの情報を取得($aFile情報と同じ)
For $iI = 1 To $aFile[0][0]
$aInfo = _Net_Share_FileGetInfo ($sServer, $aFile[$iI][0])
MemoWrite("Error ...................: " & @error)
MemoWrite("File permissions ........: " & _Net_Share_PermStr ($aInfo[1]))
MemoWrite("File locks ..............: " & $aInfo[2])
MemoWrite("File path ...............: " & $aInfo[3])
MemoWrite("File user ...............: " & $aInfo[4])
MemoWrite()
Next
; ユーザーが終了するまでループ
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
; メモにメッセージ書き込み
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite