我需要确定谁在我的计算机上打开文件,我想要自动化它。
我尝试过使用:
网络文件显示我打开的文件,但我看到用户GUEST,但我需要在我的局域网上的计算机名称向其发送消息。
net session 给我电脑,但我可以看到哪些文件打开了。 powershell v 2.0
我找到了这个脚本,但它只显示了像GUEST这样的用户
function get-openfiles{
param(
$computername=@($env:computername),
$verbose=$false)
$collection = @()
foreach ($computer in $computername){
$netfile = [ADSI]"WinNT://$computer/LanmanServer"
$netfile.Invoke("Resources") | foreach {
try{
$collection += New-Object PsObject -Property @{
Id = $.GetType().InvokeMember("Name", 'GetProperty', $null, $, $null)
itemPath = $.GetType().InvokeMember("Path", 'GetProperty', $null, $, $null)
UserName = $.GetType().InvokeMember("User", 'GetProperty', $null, $, $null)
LockCount = $.GetType().InvokeMember("LockCount", 'GetProperty', $null, $, $null)
Server = $computer
}
}
catch{
if ($verbose){write-warning $error[0]}
}
}
}
Return $collection
}
更新
所以这个脚本让我输出我的mashine 我们在这里可以看到用户GUEST。 打开控制管理 - >分享文件夹 - >会话并查看3个用户打开的文件 在这里我们看到Anna PC打开3个文件和Art-PC打开9个文件。 Open Control Managments-> Sharefolder-> openfiles 但我怎么能理解谁打开哪个文件?