Запуск MSI-файлов от имени администратора из учетной записи пользователя

18

Я обычно вошел в систему как обычный пользователь на моем компьютере с Windows XP. Иногда, когда я хочу установить обновление программного обеспечения, я не хочу выходить из системы и снова входить в систему как администратор, но я щелкаю правой кнопкой мыши на exe программы установки и выбираю «Запуск от имени…», чтобы запустить его из своей учетной записи администратора. , Однако эта опция существует только для exe-файлов, а не для msi-файлов.

Есть ли способ заставить файлы MSI работать под другой учетной записью? Или это не рекомендуется по какой-то причине?

Тим Питцкер
источник
Просто запустите установку MSI-файла из командной строки с повышенными правами (щелкните правой кнопкой мыши cmd.exe и выберите «Запуск от имени администратора»). Установите с помощью командной строки что-то вроде этого: msiexec.exe /I "MyFile.msi" /QN /L*V "C:\msilog.log"(обновите пути соответствующим образом). Руны должны работать хорошо, я просто нахожу командную строку с повышенными правами проще.
Стейн Осмул

Ответы:

24

MSI-файлы могут быть выполнены с помощью msiexec.exe, поэтому в сочетании с командой runas вы можете выполнить то, что хотите:

runas /user:administrator "msiexec /i <path and filename of your msi>"

Поскольку рекомендуется указывать полный путь к файлу, может потребоваться заключить его в кавычки, после чего вам необходимо экранировать их обратной косой чертой \:

runas /user:administrator "msiexec /i \"<path and filename of your msi>\""
                                      ^^                               ^^
fretje
источник
связанные: serverfault.com/questions/19341/…
hyperslug
Ах, спасибо, не проверил ошибку сервера. @fretje: Спасибо, однако я сначала получил сообщение об ошибке, что msiexec не может открыть файл msi. Похоже, вам нужно указать полный путь к MSI-файлу. Текущий каталог, из которого запускается runas, не передается выполняемой команде, в данном случае msiexec (что имеет смысл).
Тим Пицкер
Похоже , что вы также должны быть в состоянии просто использовать msiexec /a package.msi- см на msiexecстраницу на TechNet (который говорит , что это для Server 2003, но , кажется , совпадает с содержанием соответствующей страницы в справочной системе XP).
SamB
@SamB: административная установка означает просто установку образа локального источника установки в сети, откуда другие затем смогут установить приложение на свой компьютер (вместо использования компакт-диска). Затем пользователь может выбрать запуск из источника при установке, и установщик использует большинство файлов продукта напрямую из сети. Так что это не то, что означает OP (запуск от имени администратора).
Fretje
@fretje: Ох ... это сбивает с толку!
SamB
6

Вы всегда можете открыть командную строку как администратор (либо щелкнуть правой кнопкой мыши runas, либо запустить-> run-> runas / user: administrator cmd), перейти в каталог, в котором находится MSI, и выполнить msiexec / i product.msi.

Или добавьте это в свой реестр: HKEY_CLASSES_ROOT \ Msi.Package \ shell \ runas \ command Значения: Установить & как ... HKEY_CLASSES_ROOT \ Msi.Package \ shell \ runas \ command Значение: msiexec / i "% 1"

Сэм
источник
0

Взгляните на runasиз командной строки. Вы можете запустить что-нибудь под указанной учетной записью.

Ричард
источник