Vista требует повышенных прав для установщиков, которые устанавливают драйверы или другие системные компоненты. У Pointsec есть один из этих установщиков с проблемой, заключающейся в том, что сам установщик не запрашивает повышение прав, поэтому повышение должно быть предоставлено ему заранее.
При установке этого программного обеспечения на несколько машин с отключением UAC, установка программного обеспечения и последующее включение UAC довольно утомительны. Было бы предпочтительнее способ, который позаботился бы об UAC.
Установщик представляет собой пакет MSI в сетевой папке. В общей папке также есть установочный профиль, который установщик должен найти и использовать при установке. Это нормально работает без UAC, но нам не удалось запустить это с UAC.
Моя основная проблема в том, что при повышении уровня процесса кажется, что он теряет свой рабочий каталог. Таким образом, хотя ярлык для msiexec с правильными параметрами и сетевым ресурсом в качестве рабочего каталога работает (т. Е. Запускается, но возникают ошибки из-за отсутствия повышения прав), запуск этого ярлыка «от имени администратора» жалуется на то, что не находит пакет msi. Монитор процессов показывает, что msiexec пытается найти пакет из Windows \ System32. Указание полного UNC-пути к пакету запускает программу установки, но не может найти файл профиля. Итак, как правильно поднять установщик Windows, который сам не запрашивает повышение?
По сути, у вас плохо спроектированный установщик.
Что вы можете попробовать, так это установить для свойства ALLUSERS в таблице свойств значение 1 (используя Orca, найдите Orca.msi в Пакет SDK для установщика Windows), что приведет к установке на уровне машины.
В этом случае установщик запросит повышение уровня в процессе установки (вот как должен работать UAC + MSI) и все должно быть в порядке.
Один из подходов - запустить командную строку с повышенными привилегиями, сменить там рабочий каталог, а затем запустить установщик оттуда. Все, что запущено из cmd.exe с повышенными правами, само получает повышенные права.
Сообщение Почему мой начальный каталог игнорируется при повышении уровня командной строки? в блоге Раймонда Чена может быть актуальным здесь.
Я также знаю, что некоторые эвристики высот очень упрощены, например если файл называется «установка» или «установка», он запросит повышение прав. В настоящий момент я не могу найти источник для этого.
Не слишком технический ответ, но, возможно, он будет полезен.