Выполнение cmd файлов в terraforms - PullRequest
0 голосов
/ 06 ноября 2018

Я предоставляю 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"
}

соединение установлено и успешно установлено. Я получаю успех в конце выполнения скрипта.

Чего мне не хватает в моих сценариях, так это того, что он не выполняется через терраформы, а работает на компьютере.

1 Ответ

0 голосов
/ 06 ноября 2018

Это может быть вызвано политикой выполнения powershell?, Попробуйте запустить ее с параметром -ExecutionPolicy. Я должен сделать это при использовании расширений виртуальных машин в Azure.

start powershell -ExecutionPolicy Unrestricted -File runAsAdmin.ps1

...