Общепринятой практикой является запрет пользователям устанавливать программы без повышенных привилегий, особенно в крупных компаниях. Когда пользователь запускает исполняемый файл установки (независимо от того, .exe
или .msi
), пользователю будет предложено ввести эти учетные данные администратора, прежде чем пользовательский контроль доступа разрешит установку. Множество программ, требующих установки, используют стандартную установку Windows Installer .msi
или что-то подобное, но исполняемый файл может выполнять все те же функции, не так ли?Как Windows знает, что я что-то устанавливаю?
Это обычное решение для установки, которое сообщает Windows: «Привет, я установщик. Что-то устанавливается».? Windows не анализирует фактическое поведение исполняемого файла, не так ли?
Ожидается, что в современных приложениях (в том числе сторонних установщиках) будет содержаться запись в манифесте, указывающая, требуется ли повышение. Для старых приложений Windows пытается угадать. Я не знаю, в какой степени анализируется ожидаемое поведение исполняемого файла, поскольку алгоритм никогда не был полностью документирован AFAIK. Однако мы знаем, что догадаться, прежде чем исполняемый файл начнет работать. –
Я не уверен, как это работает для файлов MSI. Установщик Windows может подниматься динамически, хотя (т. Е. Во время установки), поэтому, возможно, он просто ждет и только запрашивает возвышение, если его попросят сделать что-то, что ему требуется. –
@HarryJohnston Да, мне было интересно об этом. Похоже, что для установщиков '.exe' Windows запрашивает повышение до того, как что-либо произойдет, но большинство файлов' .msi' не запрашивают, пока он выполнит необходимый ему шаг. Я не верю, что для _all_ исполняемых файлов требуется возвышение в моей системе, однако, только несколько инсталляторов '.exe', которые мне пришлось использовать. –