如何让Windows忘记安装了防病毒软件?

我们购买了符合PCI规范的networking和软件解决scheme:TrustWave。 我们开始安装防病毒软件,但意识到安装它的机器上并不需要它,并且想要安装不同的解决scheme。

该程序的参加卸载工作正常。 这是无人看pipe的安装,不是很干净。 虽然它支持无声开关,但其本身很多都落后了。 我已经编写了大部分脚本,但有一部分是我遇到的问题:Windows仍然将该软件视为防病毒产品。 看看如何确认这个来自WMI

Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct 

我很难find如何清除这些信息。 search只是导致我解决安装或删除已经完成的整个防病毒产品。

有没有办法写入这个命名空间(或等效的registry),以便Windows忘记了这一点已经安装? 我意识到这个请求可能被视为恶意。

安装其他防病毒软件很可能会解决这个问题,但是有一些机器会在没有运行的情况下运行,所以这些信息仍然是有用的。

从来没有testing过,但它会是这样的脚本:

 On Error Resume Next Set shell = CreateObject("WScript.Shell") Set getOSVersion = shell.exec("%comspec% /c ver") version = getOSVersion.stdout.readall Select Case True Case InStr(version, "n 5.") > 1 : GetOS = 0 'pre vista Case InStr(version, "n 6.") > 1 : GetOS = 1 'vista/post vista Case Else : GetOS = -1 End Select strComputer = "." If GetOS = 0 Then Set oWMI = GetObject( _ "winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\SecurityCenter") Set colItems = oWMI.ExecQuery("Select * from AntiVirusProduct") For Each objItem In colItems objItem.Delete_ Next End If If GetOS = 1 Then Set oWMI = GetObject( _ "winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\SecurityCenter2") Set colItems = oWMI.ExecQuery("Select * from AntiVirusProduct") For Each objItem In colItems objItem.Delete_ Next End If 

代码从这里

我认为它会工作,因为其他代码示例遵循相同的格式,如图所示,但没有删除项目。

PowerShell相当于是

 Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct | ForEach-Object{$_.Delete()} 

这也可以使用-Computer参数远程运行。