Как запускать скрипты от root`a в windows?
-
cmd запустить от имени администратора. – Moonvvell Jan 15 '16 at 13:20
-
Я запускаю скрипт на python`e через cmd от администратора для записи программу в автозагрузку через реестр, он пишет мне "Отказано в доступе" – Mike Jan 15 '16 at 13:24
-
1Вчера был подобный вопрос уже. Как раз о питоне и ветке HKEY_CURRENT_USER. http://ru.stackoverflow.com/questions/482768/%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%B2-%D1%80%D0%B5%D0%B5%D1%81%D1%82%D1%80 может поможет чем то ) – Moonvvell Jan 15 '16 at 13:29
4 Answers
runas /user:username "command.exe /parameters"
runas /user:mymachine\administrator cmd.exe - запустить интерпретатор команд cmd.exe от имени пользователя "administrator" компьютера "mymachine". При выполнении команды, будет запрошен пароль пользователя, от имени которого должна выполняться задача.
runas /noprofile /env /user:mydomain\admin " mmc %windir%\system32\diskmgmt.msc " - запустить консоль mmc с оснасткой "Управление дисками" от имени пользователя "admin" в домене "mydomain". Профиль пользователя не загружается, и используются текущие переменные среды. Загрузка профиля пользователя необходима только тогда, когда будет выполняться задача, которой требуются какие-либо данные из него. Если задан параметр /env то переменные окружения наследуются из среды текущего пользователя.
runas /savecred /user:admin@mydomain regedit.exe - запустить редактор реестра "regedit.exe" от имени пользователя "admin" домена "mydomain" с запоминанием введенного пароля. При наличии параметра /savecred, введенный пароль запоминается в реестре в зашифрованном виде и в дальнейшем запрашиваться не будет .
runas /showtrustlevel - отобразить уровни доверия, существующие в системе. В ответ будет отображаться перечень в виде:
В системе доступны следующие уровни доверия:
0x20000 (Обычный пользователь)
Кроме значения trustlevel равного 0x20000 можно пользоваться значениями 0x10000, соответствующему минимальному набору привилегий и 0x40000, стандартному для данного пользователя набору. Для просмотра отличий разных уровней доверия можно воспользоваться командой Whoami, выполняя ее в сеансе командного процессора, запускаемого с каждым из уровней trustlevel
runas /trustlevel:0x20000 cmd.exe - запустить командный процессор cmd.exe с использованием уровня доверия, полученного в предыдущем примере.
runas /trustlevel:0x40000 cmd.exe - запустить командный процессор cmd.exe с использованием стандартного уровня доверия.
Примечание: в сеансе командной строки, запущенной с использованием параметра /trustlevel, список привилегий соответствующий каждому уровню доверия можно получить с использованием команды whoami /priv, а полные сведения об учетной записи - whoami /ALL
Примечание: параметр /profile несовместим с параметром `/netonly.
Примечание: параметр /savecred несовместим с параметром /smartcard.
Вот вариант с передачей пароля:
echo пароль | runas /netonly /user:workgroup\user "command.exe"
- 19,872
- 1,136
- 10
- 22
Команды аналогичной "sudo" нет.
Для Winows Vista-10:
Можно запустить cmd от имени администратора или выбрать это в свойствах ярлыка.
Если cmd запущена с правами администратора, в заголовке окна появляется слово "Администратор"; команда whoami /groups показывает в последней строке SID S-1-16-12288 вместо S-1-16-8192; команды net session или dir C:\Windows\Temp работают (имеют доступ).
В этом случае cmd и скрипт имеют максимальные права администратора, но не имют неограниченного доступа. В свойствах папки / безопасность и также для ключей реестра можно запретить доступ также для администратора. Администратор имеет возможность изменить эти настройки, но до того они действуют. Но в редких случаях прав администратора действительно не хватает, это самозащита Windows.
Большинство программ также получают права администратора, если их запустить в cmd от администратора. Исключение - Windows Explorer имеет всегда ограниченные права. Проверить это можно в Диспетчере Задач / Подробности / скрытый столбец "С более высоким уровнем разрешений" или в ProcessExplorer / скрытый столбец "Process Image/Integrity Level"
runasподходит только для Windows XP/2003, но не меняет ничего в Windows Vista - 10 из-за UAC (User Account Control).
Смотрите также https://stackoverflow.com/questions/1894967/how-to-request-administrator-access-inside-a-batch-file
- 31
Можно создать "sudo.cmd" скрипт:
@ECHO off
set command=%~$PATH:1
set tmpfile="%temp%\tmp-sudo-%~nx1.vbs"
set params=
:loop
shift
if [%1]==[] goto afterloop
if [%1]==[%~1] (set params=%params% %1) else (set params=%params% "%1")
goto loop
:afterloop
set params=%params:~1%
echo Set objShell = CreateObject("Shell.Application")> %tmpfile%
echo objShell.ShellExecute "%command%", "%params%", "", "runas">> %tmpfile%
cscript //D //Nologo //T:30 %tmpfile%
del %tmpfile%
Использование: sudo command
sudo cmd.exe
sudo cmd.exe /K net session
sudo calc.exe
- 1
- 1