PowerShellを使用して共有フォルダーにアクセスするユーザーを決定します
-
22-09-2019 - |
質問
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
}
次の記事は有用でした:
- http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/filesfolders/sharedfolders/
- http://www.computerperformance.co.uk/powershell/powershell_wmi_shares.htm
- http://www.codeproject.com/kb/cs/networkspy.aspx?msg=2384830
いつものように、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
}
所属していません StackOverflow