1

У меня есть скрипт PowerShell, который я пытаюсь запустить как запланированное задание. Его целью является выполнение ночного экспорта из базы данных Access, а затем выгрузка экспортированных плоских файлов в место назначения SFTP. Сценарий работает нормально, когда я запускаю его вручную, но когда я пытаюсь запустить его как запланированное задание, он не выполняется. Я сузил проблему до невозможности создать COM-объект.

Что я вижу

Я сделал несколько записей об этом, и я думаю, что знаю, что происходит; Я просто не знаю, как это исправить.

В моем скрипте powershell $Access = New-Object -ComObject Access.Application Когда я запускаю скрипт вручную, мой Access COM-объект создается успешно. $Access имеет тип Microsoft.Office.Interop.Access.ApplicationClass , как я и ожидал.

Если я запускаю его как запланированное задание, работающее под моими собственными разрешениями, объект COM не создается; $Access возвращается как $null , что приводит к сбою любых вызовов методов для этого объекта.

Я могу получить объект COM, созданный успешно, установив флажок "Запускать с наивысшими привилегиями" в планировщике задач, но это создает еще одну проблему. Моя база данных Access использует связанные таблицы на общем сетевом ресурсе, и, работая в качестве локального администратора, я теряю доступ к этим таблицам, потому что я больше не пользователь домена.

Мой вопрос

Кто-нибудь знает, почему я не могу создать объект COM при выполнении этого в качестве запланированной задачи под своими учетными данными? Есть ли какое-то решение для этого?

В противном случае, какие-либо предложения по решению моей проблемы с разрешениями? Похоже, я здесь в Catch-22; единственный способ успешно создать мой COM-объект - использовать учетные данные, которые приводят к сбою остальной части моего сценария.

0