Для обновления нашего программного обеспечения мы использовали программу обновления VB6 с уровнями обновлений и разными источниками обновлений. Он скопировал необходимые файлы из источников обновлений в локальное место назначения (C: \ program files \ company \ product).
Программы VB6 могут работать только с помощником службы (srvany или аналогичным) в качестве службы и не имеют достаточных прав для изменения или добавления новых файлов в заданную папку. Но даже программа .NET не имеет необходимых прав для этого, только если вы установите учетные данные администратора в службе.
Если клиент не установил службу с учетными данными администратора, то как мы можем использовать службу или программу, вызываемую службой, для изменения файлов в данной папке, означает, что у нее есть права администратора.
Использование MSI / MSP невозможно из-за данных уровней обновления (разные пользователи с разными версиями программ и отчетов).
Мы пытались вызвать внешнюю программу из службы C # .NET с повышением прав, но никак ... Мы проверили некоторые советы и уловки с файлами манифеста или думали создать COM-объект, который мог бы иметь права администратора, но я думаю, что это неправильный путь.
Другая возможность - создать запланированную задачу, предоставив «максимальную опору». Но так ли это работает? Если задача должна запускаться после входа в систему и разные пользователи могут использовать этот компьютер, вы должны определить задачу для каждого пользователя ... Мы не знаем каждого входа в систему на клиентском компьютере, потому что они меняются очень часто.
Может кто-нибудь помочь?