Как можно автоматизировать Word 2013 из программы C# Interop/COM с помощью планировщика заданий, когда пользователь вошел в систему, а рабочий стол заблокирован?
Я унаследовал программу на C#, которая использовалась для автоматизации создания ежедневного отчета в Windows XP Pro SP3 с использованием PDFCreator 1.2.3, MapInfo Professional 11, Word 2003 и Excel 2003. Этот компьютер с Win XP находился в домене Active Directory и Программа C# запускалась как пользователь домена (с правами администратора), когда пользователь вошел в систему и рабочий стол заблокирован. Word 2003 был автоматизирован, чтобы открыть шаблон, создать документ из шаблона и сохранить документ - все из / на сетевом ресурсе. Excel 2003 использовался для открытия электронной таблицы с таблицей, связанной с источником данных ODBC, и для обновления таблицы, извлекая новые данные в электронную таблицу. MapInfo использовалась для генерации изображений карты из источника данных ODBC. PDFCreator использовался для того, чтобы взять электронную таблицу, текстовый документ и изображения и объединить их в ежедневный отчет.
Поскольку срок действия XP истек, я переместил эту программу на виртуальную машину Win 8.1 EE (в том же домене) и установил продукты Office 365 (Word 2013 и Excel 2013) вместе с PDFCreator 1.7.1 и MapInfo Professional. 12, чтобы использовать в автоматизации создания этого ежедневного отчета. Эта программа работает нормально, когда запускается вручную на новой виртуальной машине, но не запускается при запуске от имени того же пользователя, что и запланированная задача. Это запланированное задание настроено на запуск с наивысшими разрешениями и выполняется, если пользователь не вошел в систему.
Я понимаю, что здесь есть много переменных; O/S пришлось изменить, и мы больше не используем старую версию Office, я также не смог получить более старые версии PDFCreator или MapInfo. Поэтому я сосредоточу вопрос на том, что я могу контролировать. Я знаю о проблемах, с которыми я сталкиваюсь при этом, но не ясно, возможно ли это сделать сейчас, учитывая новые O/S и приложения (а именно Word 2013 и Excel 2013), которые меня попросили попробовать заставить его работать с.
Итак, вопрос заключается в следующем: как можно автоматизировать Word 2013 из программы C# Interop/COM с помощью планировщика задач, чтобы запустить программу с вошедшим пользователем и заблокированным рабочим столом?
2 ответа
Ответ, который я нашел, заключается в том, что такая задача, как эта, при запуске в Windows XP Pro с пакетом обновления 3 (SP3) с параметрами, выбранными для запуска в качестве администратора и для запуска, не были ли выполнены вход в систему или нет, не могут быть использованы с той же задачей / пользователем / разрешения под Windows 8.1 EE.
Задача прошла успешно с параметрами запуска от имени администратора и запускается, если не вошел в систему, будучи не выбранным.
Для всех, кто переносит устаревшие программы / задачи из Win XP по мере их вывода из эксплуатации в связи с окончанием срока службы, вы можете попробовать удалить запуск от имени администратора и запустить, если не вошли в систему параметры задачи в новой версии планировщика задач Windows.,
Из документов Microsoft - Рекомендации по автоматизации Office на стороне сервера:
Все текущие версии Microsoft Office были разработаны, протестированы и настроены для работы в качестве продуктов конечного пользователя на клиентской рабочей станции. Они предполагают наличие интерактивного рабочего стола и профиля пользователя. Они не обеспечивают уровень повторного входа или безопасности, который необходим для удовлетворения потребностей серверных компонентов, предназначенных для работы без присмотра.
В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любых необслуживаемых, неинтерактивных клиентских приложений или компонентов (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или или тупик, когда Office работает в этой среде.
Я знаю, что это не отвечает на вопрос о Office 365, но я думаю, что это так близко, как вы собираетесь получить. Также я нашел эту статью: HOWTO: Настройка приложений Office для запуска под интерактивной учетной записью пользователя.