web-dev-qa-db-ja.com

Windowsマシンとの間でUSBデバイスを接続または取り外したときのログ

私は現在、ネットワーク上のすべてのWindowsマシンからのUSBデバイスの接続と切断のすべてをログに記録する方法を見つけようとしています。この情報は自動的にマシン上のファイルに記録される必要があります。このファイルはnxlogによって読み取られ、集中ログプラットフォームに送信されて処理されます。この情報がWindowsログによって自動的にログに記録されることを期待していましたが、USBリムーバブルストレージに関する一部の情報がイベントビューアーに記録されているように見えますが、これは非常に限定的な情報であり、USBキーボードとマウスを使用している場合は取得しません接続および切断。

掘り下げた後、nirsoftが多くのハードワークを実行する小さなexeを作成したことがわかりました SBLogView はインストールなしで実行でき、USBデバイスがマシンに接続および切断するたびにログに記録します。これの問題は、これをサービスとして実行する方法がわからないこと、およびログエントリを選択して手動で選択することはできますが、出力する情報をログファイルに自動的に記録する方法が見当たらないことです。ログファイルに保存されます。

グループポリシーを使用してexeファイルのローカルコピーを作成し、起動中にこのexeを強制的に実行することもできますが、ログを自動的にファイルに書き込むことができないという主な問題は解決する必要があります。また、ユーザーがプログラムを閉じることができないようにする必要もあります。これは、自分でプログラムを起動したときに可能です。理想的には、プログラムを非表示にし、トレイアイコンを表示しないことが、設定する最良の方法です。 up(ただし、非表示の設定を使用してみたところ、メインウィンドウに表示されるか、システムトレイアイコンを表示するだけのように見えます)。私はウェブサイトを見ましたが、これを行うように指示するオプションを指定してプログラムを呼び出す方法がわかりません。先週、nirsoftにもメールを送ってアドバイスがないか確認しましたが、まだ返答を待っています。

誰かがこれを行うための別の方法を持っていますか?どんな提案や歓迎の助け!ありがとう

10
Rumbles

そのための有料ソリューションがあります。 CoSoSysによるEndProtection4。デバイスにインストールされているエージェント内でどのように機能するかはわかりませんが、プラグインされたデバイスに関するすべての情報を提供します。これはデバイスへのアクセスを管理するソフトウェアであるため、クライアントを管理するサーバー側が必要です。 MacとLinuxでも動作します。

2
Bartosz Debski

USBデバイスの接続と切断は、「イベントログ」に記録されます。

引用 詳細な説明 ( "Digital Forensics Stream"ブログ、2014-01-02、Windows 7イベントログとUSBデバイストラッキング):

接続イベントID
USBリムーバブルストレージデバイスがWindows 7システムに接続されている場合、多数のイベントレコードがMicrosoft-Windows-DriverFrameworks-UserMode/Operationalイベントログに生成されます。レコードには、イベントID 2003、2004、2005、2010、2100、2105などのレコードが含まれます。 ...

切断イベントID
USBサムドライブがWindows 7システムから切断されると、いくつかのイベントレコードが接続イベントと同じイベントログに生成されます。 USBデバイスが切断されると、イベントID 2100、2102、および場合によってはそれ以上のレコードが生成されることがあります。 ...

イベントログからのエクスポートを自動化するために、Microsoftは logparser を無料で提供しています。

3
marsh-wiggle

AutoITなどのツールを使ってみます。

$vFile = FileOpen("usb.txt", 2)

Local $vObjWMI = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")

$vObjItems = $vObjWMI.ExecQuery('SELECT * FROM Win32_DiskDrive')
If IsObj($vObjItems) Then
    For $vObjItem In $vObjItems
        If StringInStr($vObjItem.Caption, "USB") Then
            FileWriteLine($vFile, $vObjItem.Caption & @CRLF)
            FileWriteLine($vFile, $vObjItem.DeviceID & @CRLF & @CRLF)
        EndIf
    Next
EndIf

FileClose($vFile)

ShellExecute("usb.txt")

これから来たフォーラム投稿はAutoITフォーラムにあります: http://www.autoitscript.com/forum/topic/155213-detect-usb-devices-connected/?p=1121434

0
Riley Childs

regeditを使用して、以下のregistryアイテムを調べます:HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\。詳細については、PowerShellを開いて実行します。

$Path = 'HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\*'
Get-ItemProperty -Path $Path | Select-Object -Property FriendlyName, CompatibleIDs, Mfg

または、こちらのログファイルを確認してください:C:\Windows\inf\setupapi.dev.log

技術的な詳細については、 Nicolesブログ を参照してください。

0
not2qubit