Что-то ускользает от меня, когда я пытаюсь использовать 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 ...»), где она будет запрашивать пароль и вносить изменения в реестр. Но я даже не могу заставить команду работать из командной строки. Может быть, кто-то может предложить правильный способ сделать это?
Вы открыли командную строку «как администратор»?
Ƭᴇ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.
Минусы:
Он всегда будет запрашивать у вас логин (нет способа сохранить учетные данные, как это можно сделать с помощью runas). - это может быть профи.
Если UAC включен, появится запрос UAC - это неизбежно при повышении с помощью UAC.
Он открывает (и закрывает) 2 окна PowerShell при обработке учетных данных и прав
Кавычки в команде проблематичны (или, по крайней мере, усложняются БЫСТРО). Вы захотите поместить любую команду, которой нужны кавычки, в командный файл и запустить командный файл в качестве команды.
Если вы хотите запустить эту команду из командной строки PowerShell, ее можно сократить до следующего:
Красиво сделано; Вы можете добавить `-WindowsStyle Hidden` к внешнему вызову` Start-Process`, чтобы скрыть вспомогательное окно PowerShell. Кроме того: вам не нужно заключать команду, которую вы передаете `-command` в` & {...} `- см. [Здесь] (https://github.com/PowerShell/PowerShell-Docs/issues / 2750).
mklement0 6 лет назад
0
0
lmbs
Вы можете запустить командную строку от имени администратора, щелкнув правой кнопкой мыши значок командной строки или cmd.exe и выбрав запускать ее от имени администратора. Таким образом, вы будете в командной строке с повышенными правами и не должны иметь проблемы, которую вы описали. Также вам не придется использовать runas при наборе команд.
Я не хочу никаких ручных действий, кроме ввода пароля. Смотрите мои правки относительно того, почему.
dargaud 7 лет назад
0