Runas - пишем скрипт для запуска исполняемых файлов Windows от имени другого пользователя
Всем привет! Сегодня мы с вами научимся писать свой первый простенький скрипт для командной строки Windows. В этой статье мы рассмотрим основные проблемы кодировок в CMD, команды вывода пользователей и фильтрации данных с помощью т.н. "конвейера", а также рассмотрим встроенную программу "runas"
Первым делом рассмотрим структуру нашего скрипта:
@echo off chcp 65001 echo. & echo ---Текущее имя пользователя--- whoami echo. & echo ---Имена всех пользователей--- chcp 866 echo. wmic useraccount get name, status | find "OK" echo. & echo -------------------- chcp 65001 echo. & set /p username="Введите имя пользователя: " echo Выбран пользователь: %username% set /p userpath="Перенесите сюда .exe приложение которое хотите запустить (не ярлык) и нажмите Enter: " echo "Попытка запуска приложения..." echo %username% %userpath% runas /user:%username% %userpath%
Вот собственно наш код. Давайте подробнее изучим основные его строки.
chcp <номер кодировки> - отвечает за переключение кодировки в открытой cmd сессии. Это требуется для нормальной работы с кириллицей и латиницей, а также иными языками, плохо работающими на базовой Windows кодировке.
echo. - просто ставит enter в выводе в консоли, отображая ваше сообщение или результат выполнения команды на новой строке.
echo <ваше сообщение> - выводит сообщение на экран.
@echo off - убирает ваш ввод команд скрипта, что убирает лишний хлам в выводе в консоли.
set <имя переменной> <значение переменной> - сохраняет в памяти значение для заданной переменной. Если такой переменной нет, создает её и сохраняет в ней указанное значение.
set /p <имя переменной> <Placeholder - он же заполнитель текста> - дает возможность задать пользователю значение переменной с помощью ввода текста в CMD.
echo %имя_переменной% - выводит значение переменной. Использование %имя_переменной% в любом месте команд вставляет сохраненное значение переменной
runas /user:%username% %userpath% - запускает указанную программу от имени указанного пользователя.
whoami - вывод текущего пользователя с которого вы сидите
wmic useraccount - выводит в сыром виде все аккаунты
get name, status | find "OK" - фильтрует данные и выводит релевантные учетки.
Теперь с помощью данного скрипта вы можете не меняя учетную запись запустить программу от имени другого пользователя. В ряде определенных случаев это бывает очень полезно, особенно когда вы на работе и нужно что-то запустить от имени админа, не выходя из рабочей учетки, но при этом классический метод запуска от имени админа заблокирован политикой безопасности.
2. Выбрать нужного пользователя
3. Указать абсолютный путь в кавычках ИЛИ - просто перетащить EXE (важно, не ярлык) файл в консоль
4. Ввести пароль от выбранной учетки
5. Готово! Если прога поддерживает данную фичу, то всё успешно запустится и будет работать.
На этом всё. Такая вот простенькая и коротенькая статья, учащая базовым командам в cmd и написанию скриптов без всяких python и прочих зависимостей ^)