windows - 在 terraforms 中执行 cmd 文件
问题描述
我在 Vsphere 上配置带有 terraforms 的 Windows Server 2012R2。我已经启动并运行了机器。现在我想通过 terraforms 的 remote_exec 在机器上运行一些 .cmd 文件。
用户不是管理员,而是管理员组。为通过 CLI 或 powershell 执行脚本而禁用 UAC。
我编写了一个 runAsAdmin.ps1,它会调用我的 install_software.ps1,它将包含执行 .cmd 文件所需的所有命令。
runAsAdmin.ps1
powershell -noprofile -command "&{ start-process powershell -ArgumentList '-noprofile -file C:\scripts\install_software.ps1' -verb RunAs}"
安装软件.ps1
cd C:\\gitrepo\\lip-core-devops\\terraform\\system-config\\ims\\scripts
echo "Installing IMS Base from powerscript"
Invoke-Item .\Install_IMS_Base.cmd
我可以直接在机器上的 powershell 上运行 runAsAsAdmin.ps1 ,而无需管理员提升,一切都按预期工作。
但是当我从 terraforms 的 remote-exec 执行 runAsAdmin.ps1 时,执行成功,但是 install_software 文件的内容没有执行。我尝试在执行 cmd 文件之前创建一个目录。
地形部分
provisioner "remote-exec" {
inline = [
"powershell -File C:\\scripts\\runAsAdmin.ps1"
}
连接已全部设置并成功。我在脚本执行结束时获得了成功。
我在我的脚本中缺少的是它不是通过 terraforms 执行的,而是在机器上工作的。
解决方案
这可能是由 powershell 执行策略引起的?请尝试使用 -ExecutionPolicy 设置运行它。在 Azure 中使用 VM 扩展时,我必须这样做。
start powershell -ExecutionPolicy Unrestricted -File runAsAdmin.ps1
推荐阅读
- python - 在 python 3 中使用 numpy 将 wav 文件混合在一起
- css - 具有CSS样式的列表中的间距
- python - 避免除以零错误的策略
- jira - Reportportal 到 JIRA 集成不起作用
- javascript - 基本的 javascript-insertAdjacentHTML
- php - 这个类继承的例子有什么问题?
- javascript - 使用拖动道具时,如何让 React Framer-motion 触发手机的 onClick 事件?
- react-native - setDefaultOptions VS。静态选项 VS。setRoot 中的选项
- html - Fancybox 导致分屏布局滚动位置重置为顶部
- oracle - oracle apex 错误处理功能无法正常工作