PowerShellを使用して共有フォルダーにアクセスするユーザーを決定します

StackOverflow https://stackoverflow.com/questions/1795679

質問

PowerShellスクリプト(V 1.0)を使用して、Windows XP(SP2)マシンの共有フォルダーにアクセスするユーザー/セッションを決定する必要があります。これは、コンピューター管理を使用して表示される情報です|システムツール|共有フォルダー|セッション。誰かが私にこれをどうやって進むかについての指針を教えてもらえますか?

WMIクエリが必要になると推測していますが、オンラインでの最初の検索では、クエリの詳細がどうなるかは明らかになりませんでした。

ありがとう、マジマンディ

役に立ちましたか?

解決

次のスクリプトを思いつきました。

$computer = "LocalHost"
$namespace = "root\CIMV2"
$userSessions = Get-WmiObject -class Win32_ServerConnection -computername $computer -namespace $namespace

if($userSessions -ne $null)
{
    Write-Host "The following users are connected to your PC: "

    foreach ($userSession in $userSessions)
    {
        $userDetails = [string]::Format("User {0} from machine {1} on share: {2}", $userSession.UserName, $userSession.ComputerName, $userSession.ShareName)
        Write-Host $userDetails
    }    

    Read-Host
}

次の記事は有用でした:

いつものように、PowerShellでそれを行う方法が見つからない場合は、誰かがC#で同様のことをしたかどうかを確認してください。

他のヒント

IPの代わりにホスト名を表示するために少し変更しました:

$computer = "LocalHost"
$namespace = "root\CIMV2"
$userSessions = Get-WmiObject -class Win32_ServerConnection -computername $computer -namespace $namespace

if($userSessions -ne $null)
{
    Write-Host "The following users are connected to your PC: "

    foreach ($userSession in $userSessions)
    {
        $ComputerName = [system.net.dns]::resolve($usersession.computername).hostname
        $userDetails = [string]::Format("User {0} from machine {1} on share: {2}", $userSession.UserName, $ComputerName, $userSession.ShareName)
        Write-Host $userDetails
    }    

    Read-Host
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top