Я пытаюсь обновить Защитник Windows (в Win 10), используя определения, хранящиеся в UNC-пути.
Я устанавливаю путь к файлу 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, и он сработал.
Я никогда раньше этого не делал, но ваш вопрос вызвал у меня любопытство, и я начал проводить тесты. Мне удалось воспроизвести вашу проблему. Понятно, что не многие люди делают это, потому что в Интернете нет никакой связной информации о том, как это сделать. Так что неудивительно, что вы никуда не денетесь.
Итак, вот что я обнаружил при использовании Process Monitor. Мне удалось успешно заставить Защитник обновляться из источника файла.
mpam-fe.exe
, mpam-d.exe
, и nis_full.exe
. Я пробовал использовать только mpam-fe.exe
и это не удалось.Update-MPSignature
команда ожидает найти обновления под x64
или x86
папка в исходном пути. Итак, вам нужно создать дополнительные папки под исходным путем и поместить туда файлы обновления.domain computers
, Everyone
, и Anonymous
. Ничего не получилось. Каждый раз он терпел неудачу с отказом в доступе. Я смог заставить его работать только тогда, когда я поместил файлы на свой 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
У меня была именно эта проблема. Проблема была решена путем создания папки x64 в общей папке и перемещения определений в эту папку. Я нигде не могу найти это требование, но оно работает. SCEP использует эту структуру папок, поэтому я и получил эту идею. Даже сценарий предоставлен Microsoft не создает папку архитектуры!
Настройка сервера:
Настройка клиента (powershell):
Set-MpPreference -SignatureDefinitionUpdateFileSharesSources \\Server\Share$
Set-MpPreference -SignatureFallbackOrder 'FileShares'
Update-MPSignature
Ответ Appleoddity дает все, что вам нужно. Однако есть некоторые предостережения;
Итак, в основном, когда вы работаете над проблемой с помощью руководства Appleoddity, не полагайтесь исключительно на powershell и Update-MpSignature для проверки того, что вы делаете. YMMV, но в моем случае мне так и не удалось успешно запустить Update-MpSignature. Я быстро пришел к выводу, что я что-то настроил неправильно, но после дополнительных тестов я увидел, что сам Defender обновлялся без проблем, и только у PowerShell были проблемы.
Сообщение об отказе в разрешении вызвано Доступ запрещен к файлу журнала
C:\Windows\Temp\MpSigStub.log
Просто удалите этот файл журнала перед запуском
Update-MpSignature -UpdateSource FileShares -Verbose
Вот сценарий PowerShell, который я ежечасно запускал на сервере, а затем я просто указываю на него своим клиентам. Важным моментом было НЕ извлекать файл. Защитник Windows указывает на сам исполняемый файл.
$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