我 5 天前卸载了 F-Secure,此后多次重启/关闭此设备。看来要么此查询返回的数据已过时(如果可能的话,刷新/重新加载可能会解决问题),要么 Windows 确实认为 F-Secure 产品仍安装并启用。
Function ConvertTo-NPHex
{
Param([int]$Number)"0x{0:x}" -f $Number
}
$Products = @();
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName Antivirusproduct -ErrorAction Stop | ForEach-Object{
$hex = ConvertTo-NPHex $_.ProductState;
$mid = $hex.Substring(3,2);
$end = $hex.Substring(5);
$Products += [ordered]@{
DisplayName = $_.DisplayName;
Enabled = $(
If( $mid -match "00|01" ){
$False
}Else{
$True
}
);
UpToDate = $(
If($end -eq "00"){
$True
}Else{
$False
}
);
Updated = $( (Get-Date -Date $_.Timestamp).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") )
}
};
Return $Products | ConvertTo-Json;
上述代码片段的输出:
[
{
"DisplayName": "F-Secure SAFE",
"ProductState": 270336,
"Enabled": true,
"UpToDate": true,
"Updated": "2020-06-17T08:09:16Z"
},
{
"DisplayName": "Windows Defender",
"ProductState": 393472,
"Enabled": false,
"UpToDate": true,
"Updated": "2020-06-17T07:59:53Z"
},
{
"DisplayName": "ESET Security",
"ProductState": 266240,
"Enabled": true,
"UpToDate": true,
"Updated": "2020-06-22T12:28:56Z"
}
]
我完全确定 F-Secure 没有安装。我不仅手动删除了它,而且它在安全中心 UI 中也看不到,在已安装程序下也看不到,在注册表中查找已安装程序的 PowerShell 脚本也检测不到它。我的 F-Secure Web 管理控制台中也没有列出此设备,所以我知道它已被卸载。
预期情况:
- F-Secure 根本没有列出(未安装)
- Windows Defender 已列出但未启用
- ESET 已列出并启用
问题:
- 是否可以“强制”刷新此类?
- 是否知道此类何时“有机”更新?
- 关于为什么该产品仍然处于响应中,有任何隐性知识吗?
答案1
您可以尝试以下步骤将其从课程中删除:
通过用户界面:
C:\Windows\System32\wbem\wbemtest.exe
以管理员身份运行- 点击
connect
root\SecurityCenter2
在命名空间字段中写入- 点击
connect
- 点击
enum instances
- 在字段中
Enter superclass name
输入AntivirusProduct
并单击确定 - 删除 GUID 与返回的实例匹配的实例
Get-CimInstance
通过 cmd(以管理员身份)
wmic /namespace:\\root\SecurityCenter2 PATH AntiVirusProduct WHERE instanceGuid='Insert the GUID' DELETE
Insert the GUID
用你的 GIUD替换,例如{88AE6B46-DC3C-455A-A21B-085F285A3546}
(和{}
一切)