Runas, когда вы уже являетесь администратором

2254
dargaud

Что-то ускользает от меня, когда я пытаюсь использовать runas для повышения привилегий. Простая машина Win10 с одним пользователем, который уже имеет права администратора. Мне нужно написать в определенном ключе реестра с помощью сценария, но я получаю «доступ запрещен», когда я пытаюсь с помощью команды reg напрямую.

> reg ... ERROR: Access is denied. 

Если я попробую:

> runas /user:Administrator Command Enter the password for Administrator: 1326: The user name or password is incorrect. 

Он отказывается от моего пароля пользователя. Я не думаю, что есть конкретный пароль администратора на локальной машине, верно? Там нет другого аккаунта. Попытка:

> runas /user:MyUser Command Enter the password for MyUser: 740: The requested operation requires elevation 

Так как мне повысить привилегии из командной строки?!? Почему я не вижу, что у меня есть права администратора здесь:

>runas /showtrustlevels The following trust levels are available on your system: 0x20000 (Basic User) 

РЕДАКТИРОВАТЬ: Может быть, я должен быть более ясным о том, что я хочу сделать. Из программы на C я хочу внести изменения в WT_KEY_HKLM, «Software \ Microsoft \ Windows \ CurrentVersion \ Run». Я мог бы сделать это непосредственно в XP, но в более поздних версиях Windows это не имеет никакого эффекта. И действительно, запуск «reg» для этого ключа из командной строки дает доступ запрещен. Я не хочу запускать мою программу с повышенными привилегиями, поэтому моя идея заключалась в том, чтобы сделать что-то вроде системы («runas reg ...»), где она будет запрашивать пароль и вносить изменения в реестр. Но я даже не могу заставить команду работать из командной строки. Может быть, кто-то может предложить правильный способ сделать это?

1
Вы открыли командную строку «как администратор»? Ƭᴇcʜιᴇ007 7 лет назад 0
Какой смысл использовать руны тогда? dargaud 7 лет назад 0

3 ответа на вопрос

1
FoxMcloud5655

По умолчанию учетная запись администратора заблокирована, поэтому другие не могут злоупотреблять ею. Если вы попытались использовать пустой пароль для команды «runas / user: Administrator», вы увидите, что учетная запись заблокирована.

Если у вашего пользователя уже есть права администратора, вы должны иметь доступ к команде "reg". На моей машине я умею.

К сожалению, вы не можете использовать «runas» для доступа к команде с повышенными правами; Вы должны сделать это с помощью командной строки с повышенными правами. Это можно создать с помощью команды «runas» (которая в вашем случае не будет работать) или щелкнув правой кнопкой мыши «cmd.exe» и выбрав «Запуск от имени администратора».

Пользователь имеет права администратора, но доступ к ключам реестра _some_ запрещен (см. Мое редактирование). dargaud 7 лет назад 0
1
S Roddick

Замените [user] и [command] тем, что вы пытаетесь использовать, и попробуйте:

powershell.exe -ExecutionPolicy Bypass -command "& " 

Плюсы:

  • Он может быть использован в неровной командной строке, окнах запуска и ярлыках окон
  • Поднимает только команду. Повышение уровня выполняется как часть выполнения команды, не выполняющей окна PowerShell.

Минусы:

  • Он всегда будет запрашивать у вас логин (нет способа сохранить учетные данные, как это можно сделать с помощью runas). - это может быть профи.
  • Если UAC включен, появится запрос UAC - это неизбежно при повышении с помощью UAC.
  • Он открывает (и закрывает) 2 окна PowerShell при обработке учетных данных и прав
  • Кавычки в команде проблематичны (или, по крайней мере, усложняются БЫСТРО). Вы захотите поместить любую команду, которой нужны кавычки, в командный файл и запустить командный файл в качестве команды.

Если вы хотите запустить эту команду из командной строки PowerShell, ее можно сократить до следующего:

Start-Process powershell.exe -Credential '[user]' -ArgumentList 'Start-Process ""[command]"" -Verb runAs`' 

С.

Красиво сделано; Вы можете добавить `-WindowsStyle Hidden` к внешнему вызову` Start-Process`, чтобы скрыть вспомогательное окно PowerShell. Кроме того: вам не нужно заключать команду, которую вы передаете `-command` в` & {...} `- см. [Здесь] (https://github.com/PowerShell/PowerShell-Docs/issues / 2750). mklement0 5 лет назад 0
0
lmbs

Вы можете запустить командную строку от имени администратора, щелкнув правой кнопкой мыши значок командной строки или cmd.exe и выбрав запускать ее от имени администратора. Таким образом, вы будете в командной строке с повышенными правами и не должны иметь проблемы, которую вы описали. Также вам не придется использовать runas при наборе команд.

Я не хочу никаких ручных действий, кроме ввода пароля. Смотрите мои правки относительно того, почему. dargaud 7 лет назад 0