3

コマンド プロンプトでnet fileを実行すると、共有フォルダで開いているリソースが表示され、リソースにアクセスしているユーザー名も表示されます。

例: ネットファイルの例

同じ情報は、コンピューターの管理 (compmgmt.msc) -> システム ツール -> 共有フォルダー -> 開いているファイルから参照できます。

例: コンピュータ管理のオープン ファイルの例

VBScript を使用して同じ情報にアクセスできます。

Set objConnection = GetObject("WinNT://localhost/LanmanServer")
Set colResources = objConnection.Resources
For Each objResource in colResources
    Wscript.Echo "Path: " & objResource.Path
    Wscript.Echo "User: " & objResource.User
    Wscript.Echo
Next

これと同じ情報に C# 経由でアクセスするにはどうすればよいでしょうか? new file( C# からコマンドを実行しないと、リソース内の長いパス名が切り捨てられます)。

WMI (どのクラスですか? -Win32_ServerConnection開いているリソースのパスを提供していないと思います; と同じWin32_ServerSession) または Netapi32.dll を使用して、この情報にアクセスすることは可能ですか? もしそうなら、どうすればこれを行うことができますか?

注:コマンド プロンプトおよびコンピューター管理からスクリーンショットの情報と同様に、開かれたファイルのフル パスを取得する方法が必要です。

何か案は?

4

0 に答える 0