Служба Windows устанавливает приложение через msiexec. Приложение установлено, но его нет в списке «Удалить программу». Зачем? - PullRequest
0 голосов
/ 12 марта 2019

Служба Windows работает под учетной записью LocalSystem.Служба вызывает msiexec со следующими аргументами:

string commandLineArguments = "/package C:\\install.msi /quiet /norestart ";
start.Arguments = (commandLineArguments);

msiexec возвращает Success и перемещает файлы в «C: \ Program Files», но приложение не отображается в списке «удалить программу», поэтому, когда я запускаю установщик вручную, нет возможности восстановить или удалить, кроме как снова установить программное обеспечение.Почему?

Я понимаю, что это возможно потому, что служба работает в контексте системы, а не в контексте пользователя.Как я могу дать MSI команду выполнить установку для текущего пользователя?

Как удалить программное обеспечение, установленное службой?

1 Ответ

0 голосов
/ 16 марта 2019

Когда служба Windows, которая работает как локальная система, устанавливает программное обеспечение, оно устанавливается в контексте системы, как указано в комментарии montonero. Если для устанавливаемого MSI-файла для свойства InstallScope установлено значение perUser или для него вообще не установлено свойство InstallScope (тогда по умолчанию используется perUser), установленное программное обеспечение не будет отображаться в списке удаления (спасибо Damien_The_Unbeliever).

Я проверил это, предоставив сервису два файла MSI. Один с установленным InstallScope для perUser, а другой для perMachine. В списке удаления может быть видна только установка perMachine.

Передача свойств ALLUSERS и MSIINSTALLPERUSER в MSIEXEC не переопределяет свойства, установленные в файлах MSI.

...