1

Я заметил, что при использовании pip для глобальной установки пакетов произошла ошибка установки с ошибкой недостаточного разрешения. При запуске pip с правами администратора проблема была исправлена, и pip смог записать в мою папку Program Files . То же самое происходит при редактировании текстовых файлов в Program Files - это работает, только если я запускаю текстовый редактор от имени администратора.

Тем не менее, насколько я знаю, я никогда не запускал программы установки с правами администратора, но все они записывали в мой каталог Program Files без каких-либо подсказок. Что позволяет этим установщикам обойти проверку безопасности?

(У меня действительно отключено UAC, но если это причина, то почему pip и другие обычные программы, такие как текстовые редакторы, не могут писать в каталог Program Files ?)

1 ответ1

2

Когда ползунок UAC полностью опущен, программы, запрашивающие повышение, будут автоматически утверждены. Это отличается от того, что все программы постоянно обновляются (что эффективно, если вы полностью отключите UAC, что приведет к поломке).

Программы могут указывать поведение возвышения в своем манифесте. Большинство программ запускаются как asInvoker на том же уровне, что и вызывающий процесс. Некоторые, такие как редактор реестра и MMC, просят запустить их с highestAvailable разрешениями, поэтому при включенном UAC администраторы получат запрос на повышение прав, а обычные пользователи - нет. Другие, как и большинство программ установки, абсолютно бесполезны без повышения прав и, следовательно, requireAdministrator . Вот почему программы установки автоматически повышаются для вас. Очевидно, pip не проявляется как требующий повышения. «У тебя нет, потому что ты не спрашиваешь».

Демонстрация бонуса: один из способов запустить программу с повышенными правами из командной строки - это Start-Process PowerShell с помощью -Verb runas , например:

Start-Process cmd -Verb runas

При включенном UAC, запуск, который даст вам запрос на повышение прав для командной строки. Когда UAC понижен до минимума, разрешенного пользовательским интерфейсом, вы получите командную строку с повышенными привилегиями без диалогов UAC. (Вы можете увидеть разницу в строке заголовка командного окна.) Если бы -Verb runas были отключены, вы бы получили обычную командную строку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .