web-dev-qa-db-ja.com

UNCパスからWindows Defenderを更新しようとすると、失敗し続けます

UNCパスに保存されている定義を使用して、Windows Defender(Win 10)を更新しようとしています。

Mpam-fe.exeファイルのパスを次のように設定しています

Set-MpPreference -SignatureDefinitionUpdateFileSharesSources \\path\to\mpam.exe

次に、Get-MpPreferenceを実行して、パスが設定されたことを確認します(設定されています)。パスが正しいことを確認したらSignatureDefinitionUpdateFileSharesSourcesを実行します

Update-MpSignature -UpdateSource FileShares

エラーがすぐに出ます

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

この障害はほぼ瞬時に発生します。特定のpowershellインスタンスが問題のファイル共有にアクセスできることを確認するためだけに-mpam-fe.exeファイルを実行するだけで追跡できました。

2
George Kendros

私はこれまでこれをやったことはありませんが、あなたの質問に興味をそそられ、いくつかのテストを始めました。問題を再現できました。これを行う方法についてインターネット上に一貫した情報がないため、これを行う人は多くありません。だから、あなたがどこにもいないことは驚くことではありません。

だから、ここに私はプロセスモニターを使用しているときに発見したものです。 Defenderをファイルソースから正常に更新することができました。

  • まず、更新パッケージは、mpam-fe.exempam-d.exenis_full.exeの3つのファイルで構成されています。 mpam-fe.exeだけを使用してみましたが、失敗しました。
  • 次に、32ビット版と64ビット版のアップデートがあります。 Update-MPSignatureコマンドを実行すると、ソースパスのx64またはx86フォルダーの下に更新があることが期待されます。そのため、ソースパスの下に追加のフォルダーを作成し、そこに更新ファイルを配置する必要があります。
  • 3番目に、Windows Defenderを更新するプロセスはwmiprvse.exe(WMI)です。ローカルシステムとして実行されます。ファイルソースへの接続は、ユーザーアカウントではなくコンピューターアカウントを使用して行われることに注意してください。ドメインに参加しているサーバー上のファイル共有に接続するために、いくつかのことを試しました。これには、コンピューターアカウント、domain computersEveryone、およびAnonymousの追加が含まれます。何もうまくいきませんでした。 Access Deniedで毎回失敗しました。セキュリティ上の制限がまったくないNASにファイルを置いたときにのみ、それを機能させることができました。

更新パッケージのダウンロードに役立つスクリプトは次のとおりです。 https://www.powershellgallery.com/packages/SignatureDownloadCustomTask/1.4/DisplayScript

これを機能させるために私が使用した他の参照は次のとおりです: https://technet.Microsoft.com/en-us/itpro/powershell/windows/defender/update-mpsignature?f=255&MSPPError=-2147217396 =

https://technet.Microsoft.com/en-us/itpro/powershell/windows/defender/set-mppreference

LocalSystemアカウントへのネットワークアクセスを許可する方法

https://docs.Microsoft.com/en-us/windows/threat-protection/windows-defender-antivirus/manage-protection-updates-windows-defender-antivirus

https://docs.Microsoft.com/en-us/windows/threat-protection/windows-defender-antivirus/deployment-vdi-windows-defender-antivirus

http://ccmexec.com/2016/01/download-and-deploy-windows-defender-definitions-for-windows-10-during-osd/

3
Appleoddity

私はこの正確な問題を抱えていました。この問題は、共有にx64フォルダーを作成し、定義をそのフォルダーに移動することで解決されました。この要件はどこにもありませんが、機能します。 SCEPはこのフォルダー構造を使用しているので、そこでアイデアを得ました。 Microsoft提供のスクリプト でもアーキテクチャフォルダーは作成されません!

サーバーのセットアップ:

  • ファイル共有(例:\\ Server\Share $)完全な共有アクセス許可とEveryoneの読み取りアクセス許可(ドメインコンピュータは必要ありません!)
  • フォルダーx64 64ビットの定義ファイルを含む(例:\\ Server\Share $\x64\mpam-fe.exe)

クライアントのセットアップ(Powershell):

Set-MpPreference -SignatureDefinitionUpdateFileSharesSources \\Server\Share$
Set-MpPreference -SignatureFallbackOrder 'FileShares'
Update-MPSignature

権限拒否メッセージの原因はLogFileへのアクセス拒否です。

C:\Windows\Temp\MpSigStub.log

実行する前にこのLogFileを削除するだけです

Update-MpSignature -UpdateSource FileShares -Verbose
0

サーバーで1時間ごとに実行しているPowerShellスクリプトは次のとおりです。クライアントにそれを指定するだけです。重要な点は、ファイルを抽出することではありませんでした。 Windows Defenderはexe自体を指します。

$vdmpathbase = 'E:\VirusDef\latest\x64'
$vdmpackage = $vdmpathbase + '\mpam-fe.exe'
cmd /c "del $vdmpackage /q"
Invoke-WebRequest -Uri 'https://go.Microsoft.com/fwlink/?LinkID=121721&Arch=x64' -OutFile $vdmpackage
0
Jeff Riechers

Appleoddityの答えはあなたが必要とするすべてを与えます。ただし、いくつかの警告があります。

  • PowerShellでUpdate-MpSignatureが機能しませんでした。私はこれらの更新が機能するための環境をセットアップするために多くの時間を費やし、テストとしてUpdate-MpSignatureを使用していました。
  • 実際にDefender/MSEの組み込みの更新機能を実行し、Update-MpSignatureが失敗した状況で更新が正しく機能していることを理解したら、Powershellで失敗していたため機能していなかった他のシナリオのバックトラックとテストを開始しました

したがって、基本的には、Appleoddityのガイドを使用して問題を解決するときは、PowershellとUpdate-MpSignatureだけに依存していないことを確認してください。 YMMVですが、私の場合、Update-MpSignatureを正常に実行できませんでした。私は何かを間違って設定したという結論に飛びつきましたが、さらにテストした後、ディフェンダー自体が問題なく更新されていて、Powershellだけに問題があることがわかりました。

0
George Kendros