使用PowerShell监视共享文件访问

时间:2015-03-23 12:14:49

标签: powershell windows-server-2008-r2 smb network-share

背景

使用Windows' MMC的共享文件夹功能我可以查看通过共享文件夹访问的任何打开文件。 这给了我一个静态视图;我想写一个脚本(理想情况下是PowerShell)来监控这个共享,并记录谁连接到什么&的信息。什么时候提交。

我正在运行Windows Server 2008 R2,所以很遗憾Get-SmbOpenFile无法使用。

问题

有没有办法使用PowerShell查看在Windows 2008 R2中通过共享打开的所有文件?

1 个答案:

答案 0 :(得分:1)

改为使用net filenet 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]
  }
}