Показать полную графическую версию : [решено] Как узнать какой у пользователя антивирус?
Raf-9600
03-12-2014, 19:12
Использую в одной своей програмке oggdec (http://www.rarewares.org/ogg-oggdec.php), но некоторые антивирусы (https://www.virustotal.com/ru/file/50e436730b04959b0d75aa632adb1d884dcd2b36699eb88fe9c5701b20b33471/analysis/) его блокируют. Хочу встроить в программу сообщение которое бы появлялось при обнаружении на компе у пользователя параноидального антивиря, но затык возник с тем, что я не знаю как узнать какой антивирь установлен.
Сама винда ведь определяет какой антивирь установлен и установлен ли он вообще (если не установлен, то сообщает что система в опасности), значит есть где-то единое, так сказать "центральное" место куда все антивири себя прописывают. Где оно?
Сама винда ведь определяет какой антивирь установлен и установлен ли он вообще (если не установлен, то сообщает что система в опасности), »
Можете воспользоваться Wbem: WMI - [решено] как узнать какой антивирус на компе и еще пару вещей :) (http://forum.oszone.net/thread-142842.html).
Raf-9600
03-12-2014, 20:51
Iska, благодарю. Методом усиленного гугления ещё нашёл примеры на Делфи http://theroadtodelphi.wordpress.com/2011/02/18/getting-the-installed-antivirus-antispyware-and-firewall-software-using-delphi-and-the-wmi/
и даже для Inno Stetup - http://stackoverflow.com/questions/17628901/inno-setup-check-if-antivirus-software-is-installed
А мораль такова, такие умные штуки нужно в поиск вбивать на английском, а не на русском, как я сделал перед созданием данной темы. В общем вопросов больше нет, всё найдено.
А мораль такова, такие умные штуки нужно в поиск вбивать на английском, а не на русском, как я сделал перед созданием данной темы. »
Вы не представляете, насколько Вы правы ;). Хотя я надеюсь, что не пройдёт и полста лет, как поисковики научатся таки учитывать морфологию русского языка.
Можно в PowerShell, опять же, из WMI
Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct
См. также http://blog.powershell.no/2011/06/12/use-windows-powershell-to-get-antivirus-product-information/ (но там ошибка в строке 9 - нет слэша).
Vadikan, в связи с Вашим ответом пара попутных вопросов появилась.
Пространство «root\SecurityCenter2» появилось с какой ОС, не в курсе?
При наличии пространства «root\SecurityCenter2» присутствует ли у Вас одновременно «старое» пространство «root\SecurityCenter»?
Raf-9600
04-12-2014, 17:30
Iska, если взглянуть на пример на Делфи - http://theroadtodelphi.wordpress.com/2011/02/18/getting-the-installed-antivirus-antispyware-and-firewall-software-using-delphi-and-the-wmi/ то можно сделать вывод что «root\SecurityCenter2» появилось в Висте на замену «root\SecurityCenter» который был в ХР.
Raf-9600, информация всё одно несколько противоречивая.
Вот по предыдущей ссылке Vadikan'а:
The rootSecurityCenter2 namespace is available on Windows Vista SP1 and above. Windows Security Center is not available on server operatingsystems, meaning that the rootSecurityCenter2 namespace also isn`t available. In Windows XP SP2 the namespace is called rootSecurityCenter, but the properties are not the same as in rootSecurityCenter2. It`s possible to get the function work on Windows XP, but you would need to customize it to match the properties available in the rootSecurityCenter namespace.
Вот по Вашей:
…only are supported in Windows Desktops editions (Windows XP, Windows Vista and Windows 7).
…
Windows XP
Namespace : SecurityCenter
Classes availables: AntiVirusProduct, FirewallProduct
…
Windows Vista and Windows 7
Namespace : SecurityCenter2
Classes availables : AntiVirusProduct, AntiSpywareProduct, FirewallProduct
Вот из галереи Сценарий Get the status of Antivirus Product on local and Remote Computers. (https://gallery.technet.microsoft.com/scriptcenter/Get-the-status-of-4b748f25):
…only work on Windows XP SP2, Vista and 7 operating systems as Windows 2000 and Server 2003/2008/2008R2 does not have the required WMI SecurityCenter\SecurityCenter name spaces.
…
WMI query to get anti-virus information has been changed. Pre-Vista clients used the root/SecurityCenter namespace, while Post-Vista clients use the root/SecurityCenter2 namespace. But not only the namespace has been changed, The properties too.
В галерее есть и ещё один, попроще: Сценарий Get The Name of Installed Antivirus using Powershell (https://gallery.technet.microsoft.com/scriptcenter/Get-The-Name-of-Installed-b10fd073).
В общем, мой вывод таков: в отличие от того, что приведено в примерах — надо смотреть не версии ОС и SP, а тупо проверять наличие того и другого пространства в пространстве «root» и работать с тем, какое будет.
Raf-9600
04-12-2014, 18:26
У меня последний, весьма нубский вопрос: как на основе этого кода (http://stackoverflow.com/questions/17628901/inno-setup-check-if-antivirus-software-is-installed) получить название антивируса в string на Delphi?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.