Powershell-Funktion funktioniert nicht

Oct 07 2020

Ich bin neu in der Powershell-Skripterstellung. Scannen Sie eine Datei mit windowsdefenderder Befehlszeile. Was mache ich falsch?

function scan { Start-Process "C:\program files\windows defender\mpcmdrun.exe" -Scan -ScanType 3 -File $args[0] }

C:\Programme\Windows Defender>MpCmdRun -scan -scantype 3 -file *.dll Scan wird gestartet... CmdTool: Failed with hr = 0x80508023. Weitere Informationen finden Sie unter C:\Users\exp\AppData\Local\Temp\MpCmdRun.log. MpCmdRun: Befehlszeile: "C:\Programme\Windows Defender\MpCmdRun.exe" -scan -scantype 3 -file *.dll Start Zeit: ‎ma. Okt. ‎06 ‎2020 23:36:36

MpEnsureProcessMitigationPolicy: hr = 0x1 Starten von RunCommandScan. INFO: ScheduleJob ist nicht gesetzt. Signaturaktualisierung überspringen. Scanpfad als Datei: *.dll. Start: MpScan(MP_FEATURE_SUPPORTED, dwOptions=16385, Pfad *.dll, DisableRemediation = 0, BootSectorScan = 0, Timeout in Tagen = 1) MpScan() gestartet Warnung: MpScan() hat einen Fehler festgestellt. hr = 0x80508023 MpScan() wurde abgeschlossen ERROR: MpScan(dwOptions=16385) Completion Failed 80508023 MpCmdRun: End Time: ‎ma. Okt. ‎06 ‎2020 23:36:36


Antworten

2 Jacob Oct 14 2020 at 03:33

Um Ihre Funktion zu reparieren, müssen Sie die cmd-Argumente über -ArgumentList übergeben

function scan { Start-Process "C:\program files\windows defender\mpcmdrun.exe" -ArgumentList "-Scan -ScanType 3 -File $($args[0])" }

Dafür gibt es bereits ein PowerShell-Cmdlet:

Start-MpScan -ScanPath C:\Windows\System32\cmd.exe -ScanType CustomScan