10

Я написал сценарий powershell, который открывает книгу Excel и запускает макрос. Когда я запускаю этот скрипт из консоли PS или даже из командной строки, используя powershell.exe script.ps1, он работает. Когда я настраиваю задачу из планировщика задач Windows, он вызывает исключение для этого файла Excel, говоря, что он либо не существует, либо уже используется.

Файл существует наверняка, так как скрипт запускается из командной строки, и я уверен, что он не используется.

Я попытался переместить файл Excel в локальную и непривилегированную область, чтобы избежать проблем с доверием к сети / привилегиями администратора. Задача по-прежнему выполняется с самыми высокими привилегиями. Путь не имеет пробелов или специальных символов.

Когда я пытаюсь получить доступ к файлу с помощью объекта Файловая система, ошибок не возникает даже при запуске из планировщика, поэтому я предполагаю, что он специфичен для Excel.Заявка.Workbooks.Открытый ("..") метод.

Что я должен рассмотреть сейчас?

заранее спасибо

3 ответа3

33

Создайте эти две папки:

32Bit:

C:\Windows\System32\config\systemprofile\Desktop  

64Bit:

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

Excel нужны эти папки, если он не работает в интерактивном режиме. Создайте обе папки, даже если вы работаете в 64-битной ОС.

8

Вероятно, проблема с разрешениями DCOM. Автоматизация Excel иногда сопряжена с опасностью ...

Единственный способ найти такие проблемы, как это, - настроить Excel для работы от имени определенного пользователя через разрешения DCOM.

  1. Откройте Службы компонентов (Пуск -> Выполнить, введите dcomcnfg)
  2. Разверните узел до Службы компонентов -> Компьютеры -> Мой компьютер и нажмите Конфигурация DCOM.
  3. Щелкните правой кнопкой мыши на приложении Microsoft Excel и выберите «Свойства».
  4. На вкладке «Удостоверение» выберите «Этот пользователь», введите идентификатор и пароль интерактивной учетной записи пользователя (доменной или локальной) и нажмите «ОК».

Сохранение его в качестве интерактивного пользователя или запуска не работает с планировщиком задач, к сожалению, даже при настройке задачи для запуска под учетной записью, которая имеет доступ администратора к машине.

2

При настройке разрешений DCOM, если Microsoft Excel не отображается в dcomcnfg попробуйте mmc comexp.msc /32

ссылка

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .