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

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

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

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

2 ответа2

0
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)
0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .