2

Openfiles.exe (サーバー 2008 ファイル サーバー上にある) をコンピューターからリモートで呼び出して、ユーザーが開いているファイルを確認するにはどうすればよいですか? パラメータでドメイン管理者ユーザーとしてログインする必要もあります。

4

7 に答える 7

5

Openfiles は、サーバー ダイレクトを行うことができます。リモートで実行する必要はありません。

ヘルプからopenfiles /query /?

OPENFILES /Query /S system /U username /P password /NH
于 2015-05-10T04:13:53.950 に答える
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
于 2015-11-16T18:24:55.520 に答える
2

これは、一時ファイルを作成しないソリューションです。

function Get-OpenFile
{
    Param
    (
        [string]$ComputerName
    )

    $openfiles = openfiles.exe /query /s $computerName /fo csv /V

    $openfiles | ForEach-Object {

        $line = $_

        if ($line -match '","')
        {
            $line
        }

    } | ConvertFrom-Csv
}

Get-OpenFile -ComputerName server1
于 2016-07-09T20:17:23.683 に答える
0

Power Shell を使用してアプリケーションをリモートで実行する方法 https://technet.microsoft.com/en-us/library/dd819505.aspx

PS または BAT スクリプトは次のようになります。

openfiles.exe > c:\temp\openfiles.txt

もちろん、別の出力フォルダーとファイル名を使用することをお勧めします。

別の方法: https://technet.microsoft.com/en-ca/sysinternals/bb897553.aspx -- PsExec -- PsExec は、他のシステムでプロセスを実行できる軽量の telnet 代替品であり、完全な双方向性を備えています。クライアント ソフトウェアを手動でインストールする必要はありません。

于 2015-05-09T22:28:25.417 に答える
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 部分の前。

于 2018-06-29T16:23:35.227 に答える