背景
使用Windows' MMC的共享文件夹功能我可以查看通过共享文件夹访问的任何打开文件。 这给了我一个静态视图;我想写一个脚本(理想情况下是PowerShell)来监控这个共享,并记录谁连接到什么&的信息。什么时候提交。
我正在运行Windows Server 2008 R2,所以很遗憾Get-SmbOpenFile
无法使用。
问题
有没有办法使用PowerShell查看在Windows 2008 R2中通过共享打开的所有文件?
答案 0 :(得分:1)
改为使用net file
和net session
:
& net file | ? { $_ -match '^(\d+)\s+(.*)\s+(\w+)\s+(\d+)\s*$' } | % {
New-Object -Type PSObject -Property @{
'ID' = $matches[1]
'File' = $matches[2].Trim()
'User' = $matches[3]
'Locks' = $matches[4]
}
}
& net session | ? { $_ -match '^(\S+)\s+(\w+)\s+(.*)\s+(\d+)\s+(\S+)\s*$' } | % {
New-Object -Type PSObject -Property @{
'Client' = $matches[1]
'User' = $matches[2]
'Type' = $matches[3].Trim()
'Open' = $matches[4]
'Idle' = $matches[5]
}
}