Я предоставляю Windows Server 2012R2 terraforms на Vsphere. У меня есть машина и работает. Теперь я хочу запустить некоторые .cmd файлы на машине через remote_exec terraforms.
Пользователь не Администратор, но в группе Администратор. UAC отключен для выполнения сценариев через CLI или powershell.
Я написал runAsAdmin.ps1, который будет вызывать мой install_software.ps1, в котором будут все необходимые команды для выполнения файлов .cmd.
runAsAdmin.ps1
powershell -noprofile -command "&{ start-process powershell -ArgumentList '-noprofile -file C:\scripts\install_software.ps1' -verb RunAs}"
install_software.ps1
cd C:\\gitrepo\\lip-core-devops\\terraform\\system-config\\ims\\scripts
echo "Installing IMS Base from powerscript"
Invoke-Item .\Install_IMS_Base.cmd
Я могу запустить runAsAsAdmin.ps1 на PowerShell непосредственно на машине без прав администратора, и все работает как положено.
Но когда я выполняю runAsAdmin.ps1 из удаленного exe-файла terraforms, выполнение выполняется успешно, но содержимое файла install_software не выполняется. Я попытался создать каталог перед выполнением файла cmd.
Часть Terraform
provisioner "remote-exec" {
inline = [
"powershell -File C:\\scripts\\runAsAdmin.ps1"
}
соединение установлено и успешно установлено. Я получаю успех в конце выполнения скрипта.
Чего мне не хватает в моих сценариях, так это того, что он не выполняется через терраформы, а работает на компьютере.