Автоматизация Excel COM перестает работать, когда пользователь выходит из системы

Я разработал серверное приложение, которое использует автоматизацию Excel 2007 COM для преобразования некоторых файлов xls. Он запускается как служба в экземпляре Windows Datacenter, работающем под своим собственным пользователем, и мне пришлось изменить параметры безопасности DCOM («запуск как интерактивный пользователь»), чтобы он работал.

Проблема в том, что когда я выхожу из системы (через RDP), она перестает работать. Я вхожу в систему, он работает снова.

У кого-то была такая же проблема? На данный момент я рад любой помощи.

Хорошо, поэтому я не мог заставить Excel работать без интерактивного пользователя, никакое количество обмана DCOMCNFG не сделало бы. Поэтому я просто настроил autologin для пользователя, на котором работает служба (см. Инструкции по адресу http://support.microsoft.com/kb/315231 ).

Это приводит к тому, что при загрузке сервера этот пользователь войдет в качестве сеанса интерактивной консоли. В отличие от сеансов RDP это постоянно и делает Excel счастливым.

Другие намеки на души страхов, которые должны сделать что-то подобное:

  • создайте папку C: \ Windows \ System32 [или SysWOW64] \ config \ systemprofile \ Desktop
  • убедитесь, что принтер по умолчанию настроен для пользователя, работающего под
  • измените настройки DCOMCNFG (mmc -32, добавьте «сервисы компонентов») Excel для запуска с использованием интерактивной учетной записи
  • изменить глобальные DCOM по умолчанию, чтобы разрешить локальный доступ, локальный запуск и локальную активацию для пользователя, которому служба работает под

Удачи!

Есть вещь, называемая службами Excel, которая, как предполагается, позволяет запускать Excel в качестве службы с помощью SharePoint, что позволит ей запускаться без присмотра, если никто не войдет в систему.

У меня была эта проблема, и я обнаружил, что ответ на самом деле находится в DCOM Configuration.

Для решения проблемы я сделал следующее:

  1. Откройте Excel DCOM Properties
  2. Перейдите на вкладку « Identity »
  3. Выберите This User
  4. Введите учетные данные того, кто имеет доступ к Excel

Возможно, вам потребуется перейти на вкладку « Security » и убедиться, что пользователь, указанный выше, имеет соответствующие разрешения.

После этого мне удалось выйти из сервера, используя библиотеки Excel COM Automation.

Если учетная запись, на которой запущен EXCEL, является администратором, тогда это будет работать:

Для 64-разрядной (x64) создайте эту папку: C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop Для 32-разрядной (x86), создайте эту папку: C: \ Windows \ System32 \ config \ systemprofile \ Desktop В противном случае решить эту проблему выполните следующие действия:

  1. Войдите в свой сервер как администратор
  2. Перейдите в «Пуск» -> «Выполнить» и введите «MMC comexp.msc / 32»
  3. Перейдите в свойства приложения Microsoft Excel в разделе «Идентификация», измените его на «Интерактивный пользователь» из «Запускающего пользователя» (который установлен по умолчанию).
  4. Перейдите в свойства Microsoft Office Excel 2007 Workbook, в разделе «Идентификация», измените его на «Интерактивный пользователь» из «Запускающего пользователя» (который установлен по умолчанию).
  5. Перейдите на вкладку «Безопасность» для приложения Microsoft Excel и выберите «Настроить» для «Разрешения запуска и активации» и добавьте к нему ACCOUNT (под которым выполняется EXCEL) и дайте ему разрешение «Локальный запуск» и «Локальная активация»
  6. Перейдите на вкладку «Безопасность» для Microsoft Office Excel 2007 Workbook и выберите «Настроить для« Разрешения доступа »и добавьте в нее ACCOUNT (под которым работает EXCEL) и дайте ей разрешение« Локальный доступ »

Серверная сторона:

A) Переключить «Интерактивный пользователь» на «Этот пользователь» .

B) «Этот пользователь» работает только после создания этих папок :

  • C: \ Windows \ SysWOW64 \ Config \ systemprofile \ Desktop
  • C: \ Windows \ System32 \ Config \ systemprofile \ Desktop

C) Подождите … Step B) запускает Windows для автоматического создания:

  • C: \ Users \ Default \ Desktop

Обратите внимание, что определение «Интерактивный пользователь» заключается в том, что он включен на то, что является активным зарегистрированным пользователем на сервере. Таким образом, не удается запустить MS Office, когда пользователь не активен на сервере.

Т.е. для меня решение было гибридом уже предложенных решений. Я использовал Office 2013 (x86) для Win 2012R2. Моя проблема была вместо Word (для использования WordToPDF).

Детали для этапа B:

  • Вход в сервер> Пуск> Запустите DCOMCNFG.EXE (для запуска служб компонентов)> Корень консоли> Службы компонентов> Компьютеры> Мой компьютер> Конфигурация DCOM …
  • Выделите «Документ Microsoft Word 97 – 2003» или «Приложение Microsoft Excel» (… то есть, какую вещь MS Office вам нужно запустить) …
  • Щелкните правой кнопкой мыши и выберите «Свойства»> вкладка «Идентификация»> Выберите «Этот пользователь»> введите учетные данные для некоторых пользователей, имеющих доступ к MS Office на сервере. (Я использовал пользователя с разрешениями администратора.)

Детали для этапа C:

  • Ожидание варьируется от 5 минут до ночи. При желании, создайте эту папку вручную (если папка не существует, и вы спешите завершить тестирование).
Interesting Posts

Как открыть файл Excel в режиме readonly?

Преобразование нескольких столбцов в один большой столбец (Excel 2010)

Excel: форматируйте ячейки, если он найдет похожие строки в ячейках

Как открыть макросы Excel (xlsm) в отдельных экземплярах Excel 2016 / win10

Изменение шаблона на основе excel в VB.NET

Ссылки в редакторе VBA Excel 2013 выделены серым цветом

Можно ли выполнить поиск цели, если выходы, которые нуждаются в изменении, управляются несколькими макросами?

Загрузка файла Excel в базу данных – Office 2013

Ошибка Excel 424 Необходимая справка

openxlsx :: write.xlsx бросает неиспользуемую ошибку аргумента для startRow

Текущая цена по совокупному прогрессу в отношении дискретных значений

добавление событий во время выполнения для флажка в пользовательской форме в excel

Импорт данных из базы данных Excel в SQL Server с использованием Microsoft.ACE.OLEDB.12.0

Завершить приложение Excel с помощью OLE

создать список документов в excel

Давайте будем гением компьютера.