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

У меня есть удаленная коробка Windows Embedded (в основном копия WinXPSP3 с ограниченной функциональностью), на которой у меня есть служба Windows, единственная цель которой в жизни - убедиться, что копия конкретного приложения запущена. Если нет, то для запуска копии используется вызов.NET Process.Start() в коде.

У нас есть этот сервис и программа, работающая на почти 1300 блоках, почти как эта без проблем. Однако в этом конкретном окне, когда служба (запущенная как "локальная система") пытается запустить программное обеспечение, появляется предупреждение системы безопасности и программное обеспечение не запускается. Служба затем повторяет команду (потому что программное обеспечение не запустилось), и конечным результатом является блок из 100 диалоговых окон с предупреждениями о безопасности и без работающего программного обеспечения. Очевидно, что это проблема, так как мы не можем присматривать за этой коробкой (или любой другой на самом деле), и программное обеспечение имеет решающее значение для наших деловых операций, которые включают здоровье и безопасность жизни.

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

Предположим, что никакие изменения в службе или программном обеспечении невозможны, но я могу сделать что-либо для самой среды Windows, например, изменить учетную запись пользователя, на котором запущена служба, изменить параметры Интернета, групповую политику и т. Д. Также предположим, что файлы.exe указаны в списке как "безопасные" файлы с низким уровнем риска в GP, параметры безопасности интрасети не будут запрашиваться при запуске приложения и отсутствие доверенных сайтов / доменов. По сути, я перепробовал все, что говорит поиск Google, чтобы отключить предупреждения безопасности для всех приложений, и проблема сохраняется.

2 ответа

Dim infoStart As New System.Diagnostics.ProcessStartInfo
Dim strFile As String = "SomeFileName.exe"
infoStart.FileName = strFile
infoStart.UseShellExecute = False '<---- this is what you want
Process.Start(infoStart)

Добавьте сертификат, с которым приложение было подписано, в список "доверенных издателей" компьютера. Вам нужно будет сделать это через GP или вручную, открыв его через mmc. Возможно, вы добавили сертификат в хранилище сертификатов пользователя, и поэтому он не является доверенным, когда вы запускаете его как систему. Посмотрите, работает ли он после того, как вы добавите его в компьютерный магазин.

введите описание здесь

Другие вопросы по тегам