【问题标题】:Monitor shared file access using PowerShell使用 PowerShell 监控共享文件访问
【发布时间】:2015-05-26 10:14:25
【问题描述】:

背景

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

我运行的是 Windows Server 2008 R2,很遗憾Get-SmbOpenFile 不可用。

问题

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

【问题讨论】:

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


    【解决方案1】:

    改用net file 和net session:

    & net file | Where-Object {
        $_ -match '^(\d+)\s+(.*)\s+(\w+)\s+(\d+)\s*$'
    } | ForEach-Object {
        New-Object -Type PSObject -Property @{
            'ID'    = $matches[1]
            'File'  = $matches[2].Trim()
            'User'  = $matches[3]
            'Locks' = $matches[4]
        }
    }
    
    & net session | Where-Object {
        $_ -match '^(\S+)\s+(\w+)\s+(.*)\s+(\d+)\s+(\S+)\s*$'
    } | ForEach-Object {
        New-Object -Type PSObject -Property @{
            'Client' = $matches[1]
            'User'   = $matches[2]
            'Type'   = $matches[3].Trim()
            'Open'   = $matches[4]
            'Idle'   = $matches[5]
        }
    }
    

    【讨论】:

    • 你如何杀死/关闭特定文件的连接?谢谢。
    • @Borik 请发表您自己的问题。
    • 找到它:对于任何其他寻找如何关闭文件的人:net files $_.ID /close
    猜你喜欢
    • 2021-07-23
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多