#excel #windows #powershell #batch-file #ansible
#excel #Windows #powershell #пакетный файл #ansible
Вопрос:
Я пытаюсь запустить файл .xlsm на Windows Server 2019 через Ansible. Я могу успешно заставить Ansible запустить сценарий Powershell на сервере через:
ansible win -m win_command -a «powershell.exe -Файл C:codemyTestScript.ps1 «
И я могу успешно написать сценарий Powershell, который запускается на сервере и запускает файл Excel:
excel.ps1
# start Excel
$excel = New-Object -comobject Excel.Application
#open file
$FilePath = "C:codeLauncher.xlsm"
$workbook = $excel.Workbooks.Open($FilePath)
Однако, когда я пытаюсь заставить Ansible запустить скрипт excel.ps1, команда просто зависает.
После выполнения команды Ansible диспетчер задач на Windows server показывает, что процесс Excel запускается, но Excel так и не появляется. Кроме того, файл .xlsm должен записывать файл журнала при открытии, но в этот файл журнала не записывается.
Я также попробовал следующее:
ansible win -m win_command -a c:codelauncher.bat
Где содержимое launcher.bat:
"C:Program FilesMicrosoft OfficerootOffice16EXCEL.EXE" -e Launcher.xlsm
Это дает те же результаты.
Я также пытался:
ansible win -m raw -a c:codelauncher.bat
а также
ansible win -m win_command -a «C:utilspsexec.exe c:codelauncher.bat «
Во всех случаях команда Ansible просто зависает. И во всех случаях, если я заменяю скрипт / пакетный файл скриптом / пакетным файлом, который просто копирует тестовый файл, Ansible может успешно выполнить эти команды.
Можно ли заставить Ansible запустить файл .xlsm на Windows Server 2019? Если да, то какой будет команда?
Комментарии:
1. Я не знаком с Ansible. Если он запускается как системная служба, обязательно ознакомьтесь с рекомендациями по автоматизации Office на стороне сервера .
2. Спасибо за ссылку. Я просто пытаюсь запустить xlsm обычным способом с графическим интерфейсом (не как системную службу).
3. Выдержка из приведенной выше ссылки:
Interactivity with the desktop: Office applications assume that they are being run under an interactive desktop
… что абсолютно не так при запуске модулей ansible на вашей цели. У меня 0 XP с Windows, так что это может быть даже невозможно (или использовать другие концепции, отличные от Linux …), Но, грубо говоря, вам придется искать дисплей, используемый текущим открытым сеансом графического интерфейса вашего текущего пользователя, и использовать его для запуска вашего приложения office.