【发布时间】:2020-09-24 15:26:20
【问题描述】:
我正在 AWS 中设置一个基础设施,其中基于 Windows 的 EC2 实例通过 Cloudformation 模板启动,并且在 EC2 实例的启动配置中调用 UserData 脚本(Powershell 脚本)。 EC2 实例的 CF 模板如下所示:
"<powershell>\n",
"Start-Transcript -Path \"C:\\UserDataTranscript.txt\" -Append",
"Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force",
"Import-Module AWSPowerShell",
{"Fn::Sub": "Set-DefaultAWSRegion -Region ${AWS::Region}"},
"New-Item -Path C:\\UserData -ItemType \"directory\" -Force",
{ "Fn::Sub": ["Read-S3Object -BucketName ${UserDataBucket} -Key EC2UserData.ps1 -File C:\\UserData\\EC2UserData.ps1",
{ "UserDataBucket": { "Fn::Select": [0, {"Ref": "S3UserDataFilesParameterStoreKey"}] } }
]},
"C:\\UserData\\EC2UserData.ps1",
"Stop-Transcript",
"</powershell>"
这就是EC2UserData.ps1 脚本的样子:
$params = @(
"/q"
"ADDRESS=$wazuhServerIP"
"AUTHD_SERVER=$wazuhAuthServerIP"
"PROTOCOL=`"TCP`""
"AUTHD_PORT=`"55000`""
)
$proc = Start-Process -FilePath "C:\UserData\wazuh-agent.msi" -ArgumentList $params -PassThru
$proc | Wait-Process -Timeout 40 -ErrorAction Stop
我在这里的脚本中安装 Wazuh 代理,需要管理员权限才能安装。我尝试添加-Verb runAs,但没有成功。
【问题讨论】:
-
Start-Process ... -Verb RunAs出现什么错误? -
没有抛出错误,这就是它的奇怪部分。我怀疑这可能是因为 UAC 弹出确认安装阻止了安装过程。我尝试通过运行此命令来禁用它,但即使这样也失败并出现访问被拒绝错误:
Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorAdmin -Value 0
标签: windows amazon-web-services powershell