Openfiles查询以查看打开的文件

时间:2015-05-09 22:07:58

标签: powershell command-line vbscript command-prompt dsquery

如何从计算机远程调用Openfiles.exe(位于服务器2008文件服务器上)以查看用户打开哪些文件?我还需要在参数中以域管理员用户身份登录。

6 个答案:

答案 0 :(得分:4)

Openfiles可以直接执行服务器。您不必远程运行它。

来自帮助openfiles /query /?

OPENFILES /Query /S system /U username /P password /NH

答案 1 :(得分:3)

在PowerShell中执行此操作并允许搜索的方法是使用这个小功能。

function Get-OpenFiles {
    cls
    openfiles /query /s $args[0] /fo csv /V | Out-File -Force C:\temp\openfiles.csv
    $search = $args[1]
    Import-CSV C:\temp\openfiles.csv | Select "Accessed By", "Open Mode", "Open File (Path\executable)" | Where-Object {$_."Open File (Path\executable)" -match $search} | format-table -auto
    Remove-Item C:\temp\openfiles.csv
}

它允许您致电Get-OpenFiles Server Filename,它会显示结果。需要注意的是,您有一个名为C:\ temp。

的文件夹

所以,如果我Get-OpenFiles TestServer Hardware,我会得到以下内容。

Accessed By Open Mode    Open File (Path\executable)
----------- ---------    ---------------------------
NFDJWILL    Read         N:\Network Services\Documentation\Hardware.xlsx
NFDJWILL    Write + Read N:\Network Services\Documentation\Hardware.xlsx
NFDJWILL    Read         N:\Network Services\Documentation\Hardware.xlsx

答案 2 :(得分:2)

这是一个没有创建临时文件的解决方案。

    def button_command(self=self, controller=controller, impname=impname):
        return self.modload(self, controller, impname))
    self.pages[impname][impname + 'Button'] = tk.Button(
            self.pages[impname]['Page'],
            text='Activate',
            command=button_command)

答案 3 :(得分:2)

现在可以使用PowerShell命令Get-SmbOpenFile执行此操作。

答案 4 :(得分:0)

您可以使用远程委派的PowerShell会话。

Use Delegated Administration and Proxy Functions

您可以在会话配置的RunAs设置中委派管理员凭据,并将会话限制为只能运行openfiles.exe。然后,您可以将权限分配给选定组或用户的会话。这使您可以让人们运行需要域管理员权限的cmdlet或程序,而无需为其提供域管理员凭据。

答案 5 :(得分:0)

无需创建CSV文件并在以后将其删除,也不必担心其大小。

openfiles /s MyFileSrv /query /fo CSV /v /u admin1 /p myPass | convertfrom-csv  |?{$_.'Open File (Path\executable)' -match "MyFolder"} |select 'Accessed By', 'Open Mode', 'Open File (Path\executable) 

Accessed By Open Mode    Open File (Path\executable)
----------- ---------    ---------------------------
robinsonl   Write + Read D:\Dept\MyFolder
smithd      Read         D:\Dept\MyFolder\info

如果使用的是Powershell 1.0,则添加| select -skip 8 |在convertfrom-csv部分之前。