2

我创建了一个 ASP.NET Web API,它将文件作为流内容检索,保存到磁盘并使用 Windows Defender (MpCmdRun.exe) 扫描文件。在我的计算机上本地运行 API 时,一切都很好。但是,我想在云 (Azure) 中托管这个 API,因为我的其他应用程序都在那里。我决定将这个 Web API 放在一个 docker 容器中,然后将它发布到 Azure。但是,在 Docker 容器内运行 Windows Defender 时,我收到以下错误:

跑步:

C:\Program Files\Windows Defender>MpCmdRun.exe -Scan -ScanType 3 -File ThirdPartyNotices.txt

回报:

Scan starting...
CmdTool: Failed with hr = 0x8050800C. Check C:\Users\ContainerAdministrator\AppData\Local\Temp\MpCmdRun.log for more information

日志文件没有提供更多信息。

MpCmdRun: Command Line: MpCmdRun.exe  -Scan -ScanType 3 -File 
ThirdPartyNotices.txt
Start Time: ?Sun ?Dec ?03 ?2017 23:53:16

Starting RunCommandScan.
INFO: ScheduleJob is not set. Skipping signature update.
Scanning path as file: ThirdPartyNotices.txt.
Start: MpScan(MP_FEATURE_SUPPORTED, dwOptions=16385, path 
ThirdPartyNotices.txt, DisableRemediation = 0, BootSectorScan
= 0, Timeout in days = 1)
MpScan() started
Warning: MpScan() encounter errror. hr = 0x8050800c
MpScan() was completed
ERROR: MpScan(dwOptions=16385) Completion Failed 8050800C
MpCmdRun: End Time: ?Sun ?Dec ?03 ?2017 23:53:16

Dockerfile:

FROM microsoft/aspnet

COPY ./bin/Release/PublishOutput/ /inetpub/wwwroot

#So I can write sent file to disk in container
RUN powershell New-Item c:\inetpub\wwwroot\temp_files -type directory
RUN icacls c:\inetpub\wwwroot\temp_files /grant IIS_IUSRS:F

#Without this Windows Update is disabled
RUN powershell Set-Service wuauserv -StartupType "Automatic"

#Without this Windows defender is disabled
RUN reg add "HKLM\SYSTEM\CurrentControlSet\services\WinDefend" /v Start /t REG_DWORD /d 2 /f

#Tried running these, as well as Update-MpSignature in powershell, to no success.
#RUN ["c:\\Program Files\\Windows Defender\\MpCmdRun.exe", "-RemoveDefinitions", "-All"]
#RUN ["c:\\Program Files\\Windows Defender\\MpCmdRun.exe", "-SignatureUpdate"]

在 docker 容器内时(docker exec -it test powershell)。在 powershell 中运行 Get-MpComputerStatus 会返回以下内容:

AMEngineVersion                 : 1.1.14306.0
AMProductVersion                : 4.10.14393.1794
AMServiceEnabled                : True
AMServiceVersion                : 4.10.14393.1794
AntispywareEnabled              : True
AntispywareSignatureAge         : 0
AntispywareSignatureLastUpdated : 12/3/2017 8:15:49 PM
AntispywareSignatureVersion     : 1.257.1327.0
AntivirusEnabled                : True
AntivirusSignatureAge           : 0
AntivirusSignatureLastUpdated   : 12/3/2017 8:15:51 PM
AntivirusSignatureVersion       : 1.257.1327.0
BehaviorMonitorEnabled          : False
ComputerState                   : 0
FullScanAge                     : 4294967295
FullScanEndTime                 :
FullScanStartTime               :
IoavProtectionEnabled           : False
LastFullScanSource              : 0
LastQuickScanSource             : 0
NISEnabled                      : False
NISEngineVersion                : 0.0.0.0
NISSignatureAge                 : 4294967295
NISSignatureLastUpdated         :
NISSignatureVersion             : 0.0.0.0
OnAccessProtectionEnabled       : False
QuickScanAge                    : 4294967295
QuickScanEndTime                :
QuickScanStartTime              :
RealTimeProtectionEnabled       : False
RealTimeScanDirection           : 0
PSComputerName                  :

在这里,我担心 NIS 设置为 0.0.0.0。

尝试使用 Update-MpSignature 更新 Windows Defender 签名时返回:

Update-MpSignature : Virus and spyware definitions update was completed with 
errors.
At line:1 char:1
+ Update-MpSignature
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: 
(MSFT_MpSignature:ROOT\Microsoft\...SFT_MpSignature) [Update-MpSignature],
CimException
+ FullyQualifiedErrorId : HRESULT 0x80070643,Update-MpSignature

我真的无法将 RDP 放入 docker 容器中(据我所知,使用 microsoft/aspnet 映像是不可能的)。这意味着我必须在命令提示符/powershell 中执行所有操作,而且我对此还是很陌生。

这可能没有足够的信息,甚至没有正确的信息来跟踪这个问题,但我已经被这个问题困扰了很长时间。如果有人能给我一些关于寻找什么/如何继续定位/解决这些问题的指示,那就太棒了。先感谢您!

4

2 回答 2

0

以管理员身份运行以完全禁用 Windows Defender

Set-MpPreference -DisableRealtimeMonitoring $true
于 2019-07-02T11:53:51.293 回答
-1

默认情况下,Windows Server 2016 使用进程隔离(不是 HyperV),并且防病毒软件已经扫描了未标记磁盘和卷上的文件。

于 2019-01-29T16:00:42.050 回答