Запустити як адміністратор з командного рядка в Windows 8


11

Я намагаюся запустити Блокнот як адміністратор, щоб я міг редагувати свій файл хостів з командного рядка.

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

ПОМИЛКА RUNAS: Не вдається запустити - notepad c: \ windows \ system32 \ drivers \ etc \ hosts 1327: обмеження облікового запису забороняють входити цьому користувачеві. Наприклад: пусті sswords pa заборонені, час входу обмежений, або було застосовано обмеження політики.

PS: Я знаю, якщо я даю дозвіл на свій обліковий запис користувача, я можу редагувати його, не працюючи адміністратором. Але я хотів би знати, як це зробити, не змінюючи дозволів на файл хостів.

Відповіді:


7

Гаразд, причина цього не працює - модель безпеки в 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 Примітка: це відноситься тільки до призначеного для користувача змінному оточенню «s. Змінні середовища, встановлені у батьківському процесі , не передаються UAC ! Це також стосується runas, і це ще гірше, тому що ви навіть не отримаєте правильну кількість користувачів.


З подвійними цитатами мені це не вийшло.
Вінс

@Ghodmode Чи можете ви навести приклад лінії, яку ви намагалися запустити? Якщо ви посилаєтесь на останній приклад, спробуйте перемістити першу цитату до -c. (тож -c "startзамість "-c start)
Боб

Зауважте, що процес повноважень не повинен запускатися підвищеним, щоб запустити програму як адміністратор.
jiggunjer

Дивно, що він працював до оновлення Windows 10 2019-03.
Qwerty

12

Швидше за все, ви ще не ввімкнули обліковий запис адміністратора.

Ось інструкції щодо ввімкнення облікового запису адміністратора .

Ви також знайдете більше інформації про руни на сайті Microsoft.


Мій користувач адміністратора перестав працювати після оновлення Windows 10 2019-03, ця команда виправила йогоnet user administrator /active:yes
Qwerty

-1

Одне, що можна спробувати, це відкрити командний рядок як адміністратор і запустити там блокнот. Просто введіть Notepad. Після цього ви можете натиснути файл, а потім відкрити та перейти до файлу хостів та відкрити його. Нарешті, ви можете просто зберегти як звичайний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.