Установщик Windows, использующий NT AUTHORITY \ SYSTEM вместо логина - PullRequest
0 голосов
/ 13 июня 2018

У меня есть установщик Windows, который создает базу данных как часть процесса установки.При установке приложения CREATE DATABASE процесс завершается ошибкой, поскольку установщик Windows использует неправильного пользователя.Он использует NT AUTHORITY\SYSTEM вместо имени пользователя для входа.NT AUTHORITY\SYSTEM пользователь не имеет разрешения на создание базы данных.

Есть ли способ заставить установщика использовать имя пользователя для входа в систему?

Использование среды Windows 10 с проектами установщика VS 2017 и MS Visual Studio 2017.

1 Ответ

0 голосов
/ 14 июня 2018

Короткий ответ: вы не можете сделать это в настройке Visual Studio, которая является установкой InstallAllUsers, потому что все установщик VS генерирует настраиваемые действия, выполняемые от имени системной учетной записи.Поэтому вам нужно изменить настройки пользовательских действий в файле MSI с помощью инструмента редактирования, такого как Orca.Вы найдете пользовательское действие в таблице CustomAction в файле MSI, посмотрите значения типа (это, вероятно, тип 3074), а затем отключите бит msidbCustomActionTypeNoImpersonate, чтобы он выполнялся под именем пользователя-установщика.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368069(v=vs.85).aspx

Обратите внимание, что запуск под именем пользователя-установщика имеет свой собственный набор проблем, поскольку он НЕ совпадает с выполнением интерактивного пользователя.Профиль пользователя не загружен, поэтому объекты, связанные с пользователем (такие как HKCU, папки профиля пользователя), очень ненадежны.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...