63634


C# 7.0 (.NET 4.5.2 ) でサービスプログラムを開発しています。  
実行環境は Windows Server の 2012 R2, 2016, 2019 です。

Windowsのセキュリティセンターで認識されているウィルス対策ソフトウェアの名称とバージョンを取得したいのですが、  
WMI経由では サーバ系OSでは 名前空間 root/SecurityCenter2 がなく、行き詰まっています。

取得できる方法をご存知の方がいましたら、アドバイスいただけますようお願いいたします。


CC BY-SA 4.0
2020-03-06T00:36:35.880
63613
2020-03-06T16:27:06.453
2020-03-06T01:17:31.777
3060
38091
question
c#
WindowsサーバOSにインストールされているウィルス対策ソフトウェアの情報を C# で取得したい


これらの記事にて、サーバーにはそういう仕組みが無いので自分でソフトと確認のための情報リストを作り、調べることで対処した/しているという趣旨の回答になっています。

[How to detect antivirus on Windows Server 2008 in
C#?](https://stackoverflow.com/q/13732351/9014308)

> I faced this problem some time ago for a client and I ended up performing a
> dictonary search on the local system drivers and processes looking for a
> pattern of know anti-virus signatures (such as folder names, processes
> names, etc...) it's not 100% sure because somewhere someone will donwload a
> brand new anti-virus that you're unware of, but that apart, it was very
> effective...
>
>
> しばらく前にクライアントでこの問題に直面しましたが、ローカルシステムドライバーとプロセスで辞書検索を実行し、既知のウイルス対策シグネチャ（フォルダー名、プロセス名など）のパターンを探しました
> 誰かがあなたが知らない真新しいアンチウイルスをどこかにダウンロードするので、100％確信はありませんが、それは別に、それは非常に効果的でした...

以下は結局ワークステーションのみサポートという情報  
[How to detect antivirus installed on windows 2003 server and 2008 server 2003
server R2and 2008 server R2 using WMI or other then WMI in
C++](https://stackoverflow.com/q/4396757/9014308)[any way to detect the
Antivirus installed on a windows
server](https://stackoverflow.com/q/17353083/9014308)  
[Detect Antivirus on Windows using C#
[closed]](https://stackoverflow.com/q/1331887/9014308)

* * *

F-Secureという商業製品のQ&A 自社サービス用に独自のnamespaceを用意して対処しているようです。  
[Unable to receive WMI Queries from Namespace "Root\SecurityCenter" after
upgrade to F-Secure
Server](https://community.f-secure.com/discussion/121421/unable-to-receive-
wmi-queries-from-namespace-root-securitycenter-after-upgrade-to-f-secure-
server)

> Issue:  
>  Solarwind script unable to receive WMI Queries from Namespace
> "root\SecurityCenter" or "root\SecurityCenter2" after upgrading from
> F-Secure Server Security 12.xx to 14.xx. With F-Secure Server Security 12.xx
> the queries work.
>
> Resolution:
>
>   * The namespace "root\SecurityCenter" is available on Windows client
> systems of version Windows XP and below.
>   * The namespace "root\SecurityCenter*2*" is available starting from
> Windows Vista and above.
>   * Neither "root\SecurityCenter" nor "root\SecurityCenter*2*" is available
> on Windows server systems.
>   * Both namespaces belong to Microsoft and are not documented by them. That
> means no one can reliably use (read/write to) them except Microsoft's
> products.
>   * F-Secure products never read or write to "root\SecurityCenter" or
> "root\SecurityCenter*2*" directly and thus don't guarantee anything about
> the contents of these namespaces. The F-Secure product register itself in
> the system and Windows client (not server) systems reflect this information
> in "root\SecurityCenter" and "root\SecurityCenter*2*" (depending on Windows
> version) namespace.
>   * Why F-Secure Server Security is available via "root\SecurityCenter"
> then? This happens because a third-party product (Solarwinds client) creates
> and fills this namespace on Windows server systems.
>

>
> To resolve the issue:
>
>   * Use the namespace "root\fsecure". The namespace belongs to F-Secure and
> therefore is supported by F-Secure. F-Secure is unable to make guarantees
> when using other namespace to run WMI queries on F-Secure products.
>

>
> 問題：  
>  Solarwindスクリプトは、F-Secure Server Security
> 12.xxから14.xxにアップグレードした後、ネームスペース「root \ SecurityCenter」または「root \
> SecurityCenter2」からWMIクエリを受信できません。F-Secure Server Security 12.xxでは、クエリが機能します。
>
> 解決：
>
>   * 名前空間「root \ SecurityCenter」は、Windows XPバージョン以下のWindowsクライアントシステムで使用できます。
>   * ネームスペース「root \ SecurityCenter * 2 *」は、Windows Vista以降から使用できます。
>   * Windowsサーバーシステムでは、「root \ SecurityCenter」も「root \ SecurityCenter * 2
> *」も使用できません。
>   *
> 両方の名前空間はMicrosoftに属し、文書化されていません。つまり、Microsoftの製品を除き、誰も確実に使用（読み取り/書き込み）することはできません。
>   * F-Secure製品は、「root \ SecurityCenter」または「root \ SecurityCenter * 2
> *」を直接読み書きしないため、これらの名前空間の内容について何も保証しません。F-Secure製品はシステムに自身を登録し、Windowsクライアント（サーバーではない）システムは「root
> \ SecurityCenter」および「root \ SecurityCenter * 2
> *」（Windowsバージョンに依存）名前空間にこの情報を反映します。
>   * F-Secure Server Securityが「root \
> SecurityCenter」から利用できるのはなぜですか？これは、サードパーティ製品（Solarwindsクライアント）がWindowsサーバーシステム上でこの名前空間を作成して埋めるためです。
>

>
> 問題を解決するには：
>
>   * 名前空間「root \ fsecure」を使用します。名前空間はF-
> Secureに属しているため、F-Secureによってサポートされています。F-Secureは、他のネームスペースを使用してF-
> Secure製品でWMIクエリを実行する場合、保証できません。
>


CC BY-SA 4.0
2020-03-06T16:27:06.453
63634
2020-03-06T16:27:06.453
26370
63613
answer