私のWindows 2008サーバーには、ネットワーク共有があります。完全な管理者権限でサーバーにログオンしています。どのユーザーがその共有にアクティブに接続しているかを知りたいのですが。
どうすればその情報を見つけることができますか?
私が知っている場合、これに対処する方法は2つあります。 1つは信頼できませんが、ほとんどのシナリオではおそらく十分です。 1つは広範囲ですが、少数のユーザー接続を超える規模での実装は困難です。
The Kinda-Sorta Way: [システムツール] >> [共有フォルダ] >> [ファイルを開く]を選択して、ファイルサーバーで開いているファイルを確認します。そこから、開いているファイルを持つユーザーアカウントを、接続している共有に関連付けることができます。
ただし、それでは不十分な場合があります。信じられない?コンピューターの管理に移動し、システムツール>>共有フォルダー>>セッションを選択して、接続しているユーザーを確認します。次に、# open files
列を確認します。一部のセッションでは、開いているファイルが0である必要があります。彼らが技術的に接続されている共有をどのようにして知るのですか?よろしくお願いします...
広範囲であるがスケールが難しい方法:問題の各共有に対してnet share [sharename]
を実行して、接続されているユーザーのリストを取得します。私のテストでは、ファイルを開いていないユーザーもリストされています。
コンピュータの管理の代わりに、Server 2008以降の共有と記憶域の管理ツールを利用することもできます。共有のリストで共有を探し、アクションペインで右にある[セッションの管理]をクリックします。開いているファイルがないセッションを含むセッションのリストが表示されます。
しかし...しかし...各共有を照会せずに特定のユーザーを見つけたい!追跡したい特定のユーザーがいる場合、その情報を見つける唯一の手段であると思われます。各共有にクエリを実行し、目で見て、目的のユーザーを見つけます。そして目で言うと、出力をfindstr
またはselect-string
にパイプすることを意味します。利用可能なすべての共有を列挙し、接続されたユーザーのクエリを実行し、問題のユーザーの出力を検索するスクリプトにワークフローを外挿できますが、これは読者の練習であり、Microsoftがネイティブ機能として組み込んだものではないようです。 。
これは非常に古い質問ですが、受け入れられた回答は、情報を見つけるための最良の方法の1つをスキップしました。 GUIは「接続されたクライアント」があることを表示できますが、「開いているファイル」の下にそれらの接続を表示できません。その場合、共有に接続しているユーザーを見つけるためにWMIを使用する必要があります。
次に、特定の共有に接続しているユーザーと出力例を確認するためのpowershellコマンドを示します。
Get-WmiObject Win32_ServerConnection -ComputerName SERVER01 | Select-Object ShareName,UserName,ComputerName | Where-Object {$_.ShareName -eq "SHARENAME"}
出力例:
ShareName UserName ComputerName
--------- -------- ------------
SHARENAME user1 10.0.0.20
SHARENAME user2 10.0.0.30
SHARENAME user3 10.0.0.40
Computer Managerには、以前のバージョンと同じ方法でアクセスしません。コンピュータを右クリックして「管理」を選択すると、「サーバーマネージャ」が表示されます。そのため、代わりに、スタートの下の[プログラムとファイルの検索]フィールドにcompmgmt.mscと入力するだけです。