Як запустити таку команду у вікнах:
$ sudo django-admin.py startproject NEW
?
Як запустити таку команду у вікнах:
$ sudo django-admin.py startproject NEW
?
Відповіді:
У sudo
Windows немає команди. Найближчим еквівалентом є "запуск від імені адміністратора".
Ви можете зробити це, скориставшись runas
командою на рівні довіри адміністратора, або клацнувши програму правою кнопкою миші в інтерфейсі та вибравши "запустити від імені адміністратора".
gsudo
( stackoverflow.com/a/58753166/97471 ). Це Sudo для Windows з *nix sudo
користувацьким досвідом: Дозволяє виконувати команду в поточній консолі та кеш облікових даних (лише одне спливаюче вікно UAC).
Відкрийте блокнот і вставте цей код:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Потім збережіть файл як sudo.cmd
. Скопіюйте цей файл і вставте його C:\Windows\System32
або додайте шлях sudo.cmd
до вашої змінної середовища PATH.
Коли ви відкриваєте командний рядок, ви можете запустити щось на зразок sudo start .
.
Якщо ви хочете, щоб під час запуску команди вікно командного рядка адміністратора залишалося відкритим, змініть код у блокноті на такий:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Пояснення:
powershell -Command
запускає команду PowerShell.
Start-Process
- це команда PowerShell, яка запускає процес, у цьому випадку - командний рядок.
-Verb RunAs
запускає команду як адміністратор.
-Argument-List
запускає команду з аргументами.
Наші аргументи такі '/c cd /d %CD% && %*'
. %*
означає всі аргументи, тому, якщо ви це зробили sudo foo bar
, він буде виконуватися в командному рядку, foo bar
оскільки параметри foo і bar, і %*
повертається foo bar
. cd /d %CD%
це команда для переходу до поточного каталогу. Це забезпечить, що коли ви відкриваєте підняте вікно, каталог буде таким самим, як і звичайне вікно. що &&
означає , що якщо перша команда успішно, запустити другу команду.
Параметр /c
cmd є для закриття вікна після завершення команди, а /k
параметр cmd - для збереження вікна відкритим.
Кредит Адам Plocher для перебування в поточному коді каталогу.
C:\Windows\System32
.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echo
рядки перший і третій, @
додавшись до лінії PowerShell?
Усі відповіді пояснюють, як підвищити свою команду на новому хості консолі.
Мене потішило те, що жоден з цих інструментів не поводиться так *nix sudo
, що дозволяє виконувати команду всередині поточної консолі.
Отже, я писав: gsudo
Вихідний код https://github.com/gerardog/gsudo
Через совок
scoop install gsudo
Або через Chocolatey
choco install gsudo
Встановлення вручну:
Я створив схожий wsudo
на відкритий код sudo
інструмент CLI для Windows для запуску програм або команд з підвищеним правом у контексті поточного каталогу . Він доступний у формі шоколадної упаковки .
Я багато використовую його для таких речей, як налаштування агентів збірки, адмін, наприклад sfc /scannow
, dism /online /cleanup-image /restorehealth
або просто для встановлення / оновлення локальних пакетів Chocolatey. Використовуйте на власний ризик.
choco install wsudo
Шоколадний повинен бути вже встановлений.
wsudo
є sudo
подібним до Linux інструментом для Windows, щоб викликати програму з підвищеними правами (як Адміністратор) з командного рядка оболонки, що не є адміністратором, і зберігати поточний каталог.
Ця реалізація не залежить від застарілого Windows Script Host ( CScript
). Натомість він використовує допоміжний сценарій PowerShell 5.1, який викликає "Start-Process -Wait -Verb runAs ..."
командлет. Швидше за все, у вашій системі вже встановлено PowerShell 5.x, інакше вам запропонують встановити його як залежність.
wsudo
запускає програму або вбудовану команду з підвищеними правами в поточному каталозі. Приклади:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
Щоб отримати докладнішу інформацію, відвідайте репро GitHub .
wasudo
що полегшив вам. Я сам переважно живу в інтегрованому консольному терміналі VSCode, тому просто вводжу wasudo
туди :) Наступним покращенням буде успадкування змін середовища .
runas
команда вимагає від користувачів набору пароля. Якщо ви не хочете вводити пароль і просто натисніть діалогове вікно UAC, використовуйте Start-Process -Verb runas
в PowerShell замість runas
команди.
Зазвичай ви цього не робите, оскільки ви б не запускали його під * nix незалежно. Виконуйте розробку в каталозі користувача та розгортайте згодом до системних каталогів.
у Windows ви можете використовувати команду runas. Для користувачів Linux існує кілька альтернатив sudo у Windows, ви можете перевірити це
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
Ви можете використовувати команду runas - http://technet.microsoft.com/en-us/library/bb490994.aspx або sudowin - http://sourceforge.net/projects/sudowin/
Є такий вид. Я створив Sudo для Windows ще в 2007 році? 08? Ось документ про безпеку, який я про це писав - https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . Впевнений, http://sudowin.sf.net теж все ще працює.
Наступний скрипт vbs дозволяє запускати задану команду з аргументами з піднесенням і імітує поведінку оригінальної команди unix sudo для обмеженого набору використаних випадків (він не кешує облікові дані та не дозволяє по-справжньому виконувати команди з різними обліковими даними). Я одягнув його C:\Windows\System32
.
Set objArgs = WScript.Arguments
exe = objArgs(0)
args = ""
IF objArgs.Count >= 2 Then
args = args & objArgs(1)
End If
For it = 2 to objArgs.Count - 1
args = args & " " & objArgs(it)
Next
Set objShell = CreateObject( "WScript.Shell")
windir=objShell.ExpandEnvironmentStrings("%WINDIR%")
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute exe, args, "", "runas", 1
set objShellApp = nothing
Приклад використання в командному рядку sudo net start service
Думаю, я спробував кроки нижче після проведення деяких досліджень і досяг успіху
1.Встановіть совок, використовуючи PowerShell 3 (iex (new-object net.webclient) .downloadstring (' https://get.scoop.sh ')) 2. виконайте scoop install --global sudo 3. переконайтеся, що шляхи (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) додано до змінної шляху навколишнього середовища.
У Windows немає команди sudo, а також немає необхідності вводити $. Для встановлення Angular CLI через командний рядок node.js у Windows я просто написав npm install -g @ angular / cli, а потім натиснув Enter. Це спрацювало нормально.
У Windows Powershell ви можете використовувати команду Start-Process з можливістю -Verb RunAs
запуску та підвищення рівня. Ось мій приклад функції sudo:
function sudo {
Start-Process @args -verb runas
}
Приклад: Відкрити файл хостів як адміністратор у блокноті
sudo notepad C:\Windows\System32\drivers\etc\hosts
Я радий вам допомогти.
Щоб зробити команду sudo, виконайте кроки: -
Сподіваюся, це допоможе вам
Щоб просто запустити команду в якості адміністратора в не піднятій Powershell, ви можете використовувати Start-Process
безпосередньо, зокрема, з правильними параметрами -Verb runas
.
Це набагато складніше sudo
, особливо тому, що ви не можете просто повторно використовувати попередню команду з додатковою опцією. Вам потрібно вказати аргументи для вашої команди окремо.
Ось приклад використання команди route для зміни шлюзу:
Це не вдається, оскільки ми не знаходимося в підвищеному PS:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Це працює після прийняття UAC:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
Або для команди, яка вимагає cmd.exe
:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas