none
特定のファイルサーバーのセッションの切断について RRS feed

  • 質問

  • いつもお世話になります。

    あるファイルサーバーで特定のフォルダに接続しているユーザーのセッションだけを接続したいのですが、powershellでこういったことは実現可能でしょうか?

    ※実現したいこと

    1.ファイルサーバーでフォルダ【\\abc\aa】【\\abc\ab】【\\abc\ac】のフォルダがある

    2.【\\abc\aa】に接続しているユーザーのセッションを全て切断したい

    以上、よろしくお願いいたします。

    2021年12月3日 8:41

回答

  • SmbShareモジュールのコマンドレットを用いれば可能です。

    ただし、私の調べた限りでは、あるセッションで接続されているフォルダパスの一覧を取得する、直接的な方法は用意されていないようでした。
    よって、最初に接続されているすべてのフォルダパスを取得してから、該当セッションを抽出する方法を取る必要がありそうです。

    例えばC:\aaを開いているクライアントのセッションを閉じるには、以下のようにすると良いかと思います。

    (共有フォルダのパスは、ファイルサーバーでの絶対パスで指定してください。)

    $ids = @(
        Get-SmbOpenFile |
        Where-Object Path -eq "C:\aa" |
        Group-Object SessionId |
        Select-Object -ExpandProperty Name
    )
    Close-SmbSession -SessionId $ids

    • 回答としてマーク shumiky 2021年12月8日 5:29
    2021年12月3日 13:21
    モデレータ

すべての返信

  • SmbShareモジュールのコマンドレットを用いれば可能です。

    ただし、私の調べた限りでは、あるセッションで接続されているフォルダパスの一覧を取得する、直接的な方法は用意されていないようでした。
    よって、最初に接続されているすべてのフォルダパスを取得してから、該当セッションを抽出する方法を取る必要がありそうです。

    例えばC:\aaを開いているクライアントのセッションを閉じるには、以下のようにすると良いかと思います。

    (共有フォルダのパスは、ファイルサーバーでの絶対パスで指定してください。)

    $ids = @(
        Get-SmbOpenFile |
        Where-Object Path -eq "C:\aa" |
        Group-Object SessionId |
        Select-Object -ExpandProperty Name
    )
    Close-SmbSession -SessionId $ids

    • 回答としてマーク shumiky 2021年12月8日 5:29
    2021年12月3日 13:21
    モデレータ
  • 牟田口様

    お世話になります。

    ご返信遅くなり申し訳ありません。

    詳細にご回答いただきありがとうございます。

    いただいたコマンドで検証したところ意図した動作になりました。

    大変助かりました。

    今後ともよろしくお願いいたします

    以上、よろしくお願いいたします。

    2021年12月8日 5:29