Вопросы серверной автоматизации Office

Переводы статьи Переводы статьи
Код статьи: 257757 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Автоматизация может быть использована разработчиками для создания специальных программ на базе функций и компонентов продуктов из пакета Office. В то время как такие решения достаточно просто внедряются на клиентских системах, при выполнении автоматизации с сервера (Active Server Pages (ASP), распределенная модель компонентных объектов (DCOM) или служба NT) возможно возникновение ряда осложнений.

В этой статье рассмотрены возможные осложнения, альтернативы автоматизации, способствующие повышению производительности, а также методы настройки Office на случай, если серверная автоматизация неизбежна. Рекомендации в данной статье предоставлены исключительно в информационных целях. Корпорация Microsoft не советует производить и не поддерживает серверной автоматизации Office.

Примечание. В этом контексте термин «серверный» относится также к программному коду, который запускается на рабочих станциях Microsoft Windows NT или Microsoft Windows 2000, если его запуск осуществляется с другого компьютера (по отношению к компьютеру, на котором работает вошедший в систему пользователь). Например, программы, запущенные планировщиком с помощью учетной записи SYSTEM, выполняются в той же среде, что и «серверный» программный код ASP или DCOM, а следовательно, приводят к возникновению тех же проблем. Ссылки на источники дополнительных сведений о WinStation и COM содержатся в разделах «Дополнительные сведения» и «Ссылки» этой статьи.

Дополнительная информация

Все современные версии Microsoft Office были созданы, проверены и настроены для применения на рабочих станциях конечными пользователями. Их использование предполагает наличие интерактивного рабочего стола и профиля пользователя. Кроме того, эти продукты не обеспечивают уровень безопасности и возможности повторного входа, удовлетворяющие требованиям серверных компонентов, которые запускаются автоматически.

Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.

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

Проблемы серверной автоматизации Office

Разработчикам, пытающимся использовать Office в серверных решениях, следует помнить, что из-за особенностей программной среды Office может функционировать непредсказуемо в пяти основных случаях. Для успешной работы программ эти отклонения должны быть обязательно учтены, а их влияние минимизировано. При этом в процессе создания разнообразных приложений приоритет отклонений может меняться.
  1. Идентификация пользователей. Приложения Office, даже в случае запуска в автоматическом режиме, предполагают наличие определенного пользователя. Так, например, инициализация панелей инструментов, меню, параметров, принтеров и некоторых надстроек выполняется на основе конфигурации запустившего приложение пользователя, которая хранится в соответствующем кусте реестра. Многие службы запускаются от имени учетных записей, не имеющих профиля пользователя (например, учетные записи SYSTEM или IWAM_[servername]), а следовательно, программа Office может не запуститься, выдав сообщение об ошибке для CreateObject или CoCreateInstance. Даже после запуска приложения некоторые функции, из-за отсутствия профиля пользователя, могут работать некорректно. При автоматизации Office с помощью службы, для его запуска с загруженным профилем пользователя необходимо соответствующим образом настроить Office или программный код.
  2. Взаимодействие с рабочим столом. Приложения Office предполагают определенный уровень взаимодействия с пользователем и при выполнении некоторых автоматизированных функций требуют отображения на экране монитора. Office сконструирован таким образом, что всякий раз при возникновении ошибки или необходимости указания параметра выводится соответствующее модальное диалоговое окно. Модальное диалоговое окно на неинтерактивном рабочем столе не может быть отвергнуто, что приводит к остановке (зависанию) потока на неопределенное время. Даже если некоторые методы написания программ позволяют снизить возможность возникновения такой ситуации, полностью исключить ее нельзя. Уже только этот факт делает запуск приложений Office из серверного окружения рискованным и непредсказуемым.
  3. Возможность повторного входа и масштабируемость. Серверные компоненты должны представлять собой многопоточные СОМ-компоненты с хорошо развитыми возможностями повторного входа, минимальными накладными расходами и высокой производительностью для нескольких клиентов. Приложения Office во многих отношениях обладают прямо противоположными характеристиками. Их возможности повторного входа не развиты, они представляют собой серверы на базе STA, сконструированные для предоставления разнообразных, но ресурсоемких функциональных возможностей одному клиенту. В качестве серверного решения они обладают незначительной масштабируемостью и жесткими ограничениями некоторых важных компонентов (например, памяти, которую нельзя поменять с помощью конфигурации). И, что более важно, они потребляют глобальные ресурсы (например, файлы отображения памяти, глобальные надстройки и шаблоны, а также общие серверы автоматизации), что ограничивает количество экземпляров, которые могут быть запущены одновременно, и, при настройке в среде с несколькими клиентами, приводит к конкуренции. Если планируется одновременный запуск нескольких экземпляров приложения Office, для предотвращения зависания программы и повреждения данных необходимо рассмотреть возможность объединения в пул или последовательного удовлетворения запросов на доступ к данному приложению.
  4. Устойчивость и стабильность. Office 2000, Office XP и Office 2003 для упрощения процесса установки и самовосстановления используют установщик Windows (MSI). Установщик делает возможной «установку при первом использовании», когда компоненты динамически устанавливаются или настраиваются в процессе выполнения программы (может использоваться как для отдельного пользователя, так и для системы в целом). В серверном окружении это с одной стороны снижает производительность, а с другой — увеличивает вероятность того, что появится диалоговое окно с требованием одобрить установку или вставить необходимый диск. Таким образом, повышая устойчивость пакета Office как продукта для конечного пользователя, функции установщика Windows имеют обратный эффект в серверном окружении. Помимо всего прочего, стабильность Office при запуске с сервера не может быть гарантирована в принципе, потому что пакет не был создан и протестирован для такого рода использования. Использование Office в качестве компонента службы на сетевом сервере может снизить стабильность этой машины и, как следствие, сети в целом. При выполнении серверной автоматизации Office старайтесь ограничить использование программы рамками одного компьютера, который не выполняет критических функций и, в случае необходимости, может быть перезагружен.
  5. Серверная безопасность. Приложения Office никогда не предназначались для серверного использования, и по этой причине в них не учтены проблемы безопасности, характерные для распределенных компонентов. Office не осуществляет проверку входящих запросов и не обеспечивает защиты от непреднамеренного запуска макроса или другого сервера, который, в свою очередь, может запустить макрос. Не открывайте файлы, загруженные на сервер с анонимного веб-узла! На основании последних выполненных настроек сервер может запустить макрос в контексте администратора или системы (а значит, со всеми полномочиями) и повредить сеть! Кроме того, Office использует многие клиентские компоненты (например, Simple MAPI, WinInet, MSDAIPP), которые для ускорения обработки данных кэшируют сведения о прохождении клиентами проверки. В случае серверной автоматизации Office один экземпляр программы может обслуживать несколько клиентов, сведения о прохождении проверки для определенного сеанса кэшируются, а следовательно, один клиент может воспользоваться кэшированными учетными данными другого и получить несанкционированный доступ, выдав себя за другого пользователя.
Помимо технической стороны, необходимо учитывать возможность воплощения такого дизайна с точки зрения лицензирования. Применяемые в данный момент времени условия лицензирования предусматривают использование приложений Office на сервере для обслуживания клиентов только в том случае, если клиенты также обладают лицензированными копиями Office. Применение серверной автоматизации для предоставления нелицензированным рабочим станциям доступа к приложениям Office не предусмотрено лицензионным соглашением.

В дополнение к описанным выше проблемам, при попытке выполнения серверной автоматизации без изменения настроек установленных программ из пакета Office, возможно появление следующих сообщений об ошибках.
  • CreateObject/CoCreateInstance возвращает в процессе выполнения одно из следующих сообщений об ошибке и не запускается для автоматизации.

    В Microsoft Visual Basic (VB) и ASP
    • Сообщение 1
      Ошибка выполнения '429': Компоненту ActiveX не удается создать объект
    • Сообщение 2
      Ошибка выполнения '70': Отказ в разрешении
    В Мicrosoft Visual C и Visual C++
    • Сообщение 1
      CO_E_SERVER_EXEC_FAILURE (0x80080005): Ошибка при выполнении приложения-сервера
    • Сообщение 2
      E_ACCESSDENIED (0x80070005): Отказано в доступе
    Появление этих ошибок вызвано тем, что серверная программа запускается без профиля пользователя или учетные данные пользователя, указанные для запускающего окружения, не обладают необходимыми разрешениями DCOM.
  • Попытка открыть документ Office приводит к появлению одного из следующих сообщений об ошибке.
    • Сообщение 1
      Ошибка выполнения '5981' (0x800A175D): Не удается открыть банк макросов
    • Сообщение 2
      Ошибка выполнения '1004': Метод '~' объекта '~' завершен неверно
    Как правило, появление таких сообщений свидетельствует о неудачной попытке инициализировать VBA из-за отсутствия достаточных разрешений или регистрации компонентов VBA. Это характерно для ситуаций, когда пользователь запускает программу с помощью учетной записи, у которой нет профиля пользователя (первая проблема), или маркер пользователя не содержит интерактивного кода SID (вторая проблема).

  • CreateObject/CoCreateInstance зависает, не завершается или отвечает слишком долго. На некоторых серверах создание происходит быстро, но в журнале событий Windows (NT) появляется запись об ошибке 1004.

    Проблему часто вызывает диалоговое окно, которое является модальным для неинтерактивного рабочего стола, где запущен серверный программный код (вторая проблема). В случае незавершенной установки компонента (недостающая запись в системном реестре или поврежден образ файла), в диалоговом окне появляется требование вставить установочный компакт-диск для проведения повторной установки компонентов (четвертая проблема).
  • Некоторые функции не работают или зависают на неопределенное время.

    На неинтерактивном рабочем столе (вторая проблема) могут быть недоступны или перейти в неопределенное состояние принтеры, подключенные сетевые диски, внедренные объекты OLE и буфер обмена. Аналогично при отсутствии профиля пользователя (первая проблема) недоступны сетевые ресурсы и предоставляются только минимальные разрешения.
  • Одновременное появление нескольких запросов или проведение тестирования в предельных режимах может привести к сбою (зависанию) программы или аварийному завершению при открытии или закрытии приложения Office. После этого в памяти остается процесс, который не может быть завершен, либо впредь все экземпляры автоматизированного приложения не функционируют.

    Поскольку приложения Office используют глобальные ресурсы (третья проблема), запросы на доступ к выполнению над приложениями определенных действий (запуск, закрытие, печать, экспорт, обновление связей OLE, включая все уведомления DDE) должны удовлетворяться последовательно.
Помимо перечисленных выше, возможно возникновение других проблем и появление других сообщений об ошибках, но, как правило, в их основе находятся пять описанных выше причин общего характера. Для предотвращения возникновения ошибок такого рода разработчики должны сконфигурировать рабочую среду Office таким образом, чтобы сымитировать рабочую среду клиентского состояния, либо же удалить приложение Office из серверного кода, а вместо этого использовать компоненты, в большей степени подлежащие масштабированию (либо клиентскую автоматизацию).

Альтернативы использованию серверной автоматизации

Корпорация Майкрософт настоятельно рекомендует разработчикам при разработке серверных решений искать альтернативы автоматизации Office. Особенности дизайна Office таковы, что для решения всех проблем недостаточно изменить только конфигурацию пакета. Корпорация Microsoft предлагает ряд альтернативных решений, которые не требуют установки пакета Office на сервере и способны выполнять типичные задачи быстрее и эффективнее, чем разработки на основе автоматизации. Перед включением в проект программ Office в качестве серверного компонента необходимо рассмотреть все доступные альтернативные варианты.

Большинство задач, с которыми имеет дело серверная автоматизация, включают создание документа. Поскольку в Office 2000 и более поздних версий встроена поддержка формата HTML в качестве родного, он может быть использован для создания большинства документов (в случае необходимости с разметкой на языке Extensible Markup Language (XML)) и отправлен клиенту с помощью Multipurpose Internet Mail Extensions (MIME), после чего результирующий текст отображается в Office. Для редактирования, сохранения и возвращения документа на сервер необходим только ASP на сервере. С более ранними версиями Office, для достижения подобного результата, можно использовать любой другой, легко поддающийся модификации текстовый формат (например, RTF).

Намного лучшей скорости и масштабируемости при редактировании некоторых встроенных двоичных форматов можно достичь средствами Web-компонентов Office (OWC) или объектов данных ActiveX (ADO). Просмотр и изменение свойств документов возможны без применения автоматизации, а для управления файлами и версиями используются серверные расширения FrontPage (FPSE) или Distributed Authoring and Versioning (DAV). Когда автоматизация необходима, улучшения стабильности и масштабируемости системы можно достичь путем загрузки большинства задач клиенту, который запускает их в своем контексте с личными настройками.

Дополнительные сведения по этим рекомендациям и примеры их реализации можно найти в следующих статьях Microsoft Knowledge Base:
270906 Использование возможностей ASP для генерирования документа в формате RTF и открытия его в Microsoft Word (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
198703 Автоматизация Excel из VBScript на компьютере клиента (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
199841 Вывод результатов ASP с помощью Excel в Internet Explorer с типами MIME (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
224351 Использование библиотеки dsofile.dll для изменения свойств документа Office без установки Office, из Visual Basic .NET 2003 и Visual Basic .NET 2002 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
244049 Динамическое серверное генерирование диаграмм (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
258187 Приложение OWebComp.exe содержит образцы сценариев для веб-компонентов Office 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
260239 Форматирование содержимого ячеек при создании файла Excel с помощью страницы ASP (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
278973 Пример использования технологии ADO для чтения и записи данных в книге Excel (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
286023 Использование компонента Visual Basic ActiveX для автоматизации Word из Internet Explorer (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
288130 Как использовать технологию ASP для построения электронной таблицы в формате XML на экране клиентского компьютера
317316 Ограничения серверного использования веб-компонентов Office 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
При необходимости создания на сервере двоичных файлов Office можно воспользоваться компонентами независимых разработчиков. Ниже приведен список некоторых известных разработчиков, которые предлагают подобные услуги. Этот список приводится исключительно в ознакомительных целях. и не является полным. Другие разработчики могут предоставлять подобные услуги, которые более подходят для ваших целей. Рекомендуется рассмотреть все возможные предложения независимых разработчиков и выбрать оптимальные решения для конкретных деловых потребностей. Далее указаны разработчики, предлагающие ряд решений по созданию и редактированию собственных форматов файлов Office программным способом. Дополнительные сведения о независимых разработчиках см. на следующих веб-узлах:

Aia Software B.V.
http://www.aia-itp.com
Polar
http://www.polarsoftware.com
SoftArtisans
http://www.softartisans.com
SyncFusion
http://www.syncfusion.com
Примечание. В этой статье упомянуты программные продукты сторонних производителей. Корпорация Майкрософт не дает никаких гарантий и обязательств относительно корректной работы или надежности этих продуктов.

Настройка Office для запуска с сервера

Если другие варианты решения невозможны и вы решили выполнить серверную автоматизацию Office, вам необходимо для успешной работы программ изучить изложенные выше вопросы. Поскольку возникновение большинства проблем зависит от имеющейся конфигурации, невозможно составить единый набор действий, выполнение которых гарантировало бы правильное функционирование серверной автоматизации на всех системах. Некоторые параметры настройки конфликтуют между собой, поэтому у любого подхода имеются свои сильные и слабые стороны. Оптимальная конфигурация для конкретной среды может быть определена путем проведения экспериментов.

Для серверной автоматизации Office необходимо выполнить следующие задачи:
  • Изоляция и инкапсуляция Office в рамках проекта.
  • Предвосхищение возникающих проблем и их оперативное устранение.
  • Назначение специальных учетных данных и профиля пользователя для применения программами Office.
В процессе реализации проекта необходимо учитывать проблемы серверной безопасности и ограниченных возможностей повторного входа Office. Ограничивайте использование Office экземпляром, который контролируется объектом сериализации (мьютекс или специально определенный блокирующий примитив), или объединяйте в пул жестко контролируемый набор экземпляров с помощью специального обработчика объектов, который в случае необходимости создает объекты приложений и одновременно управляет требующими сериализации аспектами. Одновременное выполнение несколькими клиентами определенных действий (запуск и закрытие программы, печать и т. д.) может вызвать возникновение конфликта и привести к остановке одного или нескольких вызывающих потоков (появляется сообщение об ошибке, запрос на ввод дополнительных данных или не освобождается глобальный ресурс, который используется всеми экземплярами).

Следовательно, в первую очередь необходимо ограничить использование автоматизации Office в составе серверного проекта и разместить процесс на компьютере, который в случае необходимости может быть перезагружен. Кроме того, изолируйте вызывающий контекст, чтобы зависший вызывающий клиент не снижал производительность важных системных служб. Например, не стоит выполнять автоматизацию непосредственно из информационного сервера Интернета (IIS) с помощью системного потока. Программный код должен выполняться в изолированном потоке, чтобы, в случае возникновения сбоя, не страдали функциональные возможности сервера IIS в целом. Значительное внимание должно быть уделено вопросам безопасности и проверки подлинности. Поскольку Office не поддерживает серверной безопасности, в разрабатываемой программе должна быть обеспечена возможность для «доверенных» программных модулей (страницы ASP, файлы сценариев и т. д.) создавать автоматизированный экземпляр приложения Office и вызывать его методы, а также проводиться проверка документов Office перед их открытием. Приложения Office на сервере должны всегда выполняться с высоким уровнем безопасности. Не уделяя надлежащего внимания вопросам безопасности, вы подвергаете сервер риску!

После определения дизайна проекта, при разработке программного кода необходимо учитывать возможные проблемы и предусматривать обработку ошибок по мере их возникновения. Убедитесь, что программный код подставляет необходимые значения параметров (отсутствие или конфликт значений параметров приводит к появлению запроса пользователю на ввод дополнительных данных). Для корректной обработки сбойных ситуаций во всех функциях применяйте перехват ошибок и ведите журнал этих ошибок (в системном реестре или INI-файле должна быть предусмотрена возможность включения и выключения ведения журнала). Если определенное действие может вызвать появление диалогового окна с сообщением об ошибке независимо от Office (например, драйвер принтера в процессе печати выдает сообщение об ошибке, когда заканчивается бумага), необходимо, для обработки возможных зависаний, предусмотреть контроль процесса с помощью тайм-аута или второго потока. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
259971 Устранение средствами Visual Basic диалогового окна, отображенного приложением Office (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Программный модуль, отвечающий за ведение журнала, используется для отслеживания проблем и отладки программ. При применении пользовательского пула объектов для контроля использования и регистрации проблем, которые оказывают влияние на всех клиентов, можно добавить тесты производительности и масштабируемости. Кроме того, центральный контроллер, в целях повышения общей стабильности системы, позволяет в случае необходимости завершать и воссоздавать ошибочные экземпляры Office.

Когда программа готова к установке, убедитесь, что Office на сервере настроен на использование соответствующего пользовательского контекста. Поскольку для работы Office необходим профиль пользователя, убедитесь, что он загружается при запуске программы. Для этого в серверном окружении существует три способа.
  • Настройте все автоматически запускаемые экземпляры приложения Office на работу в качестве интерактивного пользователя.
  • Настройте все автоматически запускаемые экземпляры приложения Office на работу в качестве конкретного пользователя.
  • Настройте программный код на запуск в качестве конкретного пользователя с помощью пакета MTS/COM+ таким образом, чтобы приложение Office наследовало учетные данные пользователя, который его запускает.
Использование первого метода предоставляет Office учетные данные и возможность взаимодействия с конкретным рабочим столом, а также удобно при отладке программы (локально вошедший в систему пользователь видит диалоговые окна и сообщения об общих ошибках защиты). Поскольку интерактивный пользователь должен обязательно оставаться в системе, этот метод может быть использован не во всех ситуациях. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
288366 Настройка приложений Office для запуска из учетной записи текущего пользователя (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Второй метод предполагает назначение конкретного пользователя, но не наличие взаимодействия. Приложение Office запускается в качестве назначенного пользователя на новом компьютере без отображения на экране монитора. Так как COM/DCOM по умолчанию не загружает куст реестра соответствующего пользователя, необходимо внести дополнительные изменения в конфигурацию. Эти изменения оказывают воздействие на всю систему и могут конфликтовать с другими программами. Для получения дополнительных сведений об этом способе настройки Office обратитесь к следующей статье Microsoft Knowledge Base:
288367 Настройка приложений Office для запуска из учетной записи конкретного пользователя (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Использование третьего способа позволяет назначить учетные данные определенному веб-узлу или программному модулю и, таким образом, избежать глобального назначения учетных данных для Office. Office корректно запускается с этими учетными данными в том случае, если предварительно они были настроены на этом компьютере и был загружен куст реестра. Этот способ обеспечивает максимальную гибкость и безопасность, однако подобно предыдущему не предусматривает наличия взаимодействия с видимым рабочим столом и требует выполнения дополнительных настроек. Для получения дополнительных сведений об этом способе настройки Office обратитесь к следующей статье Microsoft Knowledge Base:
288368 Настройка приложений Office для автоматизации из пакета COM+/MTS (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Выберите наиболее подходящий из предложенных методов и продумайте разворачивание созданной программы. Приведенные в данной статье рекомендации не гарантируют решения всех возникающих проблем. Тщательно протестируйте программу перед ее разворачиванием.

Ссылки

За дополнительными сведениями о серверной автоматизации обратитесь к следующим статьям Microsoft Knowledge Base:
169321 Активация серверов COM и рабочих станций под управлением NT (Эта ссылка может указывать на содержимое полностью или частично на английском языке)

Свойства

Код статьи: 257757 - Последний отзыв: 16 июля 2013 г. - Revision: 11.7
Информация в данной статье относится к следующим продуктам.
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Office Project Standard 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Project 2002 Standard Edition
  • Microsoft Project 2000 Standard Edition
  • Microsoft Project 98 Standard Edition
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
  • Microsoft MapPoint 2006 Standard Edition
  • Microsoft MapPoint 2004 Standard Edition
  • Microsoft MapPoint 2002 Standard Edition
  • Microsoft MapPoint 2001 Standard Edition
  • Microsoft MapPoint 2000 Standard Edition
  • Microsoft Office OneNote 2003
Ключевые слова: 
kbqfe kbautomation kbprogramming kbservice KB257757

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com