因此,我有一个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
很好地手动编辑密钥。
其他文章提到了有关 ACL 的内容,确实如此,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.
所以我被困住了。有人能推荐一下如何通过 Powershell 安装并每天运行免费 AV 吗?