Bat файл для запуска программы и ввода пароля
У меня есть этот код для создания и запуска точки доступа:
Мой вопрос: могу ли я сделать автоматический ввод пароля, чтобы только дважды щелкнуть файл без других действий?
1 ответ
Вы можете использовать альтернативные потоки данных для предоставления пароля.
1) создать и сохранить ваш командный файл
2) используйте команду ECHO, чтобы "поместить" ваш пароль в ADS, прикрепленный к вашему пакетному файлу.
3) использовать перенаправление для чтения пароля из файла ADS (альтернативный поток данных)
Пароль безопасен, так как его нельзя "увидеть" обычными методами.
Вот как это работает:
1) Включите в свой код следующую строку:
и сохраните ваш пакетный файл.
2) В командной строке DOS введите следующую команду:
ПРИМЕЧАНИЕ 1. Пожалуйста, внимательно посмотрите на эту строку. Обратите внимание на ADS после символа ":" (двоеточие). ПРИМЕЧАНИЕ 2: обратите внимание, что по обе стороны от > (больше чем) символ.
Например, предположим, что вы создали следующий простой пакетный файл с именем GETPASS.BAT, а ваш пароль - LETMEIN.
Теперь сохраните пакетный файл и введите в командной строке DOS следующую команду:
ПРИМЕЧАНИЕ: нет пробелов по обе стороны от > (больше чем) символ.
Теперь запустите ваш командный файл - он должен просто отобразить:
Что касается безопасности, ни один из следующих обычных методов не раскроет ваш пароль:
Существует только ограниченное количество способов просмотра содержимого файла ADS. Я оставляю это вам как испытание, если вы можете сделать это. Таким образом, это делает его довольно безопасным с точки зрения новичка.
Кроме того, что касается новичков (и некоторых профессионалов), следующая строка может вводить в заблуждение, особенно в отсутствие знаний о ADS.
Наконец, как видите, нет дополнительного внешнего файла, содержащего ваш пароль. ADS прикреплен к вашему пакетному файлу. Это означает, что если вы перемещаете или переименовываете свой пакетный файл, ADS перемещается вместе с ним. Так же %
nx0 часть команды гарантирует, что ADS может быть найден, если вы переименуете пакетный файл.
Нередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.
В этой инструкции подробно о том, как создать командный файл bat, запустить его и некоторая дополнительная информация, которая, возможно, окажется полезной в контексте рассматриваемой темы.
Создание .bat файла с помощью блокнота
Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.
Шаги по созданию будут следующими
Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).
Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».
Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).
Запуск программ в файле bat и другие базовые команды
Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).
Для запуска программы или программ используйте команду:
Если путь содержит пробелы, возьмите весь путь в двойные кавычки, например:
После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):
Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.
Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:
Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:
В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:
Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).
По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.
Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:
При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:
Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:
Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:
Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.
Любой пользователь Windows может запустить в своей сессии программы от имени другого пользователя (Run As). Благодаря этому можно выполнить скрипт (.bat, .cmd, .vbs, .ps1), исполняемый .exe файл или запустить установку приложения (.msi, .cab) с полномочиями другого, как правило привилегированного, пользователя .
Например, вы можете использовать RunAs для установки программ или запуска MMC оснасток с правами администратора непосредственно в сессии непривилегированного пользователя. Также возможность запуска программ “от имени” может быть полезна, когда приложение настроено под другим пользователем (и соответственно хранит свои настройки в чужом профиле, к которому у данного пользователя нет прав доступа), а его нужно запустить с теми же настройками в сессии другого пользователя.
За возможность запуска программ от имени другого пользователя в Windows отвечает служба Вторичный вход в систему (Secondary Log-on). Если эта служба остановлена все описанные методы runas работать не будут. ВЫ можете проверить, что служба запущена с помощью следующей команды PowerShell:В Windows 10 есть несколько способов запустить программу или процесс от имени другого пользователя.
Запуск программы от имени другого пользователя из Проводника Windows (File Explorer)
Самый простой способ запустить программу из-под другого пользователя – воспользоваться графическим интерфейсом Проводника Windows (File Explorer). Просто найдите нужно приложение (или ярлык), зажмите клавишу Shift и щелкните по нему правой кнопкой мыши. Выберите пункт контекстного меню «Запуск от имени другого пользователя» (Run as different user).
Примечание. Если пункт меню «Запуск от имени другого пользователя» отсутствует, см. следующий раздел.В появившемся окне нужно указать имя и пароль пользователя, под чьей учетной записью нужно запустить программу и нажать кнопку ОК.
Примечание. Если нужно указать доменного пользователя, используется один из следующий форматов имени: UserName@DomainName или DomainName\UserName .Откройте Диспетчер задач и убедитесь, что приложение запущенно под указанным пользователем.
Включить пункт “Запуск от имени другого пользователя” в контекстном меню проводника Windows
Если в контекстном меню проводника Windows отсутствует пункт Запуск от имени другого пользователя (Run as different user), откройте редактор локальных групповых политик (gpedit.msc) и убедитесь, что в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных (Computer Configuration -> Administrative Templates -> Windows Components -> Credential User Interface) отключена (Не задана) политика Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry)
Команда Runas – запуск программ от имени другого пользователя из командной строки
В Windows есть консольная утилита runas.exe, которая используется для запуска приложений от имени другого пользователя из командной строки. Также команда runas позволяет сохранить пароль пользователя в Windows Credential Manager, чтобы его не приходилось набирать каждый раз.
Откройте командную строку (или окно Выполнить, нажав сочетание клавиш Win+R). Для запуска Блокнота с правами учетной записи admininstrator выполните команду:
runas /user:administrator “C:\Windows\cmd.exe”
Совет. Если имя пользователя содержит пробелы, его нужно взять в кавычки:runas /user:”user test” notepad.exe
В отрывшемся окне появится приглашение «Введите пароль для admin», где нужно набрать пароль и нажать Enter.
Должно открыться ваше приложение. В моем случае это cmd. В заголовке окна указано Запущено от имени CompName\username :
Можно, например, открыть панель управления под другим пользователем:
runas /user:admin control
Для запуска программы из-под доменного пользователя нужно использовать формат имени UserName@DomainName или DomainName\UserName . Например, чтобы с помощью блокнота открыть текстовый файл от имени пользователя домена CORP, используйте команду:
runas /user:corp\server_admin “C:\Windows\notepad.exe C:\tmp\2871997x64.txt”
Иногда нужно запустить программу от имени доменного пользователя с компьютера, который не добавлен в домен AD. В этом случае нужно использовать такую команду (при условии, что в сетевых настройках вашего компьютера указан DNS сервер, который может отрезолвить этот домен):
runas /netonly /user:contoso\aaivanov cmd.exe
Если для запуска программы от другого пользователя не нужно загружать его профиль, используйте параметр /noprofile . При этом приложение запускается намного быстрее, но может вызвать некорректную работу программ, которые хранят данные в профиле пользователя.
Запуск программ от имени другого пользователя без ввода пароля
Вы можете сохранить пароль пользователя, который вы вводите. Для этого используется параметр /savecred.
runas /user:admin /savecred “C:\Windows\notepad.exe”
После указания пароля он сохранится в диспетчере паролей Windows.
При следующем запуске команды runas под этим же пользователем с ключом /savecred Windows автоматически получит сохраненный пароль из Credential Manager, а не будет запрашивать его повторно.
Чтобы вывести список всех пользователей, для которых сохранены пароли, используется команда:
Однако использование параметра /savecred не безопасно, т.к. пользователь, в чьем профиле сохранен чужой пароль может использовать его для запуска любой команды под данными привилегиями, или даже сменить чужой пароль. Кроме того, сохраненные пароли из Credential Manager можно легко украсть, поэтом лучше запретить использование сохраненных паролей (а тем более нельзя сохранять пароль привилегированной административной учетной записи).
Примечание. Кроме того, ключ /savecred не работает в Home редакциях Windows.Ярлык с запуском программы от имени другого пользователя
Можно создать на рабочем столе ярлык, позволяющий запустить программу от имени другого пользователя. Просто создайте новый ярлык, в окне с адресом объекта которого укажите команду runas с нужными параметрами.
При запуске такого ярлыка будет запрашиваться пароль пользователя.
Если дополнительно указать в ярлыке runas параметр /savecred , то пароль будет запрошен только один раз. После этого пароль будет сохранен в Credential Manager и автоматически подставляться при запуске ярлыка от имени другого пользователя без запроса пароля.
Такие ярлыки довольно часто используются для запуска программ, которые требуют прав администратора для запуска. Однако есть более безопасные способы запуска программы без прав администратора, или отключения запроса UAC для определенного приложения.
Запуск оснастки MMC консоли от имени другого пользователя
В некоторых случаях от имени другого пользователя нужно запустить одну из управляющих оснасток Windows. К примеру, если под другим пользователем нужно запустить оснастку Active Directory Users and Computers из набора инструментов администрирования RSAT, можно воспользоваться такой командой.
runas.exe /user:DOMAINname\USER “cmd /c start \”\” mmc %SystemRoot%\system32\dsa.msc”
Аналогичным образом можно запустить любую другую оснастку (главное знать ее имя).
Как добавить пункт “Запуск от имени” для программ в меню Пуск?
По-умолчанию в Windows 10 у элементов меню Пуск (начального экрана) отсутствует возможность запуска приложений от имени другого пользователя. Чтобы добавить в контекстное меню пункт “Запуск от имени другого пользователя”, нужно включить политику Показывать команду «Запуск от имени другого пользователя» при запуске (Show “Run as different user” command onStart) в разделе редактора групповых политик (консоль gpedit.msc) Конфигурация пользователя ->Административные шаблоны -> Меню Пуск и панель задач (User Configuration -> Administrative Templates -> Start Menu and Taskbar).
Либо, если редактор gpedit.msc отсутствует, создать в ветке реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer ключ типа DWORD с именем ShowRunasDifferentuserinStart и значением 1.
New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\CurrentVersion\Explorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force
Осталось обновить групповые политики (gpupdate /force) и убедиться, что у программ в меню Пуск появится новое контекстное меню Дополнительно -> Запуск от имени другого пользователя.
Репутация: 2
Всего: 2
Слово о RUNAS..
Коротко: runas - это утилита командной строки, с помощью которой можно запускать программы от имени другого пользователя. Например, многие программы по тем или иным причинам не могут работать с ограниченными правами.
Общий формат команды:
RUNAS /USER:имя_пользователя "запускаемая_программа"
Однако вам каждый раз надо будет вводить пароль пользователя, от имени которого вы хотите запустить программу. Это неудобно, но очень разумно с точки зрения безопасности, ибо пароль не должен так просто лежать в bat-файле.
В Windows XP Professional и Windows 2003 у команды RUNAS появился новый ключ, который эту проблему решает - /SAVECRED. Если вы укажете его в команде RUNAS, то пароль вам будет предложено ввести только один раз. А далее всевозможные запуски любых программ от имени этого пользователя через команду RUNAS пароля запрашивать не будут!
Очевидно, рано или поздно вы захотите, чтобы возможность запуска без пароля прекратилась. Для этого следуем в "Пуск -> Выполнить" и в командной строке набираем команду control userpasswords2, а в открывшемся окне идём на вкладку "Дополнительно". Нажимаем кнопку "Управление паролями". Тут можно удалить все те строчки пользователей и аккаунтов, для которых вам не нужен автоматический ввод пароля. Обратите внимание, что в этом хранилище находятся пароли не только для системной команды RUNAS, но и для работы в локальной сети.
Репутация: 29
Всего: 29
Если XP Home, runas не подходит для батника совсем. Используй вместо этого psexec из состава pstools. Но в этом случае пароль будет "открытым". Правда его можно получать из файла или реестра или другим способом.
Код |
@echo off |
Репутация: 73
Всего: 329
Не забывайте, что должна работать служба вторичный вход в систему, а то некоторые любят "оптимизировать" систему
Запрещается!
1. Обсуждать взлом и делиться кряками
2. Способствовать созданию и распространению вирусов
- Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
- Несанкционированная реклама на форуме запрещена
- Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
- Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
- ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.
[ Время генерации скрипта: 0.1028 ] [ Использовано запросов: 20 ] [ GZIP включён ]
Читайте также: