У меня есть устаревшее Windows-приложение, которое работает как служба на сервере 2016, но не работает на сервере 2022, и я не уверен, почему [закрыто]

Вопрос или проблема

Есть одно устаревшее приложение, которое я поддерживаю. Все, что делает это приложение, это запускает приложение на определенной пользовательской сессии. Это приложение также настроено как служба Windows (да, я понимаю, что это плохо, но это не мое приложение и, к сожалению, все приложения являются графическими интерфейсами) чтобы оно запускало приложения и вновь их запускало, если они не работают.

Тем не менее, моя компания начинает процесс обновления ОС с серверов 2016 на 2022. Хотя я могу установить это приложение как службу на сервере Windows 2022, приложение не работает и ни одно из графических приложений не запускается. Единственные сообщения об ошибках в журналах — это ошибка 183 (ERROR_ALREADY_EXISTS) при попытке выполнить CreateProcessAsUser. Однако, учитывая, что исходный код приложения никогда не изменялся и работает без проблем на 2016 под тем же пользователем, это не должно быть виноватостью приложения. Также на обоих серверах служба настроена на использование системной учетной записи и разрешена для взаимодействия с рабочим столом.

Единственная проблема, которую я могу представить, это либо с учетной записью доменного пользователя, либо с системной учетной записью (это немного натянуто, по моему мнению), или если есть какие-то изменения на Windows Server 2022, о которых я не знаю. В любом случае, я не уверен, что могу сделать для отладки этого.

Ответ или решение

К сожалению, проблема с запуском устаревшего приложения на Windows Server 2022 может быть связана с рядом факторов. Вот несколько шагов, которые могут помочь вам решить проблему:

  1. Изменения в Windows Server 2022: Существует множество изменений в Windows Server 2022, которые могут повлиять на работу приложений, работающих как службы. Одним из важных изменений является изменение управления доступом и разрешениями для служб. Необходимо проверить, разрешены ли вашему приложению необходимые разрешения.

  2. Пользовательские учетные записи и разрешения: Убедитесь, что служба действительно запущена от системной учетной записи или настройте её на использование учетной записи, у которой достаточно прав для запуска GUI-приложений. Убедитесь, что данная учетная запись имеет права на доступ к пользовательскому сеансу, в который требуется запускать приложение.

  3. Интерактивное взаимодействие с рабочим столом: В Windows Server 2022 функции взаимодействия с рабочим столом для служб ограничены. Ваша служба не сможет запускать GUI-приложения в сессии пользователя без дополнительных настроек. Проверьте, что для вашей службы установлена галочка "Разрешить взаимодействие с рабочим столом" и попробуйте использовать альтернативные методы запуска приложений.

  4. Использование CreateProcessAsUser: Ошибка 183 (ERROR_ALREADY_EXISTS) может указывать на то, что процесс или поток с тем же именем уже запущен, или на проблему с созданием нового процесса в пользовательском сеансе. Проверьте, находитесь ли вы в правильной сессии (уникальном идентификаторе сеанса) и правильно ли передаются необходимые параметры для создания процесса.

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

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

  7. Обратитесь к документации Microsoft: Рекомендуется обратиться к официальной документации Microsoft для проверки изменений и отключений функций, касающихся работы с Windows-сервисами между версиями 2016 и 2022.

Если ни один из шагов не решил проблему, возможно, стоит рассмотреть возможность работы с разработчиком приложения для обновления его под новые требования Windows Server 2022 или пересмотра архитектуры решения.

Оцените материал
Добавить комментарий

Капча загружается...