3

PowerShellスクリプト(v 1.0)を使用して、Windows XP(SP2)マシン上の共有フォルダーにアクセスするユーザー/セッションを特定する必要があります。これは、コンピュータの管理|を使用して表示される情報です。システムツール| 共有フォルダ| セッション。誰かが私にこれについて行く方法についての指針を与えることができますか?

WMIクエリが必要になると思いますが、オンラインで最初に検索したところ、クエリの詳細がわかりませんでした。

ありがとう、MagicAndi

4

2 に答える 2

4

私は次のスクリプトを思いついた:

$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#で同様のことを行ったかどうかを確認してください。

于 2009-11-25T10:21:42.717 に答える
1

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
}
于 2018-07-25T02:24:56.293 に答える