I will be rolling out Symantec's new SEP 11 soon and I need to remove the previous Symantec AV install.
This Script should work on all SAV 9-10 installs.
This script can be easily modified to run remotely. Maybe in the near future I will add this functionality.
———-COPY EVERYTHING BELOW THIS LINE for the Script———-
'Script to uninstall SAV 10
'Created by Chey Harden 11.26.07
On Error Resume Next
Const HKLM = &H80000002
strComputer = "."
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
strRegPath = "SOFTWARE\Intel\LANDesk\VirusProtect6\CurrentVersion\AdministratorOnly\Security"
strValue2 = ""
intShortSleep = 5000
intSleep = 240000
strProcessKill = "'msiexec.exe'"
strProcessKill2 = "'cmd.exe'"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
oReg.EnumKey HKLM, strKeyPath, arrSubKeys
SetRegKey()
RemoveSAV()
Function RemoveSAV()
For Each subkey In arrSubKeys
'WScript.Echo subkey ' For Trouble shooting
strNewKeyPath = strKeyPath & "\" & subkey
strValueName = "DisplayName"
strValueNameUninstall = "UninstallString"
oReg.GetStringValue HKLM,strNewKeyPath,strValueName,strValue
If strValue = "Symantec AntiVirus" Then 'edit this for software key
'WScript.Echo "Found Key"'used for trouble shooting
'WScript.Echo strValue'used for trouble shooting
oReg.GetStringValue HKLM,strNewKeyPath,strValueNameUninstall,strValue2
'WScript.Echo strValue2'used for trouble shooting
If InStr(strValue2, "/I") Then
strValue2 = Replace(strValue2,"/I","/X")
'WScript.Echo "Replaced " & strValue2 'used for trouble shooting
Else
'WScript.Echo "Not Found " & strValue2 'used for trouble shooting
End If
ExecuteUninstall()
Else
'WScript.Echo "Not Found" 'used for trouble shooting
End If
Next
End Function
Function ExecuteUninstall()
Set WShell = CreateObject("WScript.Shell")
'WScript.Echo strValue2'used for trouble shooting
WShell.Run "%COMSPEC% /c " & strValue2 & " /qn",0,TRUE
Set WShell = Nothing
WScript.Sleep intSleep
'KillProcess() ' Used to kill the process if it runs too long, curently this function is disabled
End Function
Function SetRegKey()
strValueNameDword1 = "UseVPUninstallPassword"
strValueNameDword2 = "LockUnloadServices"
dwSetValue = 0
oReg.GetDWORDValue HKLM,strRegPath,strValueNameDword1,dwValue
If dwValue = 1 Then
oReg.SetDWORDValue HKLM,strRegPath,strValueNameDword1,dwSetValue
oReg.SetDWORDValue HKLM,strRegPath,strValueNameDword2,dwSetValue
End If
End Function
Function KillProcess()
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
objProcess.Terminate()
Next
WScript.Sleep intShortSleep
Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = " & strProcessKill2 )
For Each objProcess in colProcess
objProcess.Terminate()
Next
End Function
———-COPY EVERYTHING ABOVE THIS LINE for the Script———-
PLEASE MAKE SURE NO WORD WRAPPING IS HAPPENING IN YOUR SCRIPT!!!
1. Run this as a Logon Script.
2. Make sure to be an admin on the target machines.
This information is provided "AS IS" with no warranties expressed or implied.