如何从计算机远程调用Openfiles.exe(位于服务器2008文件服务器上)以查看用户打开哪些文件?我还需要在参数中以域管理员用户身份登录。
答案 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部分之前。