Итак, у меня есть CIS Microsoft Windows Server 2008 R2 - Level 1
образ, на котором должен быть установлен антивирус и настроен на ежедневное сканирование. Это нужно сделать с помощью PowerShell, чтобы я мог встроить его в сценарий упаковщика или CloudFormation Init. Я выбрал Microsoft Security Essentials, потому что он бесплатный, но я рад рассмотреть другие бесплатные AV, если их проще настроить.
Этот образ CIS представляет собой усиленную версию Windows, которая блокирует все разрешения и скрывает уязвимости. Это может быть причиной некоторых из моих проблем.
Вот сценарий, который у меня есть на данный момент:
.\MSEInstall.exe /s /runwgacheck /o
Start-Sleep 5 # I have no idea how to wait for the installer to finish
Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft Antimalware\Scan"
ScheduleDay "0"
К сожалению, я получаю:
Set-ItemProperty : Requested registry access is not allowed.
Я уже запускаю powershell с правами администратора. В противном случае я бы не смог установить AV. Я могу получить значение очень хорошо, и я могу изменить ключ вручную с помощью regedit
просто хорошо.
В другой статье что-то говорилось о списках контроля доступа, и это правда, что regedit
показывает, что группа администраторов не имеет полного доступа к папке. Это заставило меня попробовать:
$user = whoami
$regPath = "SOFTWARE\Microsoft\Microsoft Antimalware\Scan"
$key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey($regPath, [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::ChangePermissions)
$acl = $key.GetAccessControl()
$rule = New-Object System.Security.AccessControl.RegistryAccessRule ($user,"FullControl","Allow")
$acl.SetAccessRule($rule)
$key.SetAccessControl($acl)
Но я просто получаю:
Exception calling "OpenSubKey" with "3" argument(s): "Requested registry access is not allowed.
Так что я застрял. Есть ли у кого-нибудь рекомендации о том, как каждый день устанавливать и запускать бесплатный AV через Powershell?