Я использовал WMI, чтобы обнаружить, что антивирус присутствует в ОС, он работает нормально и отображает мне информацию об антивирусе, такую как имя и идентификатор экземпляра на win xp и window7, используя пространство имен: \ root \ SecurityCenter и \ root \ SecurityCenter, \ root \ Security .
if(isHLOSVersion( ))
hres = pLoc->ConnectServer( _bstr_t(L"root\\SecurityCenter2"),
// Object path of SecurityCenter
NULL, // User name. NULL = current user
NULL, // User password. NULL = current
0, // Locale. NULL indicates current
NULL, // Security flags.
0, // Authority (e.g. Kerberos)
0, // Context object
&pSvc // pointer to IWbemServices proxy
);
else
hres = pLoc->ConnectServer( _bstr_t(L"root\\SecurityCenter"),
// Object path of SecurityCenter
NULL, // User name. NULL = current user
NULL, // User password. NULL = current
0, // Locale. NULL indicates current
NULL, // Security flags.
0, // Authority (e.g. Kerberos)
0, // Context object
&pSvc // pointer to IWbemServices proxy
);
Но в случае Windows 2003 server и 2008 server 2003 server R2and 2008 server R2 это пространство имен отсутствует, поэтому там это не работает.
Пожалуйста, дайте мне знать, как мы можем определить, присутствует ли антивирус в операционной системе Windows 2003 server и 2008 server 2003 server R2 и 2008 server R2.