tdf#84553 Detect and warn of Windows Antivirus.

Change-Id: I7731cb316306c153ad14bb3d27f39600a44ed9ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87811
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
This commit is contained in:
Michel Thomas
2020-02-02 01:03:20 +05:30
committed by Mike Kaganski
parent 1d7b1a1505
commit c16969b9bc
2 changed files with 34 additions and 0 deletions

19
antivirusDetection.vbs Executable file
View File

@@ -0,0 +1,19 @@
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\SecurityCenter2")
Set installedAntiviruses = objWMIService.ExecQuery("Select * from AntivirusProduct")
'Iterates through all the antivirus software,retrieved by the WMI query,present on the system and prints only the ones that are active
'this is done by checking the 12th bit of the productState property of the antivirus
'if 12th bit is on then it means that the antivirus is in active state
'if 12th bit is off then it is inactive.
'see http://neophob.com/2010/03/wmi-query-windows-securitycenter2/
count=0
list=""
For Each antivirus in installedAntiviruses
If antivirus.productState And &h01000 Then 'checking the state of the 12th bit of productState property of the antivirus
count=count+1
list=list & VBNewLine & VBtab & "*" & antivirus.displayName
End if
Next
If count = 0 Then
Wscript.StdOut.Write "NOT_FOUND"
Else Wscript.Echo list
End if

View File

@@ -12973,6 +12973,21 @@ fi
AC_SUBST(ENABLE_FORMULA_LOGGER)
dnl ===================================================================
dnl Checking for active Antivirus software.
dnl ===================================================================
if test $_os = WINNT ; then
AC_MSG_CHECKING([for active Antivirus software])
ANTIVIRUS_LIST=`cscript.exe //Nologo $SRC_ROOT/antivirusDetection.vbs`
if [ [ "$ANTIVIRUS_LIST" != "NOT_FOUND" ] ]; then
AC_MSG_RESULT([found])
add_warning "To speed up builds and avoid failures in unit tests, it is highly recommended that you exclude the build directories associated with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST"
else
AC_MSG_RESULT([not found])
fi
fi
dnl ===================================================================
dnl Setting up the environment.
dnl ===================================================================