どのアカウントがWindowsサービスをインストールしたかを知るにはどうすればよいですか?
wevtutil
この情報を取得するために使用できます:
イベントログと発行元に関する情報を取得します。自己完結型の形式でログをアーカイブする、利用可能なログを列挙する、イベントマニフェストをインストールおよびアンインストールする、クエリを実行する、イベントを(イベントログから、ログファイルから、または構造化クエリを使用して)指定されたファイルにエクスポートする、イベントログをクリアする。
探す必要があるイベントは、イベントID 4697です。サービスがシステムにインストールされました。:
件名に示されているユーザーによって新しいサービスがインストールされました。多くの場合、サブジェクトはネイティブWindowsコンポーネントの一部としてインストールされたサービスのローカルシステム(SYSTEM)を識別するため、実際にインストールを開始したユーザーを特定することはできません。
件名:
アクションを実行したユーザーおよびログオンセッション。
- セキュリティID:アカウントのSID。
- アカウント名:アカウントのログオン名。
- アカウントドメイン:ドメイン、またはローカルアカウントの場合はコンピューター名。
- ログオンIDは、ログオンセッションを識別する半一意の(再起動間で一意の)番号です。ログオンIDを使用すると、同じログオンセッション中に記録された他のイベントと同様に、ログオンイベント(4624)と逆方向に関連付けることができます。
サービス情報:
- サービス名:新しいサービスの内部システム名。「sc query」を使用して、サービス名とそれらのより馴染みのある表示名の相互参照を取得します。
次のコマンドはAccount Name
、最後に作成されたサービスを表示します。
wevtutil query-events System /count:1 /rd:true /format:text /q:"Event[System[(EventID=4697)]]"
sc create
コマンドを使用してサービスを作成した場合は、イベントID:7045ソース:サービスコントロールマネージャーを検索し、検索する必要がありますUser Name
。
wevtutil query-events System /count:1 /rd:true /format:text /q:"Event[System[(EventID=7045)]]"
例:
> sc create Notepad binpath= c:\windows\system32\Notepad.exe
[SC] CreateService SUCCESS
> wevtutil query-events System /count:1 /rd:true /format:text /q:"Event[System[(EventID=7045)]]"
Event[0]:
Log Name: System
Source: Service Control Manager
Date: 2017-04-07T14:35:32.600
Event ID: 7045
Task: N/A
Level: Information
Opcode: N/A
Keyword: Classic
User: S-1-5-21-1699878757-1063190524-3119395976-1000
User Name: Hal\DavidPostill
Computer: Hal
Description:
A service was installed in the system.
Service Name: Notepad
Service File Name: c:\windows\system32\Notepad.exe
Service Type: user mode service
Service Start Type: demand start
Service Account: LocalSystem
参考文献