Запуск от администратора в командной строке Windows 8

Я пытаюсь запустить Notepad в качестве администратора, поэтому я могу редактировать файл моих хостов из командной строки.

Я попробовал runas /user:(myusername)\administrator "notepad c:\windows\system32\drivers\etc\hosts" Затем я вводил свой пароль, и я получаю

RUNAS ERROR: Невозможно запустить – блокнот c: \ windows \ system32 \ drivers \ etc \ hosts 1327: ограничения учетной записи не позволяют этому пользователю входить в систему. Например: пустые пароли не разрешены, время входа ограничено, Или ограничение политики было обеспечено.

PS: Я знаю, что если я дам разрешение на учетную запись пользователя, я могу отредактировать ее, не запуская ее как admin. Но я хотел бы знать, как это сделать, не изменяя разрешения на файл hosts.

Хорошо, причина , по которой это не работает, – это модель безопасности в Windows Vista и новее. Учетная запись в группе администраторов по-прежнему запускает все, что явно не указано как ограниченный пользователь. Исключением является учетная запись Administrator , которая запускает все повышенные значения. По этой причине в качестве учетной записи пользователя обычно считается плохой, и обычно отключается.

Вы можете включить его, а затем runas для вызова в качестве этой учетной записи. Это создает несколько проблем – теперь вы работаете со средой другого пользователя, который может иметь разные переменные среды. 1

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


Заимствуя из моего другого ответа , вы можете напрямую вызвать команду PowerShell с помощью powershell -c :

 powershell -c start -verb runas notepad C:\Windows\System32\drivers\etc\hosts 

Который в основном говорит PowerShell о запуске следующего ( start выполняется с псевдонимом Start-Process ):

 Start-Process -Verb "runas" notepad C:\Windows\System32\drivers\etc\hosts 

Трюк здесь проходит через глагол runas , вызывая UAC.

Ни Start-Process -Verb runas ни стандартные cmd- runas не передают текущий рабочий каталог , поэтому всегда используйте полный путь в любых командах, которые вы поднимаете таким образом.

Также обратите внимание, что некоторые аргументы, такие как -c могут столкнуться с аргументами Start-Process , поэтому самый безопасный способ:

 powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'" 

1 Примечание: это относится только к переменным среды пользователя. Переменные среды, заданные в родительском процессе , не передаются UAC ! Это также относится к runas , и это еще хуже, потому что вы даже не получите правильные пользовательские вары.

Скорее всего, вы еще не включили учетную запись администратора.

Ниже приведены инструкции по включению учетной записи администратора .

Вы также найдете дополнительную информацию о runas на сайте Microsoft.

  • Запустите диспетчер задач в качестве другого пользователя (администратора)
  • Запустить процесс как администратор из приложения, отличного от администратора
  • Как вы запрашиваете разрешения администратора, используя NSIS?
  • Запуск в качестве другого пользователя в ярлыке
  • Более одного «Открыть xxxxx здесь как администратор»
  • Включить пароль. Запустить как на Home Premium?
  • Как открыть проводник Windows в качестве другого пользователя в Windows 10?
  • Перетащите файл в приложение под управлением администратора
  • Автоматически запускать приложение в качестве другого пользователя
  • Запуск приложений как администратора по умолчанию в Windows 10
  • Как запустить программу с правами администратора
  • Давайте будем гением компьютера.