|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Скрипт корректно работает интерактивно, но нет данных при запуске через планировщик |
|
|
PowerShell - [решено] Скрипт корректно работает интерактивно, но нет данных при запуске через планировщик
|
fascinating rhythm Сообщения: 6495 |
Профиль | Отправить PM | Цитировать
Привет, коллеги!
Помогите разобраться, пожалуйста. Есть скрипт, который задействует модуль ImportExcel. Когда я запускаю его интерактивно, всё работает прекрасно, данные извлекаются из таблички, подсчитываются и высылаются на почту. Например, данные: 20 яблок 8 груш 3 бананов Когда я сую этот скрипт в планировщик, данные, которые должен делать модуль, отсутствуют. Письмо приходит (т. е., сам скрипт работает), но там 0 яблок 0 груш 0 бананов Задача в планировщике создана под той же самой учёткой, выполнять под наивысшими правами, вне зависимости от регистрации пользователя. Модуль лежит уже в четырёх местах: C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\ImportExcel C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ImportExcel C:\Program Files\WindowsPowerShell\Modules\ImportExcel C:\Program Files (x86)\WindowsPowerShell\Modules\ImportExcel Строка запуска в планировщике: powershell.exe c:\scripts\script_report.ps1 -executionpolicy bypass Явно, что при неинтерактивном выполнении модуль не работает. Почему? |
|
------- Отправлено: 16:35, 16-09-2019 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:01, 16-09-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6495
|
Профиль | Отправить PM | Цитировать Спасибо за способ логирования, я, честно говоря, и позабыл о нём.
Вот вывод ошибки: Транскрибирование запущено, выходной файл C:\temp\templog.log Приложению Microsoft Excel не удается получить доступ к файлу "E:\temp\reports\Отчет.xls". Это мож ет быть вызвано одной из следующих причин. • Указан несуществующий файл или путь. • Файл используется другой программой. • Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент. C:\Program Files\WindowsPowerShell\Modules\ImportExcel\ConvertToExcelXlsx.ps1:53 знак:9 + $null = $Excel.Workbooks.Open($xlsFile.FullName) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException |
------- Отправлено: 20:05, 16-09-2019 | #3 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать А какая часть ругается ошибкой? Import-Module или сам командлет?
Если второе то тут либо спрашивать у разработчика нюансы реализации либо самому код ковырять. И диск Е - локальный или сетевой? Что будет если открываемый файл положить в корень С и убрать пробелы\спец.символы\кириллицу из пути? И\или как-нибудь задать ему гарантированно доступный рабочий каталог. |
Последний раз редактировалось Charg, 16-09-2019 в 20:52. Отправлено: 20:43, 16-09-2019 | #4 |
fascinating rhythm Сообщения: 6495
|
Профиль | Отправить PM | Цитировать Сам командлет, диск локальный.
Больше того - у меня был старый код модуля для конвертирования xls в csv: Function ExportWSToCSV ($excelFileName, $csvLoc) { $excelFile = "$path" + $excelFileName + ".xls" $E = New-Object -ComObject Excel.Application $E.Visible = $false $E.DisplayAlerts = $false $wb = $E.Workbooks.Open($excelFile) foreach ($ws in $wb.Worksheets) { $n = $excelFileName + "_" + $ws.Name $ws.SaveAs($csvLoc + $n + ".csv", 6) } $E.Quit() } Идиотизм в том, что Powershell отлично работает с .xlsx вообще без Экселя через .NET, но исходный файл именно .xls, и его надо сначала преобразовать во что-то человеческое. Вот, нашёл ещё одну тему на другом форуме, где точно такая же ситуация: http://www.cyberforum.ru/powershell/thread2326375.html |
|
------- Последний раз редактировалось DJ Mogarych, 16-09-2019 в 21:18. Отправлено: 21:07, 16-09-2019 | #5 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Ну как вариант - можно поизвращаться вот так https://stackoverflow.com/questions/...xcel-installed
|
Отправлено: 21:19, 16-09-2019 | #6 |
fascinating rhythm Сообщения: 6495
|
Профиль | Отправить PM | Цитировать Завтра попробую, отпишу. Сегодня сил уже нет.
Спасибо! |
------- Отправлено: 21:31, 16-09-2019 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
|
|
Отправлено: 22:52, 16-09-2019 | #8 |
fascinating rhythm Сообщения: 6495
|
Профиль | Отправить PM | Цитировать Iska, модуль ImportExcel - https://www.powershellgallery.com/packages/ImportExcel
Обнаружил, что в составе Офиса есть файл excelcnv.exe, в результате задача решилась так: & "C:\Program Files (x86)\microsoft office\Office16\excelcnv.exe" -oice "$xls" "$($xls.FullName -replace '.xls','.xlsx')"
|
------- Отправлено: 09:45, 17-09-2019 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать DJ Mogarych, спасибо, ясно. Если я правильно понимаю код, он работает только с новым форматом Рабочих книг, с 2007+. Ну, хотя бы и так.
|
Отправлено: 18:03, 17-09-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Службы - При запуске через планировщик заданий speedfan загружается в скрытом режиме | anton2887 | Microsoft Windows 7 | 11 | 23-08-2018 11:27 | |
CMD/BAT - Автопуть до батника при запуске через планировщик | surgutfred | Скриптовые языки администрирования Windows | 2 | 27-06-2017 08:53 | |
Но при переносе данных с видеорегистратора нет файлов | Klotik | Microsoft Windows 10 | 19 | 08-07-2016 21:59 | |
Разное - Конфликт IP адресов, каждый раз при запуске машины, но конфликтов нет! | DimonNT | Microsoft Windows 2000/XP | 14 | 25-02-2016 13:46 | |
При запуске компа чёрный экран но вроде всё работает | LandRock | Непонятные проблемы с Железом | 9 | 11-04-2013 16:52 |
|