Ответ 1
Смотрите здесь: https://superuser.com/questions/42537/is-there-any-sudo-command-for-windows
В соответствии с этим команда выглядит так для администратора:
runas /noprofile /user:Administrator cmd
Я использую "runas" для открытия командной строки как другого пользователя, но это командное приглашение не работает как администратор. Как я могу запустить его в качестве администратора?
UPDATE: я использую Windows Server 2012
UPDATE: я открыл cmd для другого аккаунта, запустив
runas /user:domain\username cmd.exe
Затем я попытался запустить несколько команд в этом новом приглашении, но это не работает как пользователь с повышенными правами (даже если у него есть привилегии администратора).
Смотрите здесь: https://superuser.com/questions/42537/is-there-any-sudo-command-for-windows
В соответствии с этим команда выглядит так для администратора:
runas /noprofile /user:Administrator cmd
Все эти ответы, к сожалению, не увенчались успехом.
Здесь есть два нюанса контекста безопасности, и нам нужно, чтобы они перекрывались. - "Запуск от имени администратора" - изменение уровня выполнения на локальной машине - "Запустить как другой пользователь" - выбирает, какие учетные данные пользователя вы запускаете в процессе.
Когда UAC включен на рабочей станции, есть процессы, которые отказываются запускать, если не повышены - просто быть членом локальной группы "Администраторы" недостаточно. Если ваше требование также требует, чтобы вы использовали альтернативные учетные данные для тех, с которыми вы вошли, нам нужен метод для вызова процесса как в качестве альтернативных учетных данных, так и для повышения.
То, что я нашел, может быть использовано, хотя это немного хлопот:
используйте утилиту Sysinternals psexec следующим образом:
psexec\\локальная рабочая станция -h -i -u domain\otheruser exetorun.exe
Первое повышение необходимо, чтобы иметь возможность нажимать службу psexec. -h запускает новый "remote" (локальный) процесс повышен, и -i позволяет ему взаимодействовать с рабочим столом.
Возможно, есть более простые способы, чем это?
Пуск → сдвиг + команда Быстрый щелчок правой кнопки мыши поможет использовать его как другого пользователя или администратора.
Я нашел способ сделать это с помощью одной строки:
runas /user:DOMAIN\USER2 /savecred "powershell -c start-process -FilePath \"'C:\\PATH\\TO\\YOUR\\EXECUTABLE.EXE'\" -verb runAs"
Здесь происходит несколько трюков.
1: Мы говорим CMD просто запустить Powershell от имени DOMAIN\USER2
2: Мы передаем команду "Start-Process" в Powershell, используя глагол "runAs", чтобы поднять DOMAIN\USER2 в режим "Администратор/Повышенные привилегии".
Как общее примечание, должны присутствовать escape-символы в аргументе "FilePath" (другими словами, комбинации символов "\ & \\"), а одинарная кавычка (') должна окружать путь EXE - таким образом, CMD интерпретирует FilePath как одна строка, тогда Powershell использует одинарную кавычку для интерпретации FilePath как одного аргумента.
Использование глагола "RunAs" для повышения в Powershell: http://ss64.com/ps/syntax-elevate.html
Runas не магически запускает команды как администратор, он запускает их как учетную запись, для которой вы предоставляете учетные данные. Если это не учетная запись администратора, runas не заботится.
Вы можете использовать psexec.exe из Microsoft Sysinternals Suite https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite.
Пример:
c:\somedir\psexec.exe -u domain\user -p password cmd.exe
Я предоставляю вам шаги, которые работают через графический интерфейс
Пожалуйста, найдите "cmd" в меню "Пуск" или в строке поиска и откройте местоположение файла, щелкнув по нему правой кнопкой мыши.
Затем попробуйте удерживать клавишу Shift и щелкните правой кнопкой мыши приложение/программу или ярлык, который вы хотите открыть, с помощью разных учетных данных
Пожалуйста, обратитесь к следующей статье за дополнительной информацией http://www.windowscage.com/how-to-run-application-as-different-user-in-windows/
В моем случае я уже вошел в систему как локальный администратор, и мне нужно было запускать CMD в качестве администратора домена, поэтому для меня работало следующее из окна powershell:
runas/noprofile/user: DOMAIN\USER "cmd"
Откройте блокнот и вставьте этот код:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c %*'"
@echo on
Затем сохраните файл как sudo.cmd
. Скопируйте этот файл и вставьте его в C:\Windows\System32
или добавьте путь, где sudo.cmd
находится в переменной среды PATH.
Когда вы открываете командную строку, вы можете запустить что-то вроде sudo start.
,
Если вы хотите, чтобы окно терминала оставалось открытым при запуске команды, измените код в блокноте на следующий:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k %*'"
@echo on
Объяснение:
powershell -Command
запускает команду powershell.
Start-Process
- это команда powershell, которая запускает процесс, в данном случае командную строку.
-Verb RunAs
запускает команду от имени администратора.
-Argument-List
запускает команду с аргументами.
Наши аргументы: '/c %*'
. %*
означает все аргументы, поэтому, если вы выполнили команду sudo foo bar
, она запустится в командной строке foo bar
потому что параметры - это foo и bar, а %*
возвращает foo bar
.
/c
- это параметр cmd для закрытия окна после завершения команды, а /k
- это параметр cmd для сохранения окна открытым.
Самый простой способ - создать командный файл (.bat) и запустить его как администратора.
Щелкните правой кнопкой мыши и "Запуск от имени администратора"