Powershell Excel Automation - Ошибка сохранения / открытия в запланированной задаче - PullRequest
2 голосов
/ 18 августа 2011

Я создал простой скрипт powershell, который создаст экземпляр Excel и сохранит книгу:

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open("C:\Test\foo.xls")
$workbook.SaveAs("C:\Test\bar.xls")

# cleanup code ...

Когда я запускаю это непосредственно из powershell, он работает нормально.Я создал запланированное задание, которое запускает его, и когда у меня есть установленный параметр «Запускать только когда пользователь вошел в систему», он будет работать нормально.вошел в систему или нет, он не сможет открыть / сохранить файл.У учетной записи, которую я использую, есть правильные разрешения.У меня есть учетная запись, настроенная для входа в систему в качестве службы.

Есть предложения?

Ответы [ 2 ]

6 голосов
/ 14 ноября 2012

Я был сожжен этим и не хотел переписывать код.Я видел ваш пост и несколько других, которые заставили меня сдаться.Однако мое упорство окупилось.Я пытался заставить Дженкинса запустить скрипт для инвентаризации нашей производственной среды и вывода в Excel.Мне не нужен был текстовый документ, потому что я выделял версии программного обеспечения, которые не совпадали в RED, поэтому требовался Excel.

Вот ответ, который работал для меня:

Вы должны создать папку (или две на 64-битных окнах):

(32-битная, всегда)

C: \ Windows \ System32 \ config \systemprofile \ Dektop

(64Bit)

C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop

Ссылка, предоставленная кем-либо какисточник:

http://www.patton -tech.com / 2012/05 / печать из запланированного задания-as.html

Мой источник был:

http://social.technet.microsoft.com/Forums/en/winserverpowershell/thread/aede572b-4c1f-4729-bc9d-899fed5fad02

2 голосов
/ 19 августа 2011

Я помню, что делал что-то подобное в приложении на C #, что хорошо работало, когда вы собирали его в Visual Studio, но запуск под службой на сервере CI не удался.Я полагаю, что это является ограничением самой автоматизации Office, и Microsoft вообще не рекомендует и не рекомендует делать это. Посмотрите на соображения по поводу серверной автоматизации Office здесь - http://support.microsoft.com/kb/257757. Здесь показаны проблемы и альтернативы.*

В моем случае мне пришлось отказаться от Office Interop и использовать EPPlus (http://epplus.codeplex.com/) для работы с Excel.Это работало отлично и было намного быстрее.

...