По умолчанию программы в Windows запускаются от имени текущего пользователя, а при необходимости — с правами администратора. Однако, в некоторых случаях может потребоваться запуск какого-либо приложения от имени другого пользователя, с его сохраненными данными, но без входа в соответствующий аккаунт.
В этой простой инструкции подробно о том, как запустить какую-либо программу от имени другого пользователя Windows 11 или Windows 10 различными способами, если вдруг такая необходимость возникла. Также может быть полезным: запуск программ от имени администратора в Windows.
Простой запуск от имени другого пользователя
Самый простой и быстрый способ запустить программу от другого пользователя — использовать контекстное меню Windows 11/10, для этого достаточно:
- Удерживая клавишу Shift, нажать правой кнопкой мыши по ярлыку или исполняемому файлу программы.
- В контекстном меню выбрать пункт «Запуск от имени другого пользователя».
- Ввести имя другого пользователя и соответствующий этой учетной записи пароль.
На этом всё — программа будет запущена от имени выбранного пользователя, а если она содержит сохраненные данные для выбранной учетной записи, загружены будут и они.
В случае, если у вас нет ярлыка программы, а её месторасположение неизвестно, вы можете применить следующий подход: найти программу по имени через поиск в панели задач, нажать по найденному результату правой кнопкой мыши и выбрать пункт «Перейти к расположению файла», а уже затем использовать описанный ранее подход для запуска от другого пользователя.
Запуск программы или команды от имени другого пользователя в командной строке
Ещё один подход — использовать команду RUNAS в командной строке Windows. Также с помощью этой команды можно создать ярлыки для запуска приложений от других пользователей. Самый простой пример использования команды RUNAS:
- Откройте командную строку (сделать это можно, используя поиск в панели задач).
- Введите команду (если имя пользователя содержит пробелы, возьмите его в кавычки):
runas /user:ИМЯ_пользователя "Полный путь к файлу программы и параметры запуска при необходимости"
- Введите пароль выбранной учетной записи пользователя, если он будет запрошен.
В результате программа будет запущена от имени указанного пользователя. Команда имеет и другие параметры, справку можно получить, введя runas без параметров в командной строке. Например, можно включить или отключить использование данных профиля пользователя, сохранить учетные данные с помощью параметра /savecred для того, чтобы при следующих запусках от имени выбранного пользователя ввод пароля не требовался.
Существуют и другие, иногда более функциональные решения для запуска программ или bat файлов от имени других пользователей, одно из самых известных — утилита PsExec, входящая в Microsoft Sysinternals Suite и позволяющая выполнить не только описанную задачу, но и множество других.
Стандартные пользователи не могут запускать программу с правами администратора. Все программы, работающие на компьютере с Windows, должны иметь доступ к административным привилегиям, и, к сожалению, стандартные пользователи не имеют прав администратора по умолчанию. Могут быть случаи, когда обычному пользователю могут часто требоваться права администратора. В этом случае необходима постоянная установка, позволяющая обычным пользователям запускать программу с правами администратора.
Когда стандартным пользователям нужны права администратора?
Когда вы являетесь стандартным пользователем Windows, вам потребуются права администратора для выполнения многих основных задач, таких как установка нового программного обеспечения, доступ к реестру или групповой политике и т. д. Поэтому, если вы хотите запустить несколько программ в Windows, права администратора должны не быть необходимым; однако, если вы собираетесь использовать свой компьютер для задач администратора, вам могут не понадобиться права администратора.
Как разрешить обычным пользователям запускать программу с правами администратора
В настройках безопасности на ПК с Windows часто по умолчанию включены права администратора. Это имеет смысл, поскольку большинству обычных пользователей не нужны права администратора. Однако многие обычные пользователи Windows столкнутся с этой проблемой, поскольку приведенные ниже шаги покажут вам, как решить эту проблему.
Вот список методов, которые вы можете использовать, чтобы позволить обычным пользователям запускать программу с правами администратора:
- Используйте параметр «Запуск от имени администратора»
- Используйте планировщик заданий
- Используйте ярлык Каждый из этих методов подробно описан ниже.
Используйте тот, который лучше всего соответствует вашим потребностям.
1]Используйте параметр «Запуск от имени администратора»
Если у вас есть программа, которую вам нужно запустить с правами администратора, вы можете использовать опцию «Запуск от имени администратора». Для этого щелкните правой кнопкой мыши значок программы и выберите «Запуск от имени администратора». Затем вам будет предложено ввести пароль администратора. Как только вы это сделаете, программа будет работать с администратором.
Хотя это самый простой способ, он также означает, что пользователям необходимо знать PIN-код или пароль учетной записи администратора. В большинстве случаев это не будет идеальным, если администратор не сможет достаточно доверять пользователям, чтобы они не злоупотребляли им.
2]Используйте планировщик заданий
Если вам нужно запустить программу в фоновом режиме или в определенное время для обычного пользователя с правами администратора, то выполните следующие действия:
- Во-первых, пользователь должен открыть планировщик заданий, перейдя в меню «Пуск» и выполнив поиск «Планировщик заданий».
- В планировщике заданий пользователь должен щелкнуть «Создать задание» на правой панели.
- Откроется новое окно под названием «Создать задачу». Здесь назовите задачу и задайте ее запуск независимо от того, вошел ли пользователь в систему или нет. Им также следует установить флажок «Выполнять с наивысшими привилегиями».
- Нажмите «Изменить пользователя или группу» и выберите учетную запись пользователя, для которой вы хотите запустить задачу.
- На вкладке «Триггеры» пользователь должен нажать «Создать» и настроить выполнение задачи в определенное время или с определенным интервалом.
- Обязательно заполните остальные данные, чтобы задача выполнялась должным образом.
Он должен быть создан пользователями-администраторами и позволять нам работать в стандартной учетной записи пользователя.
3]Используйте ярлык
Постоянное решение было бы, если бы вы могли запустить программу, не устанавливая задачу или не зная пароля. Решением этого является учетная запись администратора, которая может создать ярлык для обычного пользователя, при нажатии на который запускается программа с наивысшими привилегиями.
Выполните следующие действия, чтобы настроить ярлык с помощью команды RunAs. Он позволяет запускать что угодно с привилегиями другой учетной записи. Это лазейка, так как параметр /savecred может сохранить пароль при первом запуске. Опубликуйте это, это ничего не подскажет.
- Нажмите клавишу Windows + R в учетной записи администратора, чтобы открыть диалоговое окно «Выполнить».
- Откройте меню «Пуск» и найдите программу, для которой вы хотите создать ярлык.
- Щелкните правой кнопкой мыши программу и выберите Создать ярлык.
- Щелкните правой кнопкой мыши только что созданный ярлык и выберите «Свойства».
- На вкладке «Ярлык» найдите поле «Цель» и добавьте следующее в начало расположения исполняемого файла.
runas /user:имя_компьютераимя_пользователя /savecred
- Окончательный путь должен выглядеть так
runas /user:ИМЯ_ПКАдминистратор /savecred <Путь>Program.exe
- Измените имя компьютера и имя пользователя соответственно.
Сохрани это. При этом вам будет предложено ввести учетные данные администратора один раз, и после того, как они будут введены, они будут сохранены в диспетчере учетных данных Windows, и их не нужно будет вводить снова. Приложение каждый раз будет запускаться с повышенными правами.
Теперь обычный пользователь сможет запустить программу с правами администратора, дважды щелкнув ярлык. Хотя это должно нормально работать с учетной записью Microsoft, лучше всего использовать для этого учетную запись локального администратора.
Что такое Runas Command?
Это команда для открытия любой программы с другой учетной записью пользователя. При использовании с параметром /savecred он указывает, сохранял ли ранее этот пользователь учетные данные. Следовательно, он также может запускать программу с учетной записью администратора.
Как сделать так, чтобы программа всегда запускалась от имени администратора в Windows?
Чтобы запустить программу от имени администратора в Windows 11/10:
- Правая иконка программы или ярлык приложения
- Откройте окно «Свойства».
- Перейдите на вкладку «Совместимость».
- Здесь выберите «Запустить эту программу от имени администратора».
- Щелкните Применить > ОК. Это применит настройку только к текущему пользователю.
- Но если вы хотите применить параметр «Всегда запускать от имени администратора» ко всем пользователям, нажмите «Изменить параметр для всех пользователей».
- Это откроет другое диалоговое окно. Снова установите флажок «Выполнить эту программу от имени администратора».
- Нажмите Применить/ОК.
Читать дальше: RunAsTool позволяет запускать программу от имени администратора без пароля.
Являясь многопользовательской ОС, Windows 11 позволяет запускать приложения от имени другого пользователя. Это означает, что если у вас более одной учетной записи пользователя, вы можете запустить какое-то приложение под разными учетными данными. Это может быть полезно, когда вам нужно быстро применить некоторые ограничения к приложению или запретить ему доступ к вашим личным данным.
Запуск от имени другого пользователя — это встроенная функция Windows 11, поэтому вам не нужно устанавливать дополнительное программное обеспечение. Помимо запуска обычных приложений (.exe), вы можете использовать его с пакетными файлами (.bat, .cmd) и файлами Windows Installer (.msc или .msi).
Будучи запущенным от имени другого пользователя, приложение, скрипт или установщик будут работать с теми же правами, ограничениями и разрешениями, которые есть у этого пользователя. Они не будут использовать данные учётной записи пользователя, в которой вы в данный момент работаете. Такой подход делает возможным запуск нескольких экземпляров одного и того же приложения, работающих под разными учетными данными на одном рабочем столе.
Существует четыре способа запустить приложение от имени другого пользователя в Windows 11. Для этого вы можете использовать параметры, доступные в проводнике, на панели задач, в меню «Пуск» и в командной строке.
Чтобы запустить приложение от имени другого пользователя в Windows 11, выполните следующие действия.
- Откройте проводник (Win + E) и перейдите в папку, содержащую исполняемый файл приложения.
- Нажмите и удерживайте клавишу Shift на клавиатуре, и щёлкните правой кнопкой мыши исполняемый файл.
- Кликните «Показать дополнительные параметры», чтобы открыть расширенное контекстное меню. Клавишу Shift можно отпустить.
- Нажмите «Запуск от имени другого пользователя» в контекстном меню.
- Введите имя пользователя и пароль для пользователя, от имени которого вы хотите работать.
Готово. Приложение запустится под предоставленными учетными данными другого пользователя.
Существует еще несколько способов запуска исполняемого файла, скрипта или установщика под разными учетными данными.
- Щелкните правой кнопкой мыши значок приложения на панели задач. Это может быть закрепленное или запущенное приложение.
- Нажмите и удерживайте клавишу Shift.
- Удерживая Shift, щелкните правой кнопкой мыши имя приложения в контекстном меню, чтобы увидеть дополнительные пункты меню.
- Отпустите клавишу Shift и нажмите «Запуск от имени другого пользователя».
Примечание. Этот метод не работает для Проводника, вне зависимости от того, закреплен ли его значок на панели задач, или же он запущен вданным момент. Команда «Запуск от имени» недоступна для значка Проводника на панели задач в любом случае.
Наконец, Windows 11 включает консольное приложение «runas», которое позволяет запускать приложения с использованием разных учетных данных. Вот как его использовать.
Запуск от имени другого пользователя в Windows 11 из командной строки
- Щелкните правой кнопкой мыши кнопку «Пуск» на панели задач и выберите «Терминал Windows» в контекстном меню.
- Выберите PowerShell или командную строку, если Терминал открывается в другом профиле.
- Введите следующую команду и нажмите Enter.
runas /user:"username" "Полный путь к exe-файлу"
. - Замените имя пользователя фактическим именем учетной записи пользователя, от имени которого вы хотите работать. Если это учетная запись домена, используйте формат Имя доменаИмя пользователя.
- Также, если вы хотите сохранить введенные учетные данные для использования в будущем, выполните команду
runas /user:"username" /savecred "Полный путь к exe-файлу"
. Windows сохранит пароль в диспетчере учетных данных и не будет запрашивать его в следующий раз.
В дополнение к рассмотренным выше методам вы также можете добавить команду «Запуск от имени другого пользователя» в меню «Пуск». Он появится в контекстном меню ярлыков в представлении «Все приложения».
Для этого в Windows 11 есть групповая политика. Вы можете активировать её с помощью тике реестра или в gpedit.msc. Первый вариант работает во всех выпусках Windows 11. Второй доступен только в Windows 10 Pro и выше.
Чтобы включить параметр «Запуск от имени другого пользователя» в меню «Пуск» в Windows 11, выполните следующие действия.
- Скачайте ZIP-архив по этой ссылке.
- Извлеките из него REG файлы в любую папку.
- Дважды щелкните файл
Add_Run_as_ Different_user_for_Start_menu.reg
, чтобы включить параметр для ярлыков меню «Пуск». - Подтвердите приглашение UAC, нажав кнопку «Да».
- Выйдите из Windows 11 или просто перезагрузите компьютер, чтобы изменения вступили в силу.
Готово. Файл для отмены этого изменения — Remove_Run_as_ Different_user_for_Start_menu.reg
. Используйте его для восстановления значений по умолчанию.
Если вы используете Windows 10 Pro или более позднюю версию, вместо этого вы можете использовать редактор локальной групповой политики.
Метод групповой политики
- Нажмите Win + R и введите gpedit.msc в поле «Выполнить», затем нажмите Enter.
- Перейдите в «Конфигурация пользователя» > «Административные шаблоны» > «Пуск и панель задач».
- Найдите команду «Показать «Запуск от имени другого пользователя» в политике «Пуск»» справа и дважды щелкните ее.
- Выберите «Включено», чтобы добавить команду «Запуск от имени другого пользователя» в контекстное меню ярлыков в «Пуск».
- В любое время вы можете выбрать опцию «Не задано» для этой политики, чтобы скрыть команду, как это было по умолчанию.
Готово. Теперь команда доступна для ярлыков меню «Пуск». Вот как использовать запуск от имени другого пользователя из меню «Пуск»
- Откройте меню «Пуск».
- Нажмите на кнопку «Все приложения«.
- Найдите ярлык приложения для своего приложения и щелкните его правой кнопкой мыши.
- Выберите «Дополнительно» > «Запуск от имени другого пользователя».
- Заполните текстовые поля имени пользователя и пароля и нажмите клавишу Enter.
Готово!
Наконец, если вы часто используете контекстное меню «Запуск от имени другого пользователя», вас быстро надоест необходимость держать клавишу Shift каждый раз, когда кликаете на меню «Показать дополнительные параметры».
Чтобы сэкономить ваше время, вы можете сделать его всегда видимым в расширенном контекстном меню в разделе «Показать дополнительные параметры».
Примечание: Вы не сможете добавить пункт «Запуск от имени другого пользователя» в стандартное «компактное» контекстное меню. Оно не настраивается. Команда появится только в классическом меню.
- Нажмите Win + R, чтобы открыть диалоговое окно «Выполнить»; введите regedit и нажмите Enter, чтобы открыть редактор реестра.
- На левой панели перейдите к ключу
HKEY_CLASSES_ROOTexefileshellrunasuser
. - Справа удалите значение Extended (пустое текстовое значение).
- Теперь удалите тот же текстовый параметр в следующих разделах:
- HKEY_CLASSES_ROOTcmdfileshellrunasuser
- HKEY_CLASSES_ROOTbatfileshellrunasuser
- HKEY_CLASSES_ROOTmscfileshellrunasuser
- HKEY_CLASSES_ROOTMsi.Packageshellrunasuser
- Команда «Запуск от имени другого пользователя» теперь всегда будет видна в варианте меню «Показать дополнительные параметры».
Чтобы отменить это изменение, просто заново создайте удаленный параметр «Extended» под соответствующими ключами.
Чтобы автоматизировать этот процесс, вы можете использовать следующие готовые файлы реестра.
Скачать файлы реестра
Файл Always_show_Run_as_ Different_user.reg позволяет отображать команду напрямую, не удерживая клавишу Shift для элемента «Показать дополнительные параметры». Второй REG файл отменит это изменение.
Однако иногда вы можете захотеть добиться противоположного эффекта и скрыть команду «Запуск от имени другого пользователя» для всех пользователей. Для этого вам нужно применить немного другой твик реестр. Давайте рассмотрим его для полноты картины.
- Откройте редактор реестра (regedit.exe).
- Перейдите к следующему ключу HKEY_CLASSES_ROOTcmdfileshellrunasuser.
- Щелкните правой кнопкой мыши ключ runasuser слева и выберите в меню «Создать» > «Строковое значение».
- Назовите новое значение «ProgrammaticAccessOnly» и оставьте его значение пустым.
- Теперь повторите шаги 2-4 в этих разделах:
- HKEY_CLASSES_ROOTcmdfileshellrunasuser
- HKEY_CLASSES_ROOTbatfileshellrunasuser
- HKEY_CLASSES_ROOTmscfileshellrunasuser
- HKEY_CLASSES_ROOTMsi.Packageshellrunasuser
- Запись «Запуск от имени другого пользователя» теперь удалена для всех пользователей.
Готово. Значение ProgrammaticAccessOnly указывает проводнику скрыть элемент контекстного меню от пользователя, не нарушая работу приложений или Windows. Скрытая команда остается доступной для приложений, если некоторым из них требуется доступ к ней.
Чтобы вернуть скрытую команду контекстного меню, просто удалите созданное вами значение ProgrammaticAccessOnly.
Чтобы сэкономить ваше время, я подготовил пару REG-файлов на этот случай.
Скачать REG файлы
Файл Remove_Run_as_ Different_user_from_context_menu.reg
скроет пункт меню. Другой файл, Add_Run_as_ Different_user_from_context_menu.reg
, восстановит команду в контекстном меню.
Вот и все!
Источник: Winaero
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.
Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!
Любой пользователь Windows может запустить в своей сессии программу от имени другого пользователя с помощью Run As. Благодаря этому вы можете выполнить скрипт (.bat, .cmd, .vbs, .ps1), запустить исполняемый .exe файл или установку приложения (.msi, .cab) с полномочиями другого пользователя.
Например, вы можете использовать RunAs для установки программ или запуска программ/скриптов/MMC оснасток с правами администратора непосредственно в сессии обычного непривилегированного пользователя. Также через RunAs вы можете запустить приложение, настроенное в профиле другого пользователя (приложение загрузится с настройки из профиля другого пользователя).
За возможность запуска программ от имени другого пользователя в Windows отвечает служба Вторичный вход в систему (Secondary Log-on). Если эта служба остановлена, тогда все описанные методы runas работать не будут. Вы можете проверить, что служба запущена с помощью следующей команды PowerShell:
Get-Service seclogon
В Windows есть несколько способов запустить программу или процесс от имени другого пользователя.
Содержание:
- Запуск программы от имени другого пользователя из Проводника Windows (File Explorer)
- Команда Runas: запуск программ от имени из командной строки
- Использование RunAs в PowerShell
- Запуск программ от имени другого пользователя без ввода пароля
- Ярлык с запуском программы от имени другого пользователя
- В проводнике Windows отсутствует пункт “Запуск от имени другого пользователя”
- Как добавить пункт “Запуск от имени” для программ в меню Пуск?
Запуск программы от имени другого пользователя из Проводника Windows (File Explorer)
Самый простой способ запустить программу из-под другого пользователя – воспользоваться графическим интерфейсом Проводника Windows (File Explorer). Просто найдите нужно приложение (или ярлык), зажмите клавишу Shift и щелкните по нему правой кнопкой мыши. Выберите пункт контекстного меню «Запуск от имени другого пользователя» (Run as different user).
Примечание. Если пункт меню «Запуск от имени другого пользователя» отсутствует, см. следующий раздел.
В появившемся окне Windows Security нужно указать имя и пароль пользователя, под чьей учетной записью нужно запустить программу и нажать кнопку ОК.
Примечание.
- Если нужно запустить программу от имени пользователя Active Directory, нужно указать его имя в формате userPrincipalName (
[email protected]
) или samAccountName (
DomainNameUserName
); - Если ваш компьютер добавлен в домен AD, то для запуска программы от имени локальной учетной записи пользователя ее имя нужно указать в формате:
.localusername
.
Важно. Вы можете запустить программу от имени другого пользователя только, если для него задан пароль. Использовать Runas для пользователя с пустым паролем не получится.
Откройте Диспетчер задач и убедитесь, что приложение запущенно под указанным пользователем.
Команда Runas: запуск программ от имени из командной строки
В Windows есть консольная утилита runas.exe, которую можно использовать для запуска приложений от имени другого пользователя из командной строки. Также команда runas позволяет сохранить пароль пользователя в Windows Credential Manager, чтобы его не приходилось набирать каждый раз.
Откройте командную строку (или окно Выполнить, нажав сочетание клавиш Win+R). Для запуска Блокнота с правами учетной записи administrator выполните команду:
runas /user:administrator “C:Windowscmd.exe”
Совет. Если имя пользователя содержит пробелы, его нужно взять в кавычки:
runas /user:”user test” notepad.exe
В отрывшемся окне появится приглашение «Введите пароль для admin», где нужно набрать пароль и нажать Enter.
Должно открыться ваше приложение. В моем случае это cmd. В заголовке окна указано Запущено от имени
CompNameusername
:
Можно, например, открыть панель управления под другим пользователем:
runas /user:admin control
Если нужно запустить программу от имени доменного пользователя, нужно использовать формат имени
[email protected]
или
DomainNameUserName
.
Например, чтобы с помощью блокнота открыть текстовый файл от имени пользователя server_admin домена CORP, используйте команду:
runas /user:corpserver_admin “C:Windowsnotepad.exe C:tmp2871997x64.txt”
Введите пароль для corpserver_admin: Попытка запуска C:Windowsnotepad.exe C:tmp2871997x64.txt от имени пользователя "corpserver_admin" ...
Если указали несуществующее имя пользователя или неверный пароль, появится ошибка:
RUNAS ERROR: Unable to run - yourcommand 1326: The user name or password is incorrect.
Или
RUNAS ERROR: Unable to acquire user password
Иногда нужно запустить программу от имени доменного пользователя с компьютера, который не добавлен в домен AD. В этом случае нужно использовать такую команду (при условии, что в сетевых настройках вашего компьютера указан DNS сервер, который может отрезолвить этот домен):
runas /netonly /user:contosoaaivanov cmd.exe
Если для запуска программы от другого пользователя не нужно загружать его профиль, используйте параметр /noprofile. При этом приложение запускается намного быстрее, но может вызвать некорректную работу программ, которые хранят данные в профиле пользователя.
Использование RunAs в PowerShell
Если вам нужно запускать программы/процессы от имени другого пользователя из PowerShell, вы можете использовать командлет Start-Process (управление процессами с помощью PowerShell). Сначала нужно запросить учетную запись и пароль пользователя:
$Cred = (Get-Credential)
Для запуска процесса от имени другого пользователя можно использовать:
Start-Process -FilePath "powershell.exe" -Credential $Cred
Либо можно запросить учетную запись и пароль интерактивно через Windows Security:
# "Run as Administrator"
Start-Process -FilePath "powershell.exe" -Verb RunAs
# Run as от другого пользователя
Start-Process -FilePath "powershell.exe" -Verb RunAsUser
Если вам нужно запустить программу через runas от имени другого администратора в привилегированном режиме (по умолчанию UAC запускает программу в not-elevated пользовательском контексте), можно использовать такую команду PowerShell:
Start-Process powershell -Credential winitproadmin2 -ArgumentList '-noprofile -command &{Start-Process "cmd.exe" -verb runas}'
Или стороннюю утилиту ShelExec:
ShelExec /Verb:runas cmd.exe
Запуск программ от имени другого пользователя без ввода пароля
Вы можете сохранить пароль пользователя, который вы вводите. Для этого используется параметр /savecred.
runas /user:admin /savecred “C:Windowsnotepad.exe”
После указания пароля он сохранится в диспетчере паролей Windows.
При следующем запуске команды runas под этим же пользователем с ключом
/savecred
Windows автоматически получит сохраненный пароль из Credential Manager, и не будет запрашивать его повторно.
Чтобы вывести список всех пользователей, для которых сохранены пароли, используется команда:
RunDll32.exe keymgr.dll,KRShowKeyMgr
Однако использование параметра /savecred не безопасно, т.к. пользователь, в чьем профиле сохранен чужой пароль может использовать его для запуска любой команды под данными привилегиями, или даже сменить чужой пароль. Кроме того, сохраненные пароли из Credential Manager можно легко украсть, поэтом лучше запретить использование сохраненных паролей (а тем более нельзя сохранять пароль привилегированной административной учетной записи).
Примечание. Кроме того, ключ /savecred не работает в Home редакциях Windows.
Вы можете использовать команду RunAs для запуска mmc оснасток от имени другого пользователя. К примеру, если под другим пользователем нужно запустить оснастку Active Directory Users and Computers из набора инструментов администрирования RSAT, можно воспользоваться такой командой.
runas.exe /user:winitprokbuldogov "cmd /c start mmc %SystemRoot%system32dsa.msc"
Аналогичным образом можно запустить любую другую оснастку (главное знать ее имя).
Ярлык с запуском программы от имени другого пользователя
Вы можете создать на рабочем столе ярлык для запуска программы от имени другого пользователя. Просто создайте новый ярлык, в окне с адресом объекта которого укажите команду
runas
с нужными параметрами:
runas /user:winitprokbuldogov “C:Windowsnotepad.exe”
При запуске такого ярлыка будет запрашиваться пароль пользователя.
Если в ярлыке runas добавить параметр
/savecred
, то пароль будет запрошен только один раз. После этого пароль будет сохранен в Credential Manager и автоматически подставляться при запуске ярлыка от имени другого пользователя без запроса пароля.
Такие ярлыки довольно часто используются для запуска программ, которые требуют прав администратора для запуска. Однако есть более безопасные способы запуска программы без прав администратора, или отключения запроса UAC для определенного приложения.
В проводнике Windows отсутствует пункт “Запуск от имени другого пользователя”
Если в контекстном меню проводника Windows отсутствует пункт Запуск от имени другого пользователя (Run as different user), нужно проверить настройки двух параметров реестра Windows.
В Windows вы можете скрыть или показать в проводнике пункт меню RunAs с помощью двух параметров реестра:
- Параметр HideRunAsVerb (тип REG_DWORD) в ветке реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorer (1 – скрыть пункт runas, 0 – показать)
- Параметр EnableSecureCredentialPrompting (REG_DWORD) в HKLM SoftwareMicrosoftWindowsCurrentVersionPoliciesCredUI (1 – скрыть, 0 – показать)
Если в Windows не отображается пункт Run as different user, проверьте значения этих параметров реестра и измените их на 0. В доменной среде вы можете распространить значения этих параметров реестра на компьютеры с помощью Group Policy Preferences.
Второму параметру реестра соответствует отдельная опция GPO.
Этой опции GPO соответствует параметр EnableSecureCredentialPrompting в ветке реестра HKLM SoftwareMicrosoftWindowsCurrentVersionPoliciesCredUI. Откройте редактор локальных групповых политик (gpedit.msc) и убедитесь, что в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных (Computer Configuration -> Administrative Templates -> Windows Components -> Credential User Interface) отключена (Не задана) политика Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry).
Как добавить пункт “Запуск от имени” для программ в меню Пуск?
По-умолчанию в Windows 10 у элементов меню Пуск (начального экрана) отсутствует возможность запуска приложений от имени другого пользователя. Чтобы добавить в контекстное меню пункт “Запуск от имени другого пользователя”, нужно включить политику Показывать команду «Запуск от имени другого пользователя» при запуске (Show “Run as different user” command onStart) в разделе редактора групповых политик (консоль
gpedit.msc
) Конфигурация пользователя ->Административные шаблоны -> Меню Пуск и панель задач (User Configuration -> Administrative Templates -> Start Menu and Taskbar).
Либо, если редактор gpedit.msc отсутствует, создать в ветке реестра HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsExplorer ключ типа DWORD с именем ShowRunasDifferentuserinStart и значением 1.
New-ItemProperty -Path "HKCU:SoftwarePoliciesMicrosoftWindowsCurrentVersionExplorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force
Осталось обновить групповые политики (gpupdate /force) и убедиться, что у программ в меню Пуск появится новое контекстное меню Дополнительно -> Запуск от имени другого пользователя.
Пункт “запуск от имени” отсутствует у Universal Windows Platform (UWP) приложения из Microsoft Store. Вы можете запустить UWP приложение от другого пользователя из командной строки с помощью runas.exe.
Выведите список приложений Microsoft Store на компьютере с помощью PowerShell:
Get-AppxPackage|select Name
Можно найти конкретное приложение
Get-AppxPackage|where {$_.Name -like '*team*'} |select Name
Найдите имя нужного приложения в списке. Например, для запуска встроенного клиента Microsoft Teams Chat от другого пользователя, выполните:
runas /user:user1 "explorer.exe MicrosoftTeams:"
Рассмотрены способы запуска программ от имени другого пользователя в компьютера в операционной системе Windows. Использование команды runas.
Запуск программы от имени другого пользователя из Проводника Windows (File Explorer)
Самый простой способ запустить программу из-под другого пользователя – воспользоваться графическим интерфейсом Проводника Windows (File Explorer). Просто найдите нужно приложение (или ярлык), зажмите клавишу Shift и щелкните по нему правой кнопкой мыши. Выберите пункт контекстного меню «Запуск от имени другого пользователя» (Run as different user).
Примечание. Если пункт меню «Запуск от имени другого пользователя» отсутствует, см. следующий раздел.
В появившемся окне нужно указать имя и пароль пользователя, под чьей учетной записью нужно запустить программу и нажать кнопку ОК.
Примечание. Если нужно указать доменного пользователя, используется один из следующий форматов имени: UserName@DomainName или DomainNameUserName.
Важно. Запуск программ от имени другого пользователя возможен, если для него задан пароль. Использовать Runas для пользователя с пустым паролем не получится.
Откройте Диспетчер задач и убедитесь, что приложение запущенно под указанным пользователем.
Источник: http://winitpro.ru/index.php/2018/01/15/runas-sposoby-zapustit-programmu-ot-imeni-drugogo-polzovatelya/
Запускаем программу от имени другого пользователя
Чтобы осуществить запуск приложения от имени другого пользователя на компьютере с Windows 10, стоит зажать клавишу Shift и кликнуть правой кнопкой мыши на нужной программе. Из функционального меню выбираем «Запуск от имени другого пользователя».
В некоторых случаях может потребоваться ввод имени и пароля от другой учетной записи. Программа будет запущена с сохраненными ранее параметрами.
В случае, если такого пункта в меню правой кнопки мыши нет, то нужная программа не создала и не хранит свои настройки в папке C:User и запуск такого элемента от имени другого пользователя невозможен
Источник: http://softikbox.com/kak-v-windows-10-zapustit-prilozhenie-ot-imeni-drugogo-polzovatelya-29054.html
Запуск программы через командную строку
Запуск не всегда может срабатывать корректно. Также иногда нужно добавить при запуске определенные ключи. В этом случае используют командную строку. Запуск консоли осуществляется следующими методами:
- В поиске Пуска ввести «Командная строка» и выбрать нужный пункт.
- Нажать на клавиатуре Win+R и ввести в окне CMD, после чего нажать Enter.
С помощью консоли можно запустить системные приложения. Для каждого прописывают отдельную команду:
- explorer – программа Проводник;
- taskmgr – открывает Диспетчер задач;
- control – запускает Панель управления;
- notepad – для приложения Блокнот;
- wmplayer – Windows Media;
- cmd – окно новой командной консоли.
Для запуска приложений другого рода (не системных, а скачанных или копированных) через командую строку можно использовать следующий метод:
- Находим расположение нужной программы на компьютере.
- Нажимаем на файле запуска правой кнопкой мыши, предварительно зажав кнопку Shift. В меню выбираем «Копировать как путь». Если Shift не будет зажат, то этот пункт не появится.
- В консоли переходим к диску, на котором расположена программа, для чего указываем букву накопителя и двоеточие.
- Вводим команду CD и пробел.
- Нажимаем правой кнопкой мыши в окне командной строки и выбираем вставить.
- Получаем строку «CD вставленный_путь_в_кавычках».
- Нужно удалить кавычки и название файла запуска, в нашем случае «RomeTW.exe». Нажимаем Enter.
- Теперь снова вставляем путь, но оставляем только название файла запуска с расширением. В нашем случае «RomeTW.exe».
- После нажатия Enter запуститься приложение.
Подборка лучших доступных по цене Android-смартфонов
Тут же, в последнем пункте, вписываются и дополнительные параметры, если софт их поддерживает. Например запустим игру в оконном режиме. Для это перед запуском приложения из вышеописанного примера допишем оператор –ne.
Теперь запуск будет произведен в оконном режиме. Практически каждая игра и утилита имеет подобные команды, но чаще всего они индивидуальны.
Источник: http://brit03.ru/os/kak-zapustit-programmu.html
Команда Runas – запуск программ от имени другого пользователя из командной строки
В Windows есть консольная утилита runas.exe, которая используется для запуска приложений от имени другого пользователя из командной строки. Также команда runas позволяет сохранить пароль пользователя в Windows Credential Manager, чтобы его не приходилось набирать каждый раз.
Откройте командную строку (или окно Выполнить, нажав сочетание клавиш Win+R). Для запуска Блокнота с правами учетной записи admininstrator выполните команду:
runas /user:administrator “C:Windowscmd.exe”
Совет
. Если имя пользователя содержит пробелы, его нужно взять в кавычки:
runas /user:”user test” notepad.exe
В отрывшемся окне появится приглашение «Введите пароль для admin», где нужно набрать пароль и нажать Enter.
Должно открыться ваше приложение. В моем случае это cmd. В заголовке окна указано Запущено от имени CompNameusername:
Можно, например, открыть панель управления под другим пользователем:
runas /user:admin control
Для запуска программы из-под доменного пользователя нужно использовать формат имени UserName@DomainName или DomainNameUserName. Например, чтобы с помощью блокнота открыть текстовый файл от имени пользователя домена CORP, используйте команду:
runas /user:corpserver_admin “C:Windowsnotepad.exe C:tmp2871997x64.txt”
Введите пароль для corpserver_admin:Попытка запуска C:Windowsnotepad.exe C:tmp2871997x64.txt от имени пользователя «corpserver_admin» …
Иногда нужно запустить программу от имени доменного пользователя с компьютера, который не добавлен в домен AD. В этом случае нужно использовать такую команду (при условии, что в сетевых настройках вашего компьютера указан DNS сервер, который может отрезолвить этот домен):
runas /netonly /user:contosoaaivanov cmd.exe
Если для запуска программы от другого пользователя не нужно загружать его профиль, используйте параметр /noprofile . При этом приложение запускается намного быстрее, но может вызвать некорректную работу программ, которые хранят данные в профиле пользователя.
Источник: http://winitpro.ru/index.php/2018/01/15/runas-sposoby-zapustit-programmu-ot-imeni-drugogo-polzovatelya/
Формат командной строки:
- RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ] /user:имя пользователя программа
- RUNAS [ [/noprofile | /profile] [/env] [/savecred] ] /smartcard [/user:имя пользователя] программа
- RUNAS /trustlevel:уровень доверия программа
Источник: http://j4web.ru/windows/runas.html
Редко используемые, но очень полезные команды
При помощи командной строки можно выполнять различные интересные функции (большинство приведенных ниже команд работает только с правами администратора):
Превращаем ноутбук в Wi-Fi-роутер (включение раздачи интернета с ноутбука или настольного компьютера с Wi-Fi-адаптером)
Для реализации этой затеи нужно поочередно выполнить три несложные команды:
- netsh wlan set hostednetwork mode=allow
- netsh wlan set hostednetwork mode=allow ss >
Если после выполнения каждой команды вы видите сообщения, аналогичные тем, что приведены на изображении выше, значит, все прошло успешно. Теперь к ноутбуку можно подключиться, например, с телефона так же, как и к обычному Wi-Fi-роутеру.
Удалениям службу Windows (или любую другую) через командную строку
Если попробовать удалить службу через штатное приложение «Службы», то ничего не получится (в нем попросту не предусмотрено такой функции). Однако это бывает необходимым, особенно после установки различных программ, которые устанавливают службы, но «забывают» их удалять при деинсталляции. Это легко реализуется через командную строку. Однако для начала необходимо узнать имя службы, и это можно сделать через стандартное Windows-приложение:
- Запустите программу «Службы», используя команду msc.
- Найдите в отобразившемся списке службу, которую необходимо удалить, и кликните по ней два раза мышкой:
Источник: http://brit03.ru/os/kak-zapustit-programmu.html
Запуск оснастки MMC консоли от имени другого пользователя
В некоторых случаях от имени другого пользователя нужно запустить одну из управляющих оснасток Windows. К примеру, если под другим пользователем нужно запустить оснастку Active Directory Users and Computers из набора инструментов администрирования RSAT, можно воспользоваться такой командой.
runas.exe /user:DOMAINnameUSER “cmd /c start ”” mmc %SystemRoot%system32dsa.msc”
Аналогичным образом можно запустить любую другую оснастку (главное знать ее имя).
Источник: http://winitpro.ru/index.php/2018/01/15/runas-sposoby-zapustit-programmu-ot-imeni-drugogo-polzovatelya/
Работа Windows-приложений на Linux
Что касается запуска программ от Windows на операционных системах Linux, тут лучше всего использовать виртуальную машину Virtual Box. Это полностью бесплатный вариант, доступных в репозиториях любых версий Linux. Достойных альтернатив данному способу пока не существует. Нам даже необязательно использовать терминал операционной системы. Скачать последнюю русскую версию программы можно на официальном сайте.
При помощи данной виртуальной машины вы сможете установить любую операционную систему или программу от нее внутри своего Linux-дистрибутива и использовать ее по мере необходимости.
Источник: http://brit03.ru/os/kak-zapustit-programmu.html
Пакетные или batch файлы это обычные текстовые файлы, содержащие наборы команд интерпритатора и имеющие расширение bat или cmd (cmd работают только в ОС семейства NT). Редактировать такие файлы можно при помощи блокнота или любого другого текстового редактора.
В этом FAQ собраны рекомендации, которые были протестированы на Windows 2000. Некоторые команды и переменные, использованные при написании примеров, отсутствуют в 9х.
Как создать batch файл?
Откройте блокнот и наберите две следующих строки:
@echo This batch file
@pause
Выберите Файл — Сохранить как, выберите Тип файла — Все файлы, в поле Имя файла введите 1.bat и сохраните его в корне диска С, например. Теперь откройте диск С и запустите файл 1.bat. На экран будет выведено две строки.
This batch file
Нажмите любую клавишу для продолжения…
После нажатия любой клавиши окно закроется, т.к. bat-файл выполнен.
Обратите внимание, что символ собаки перед каждой командой в bat-файле указывает на то, что саму команду выводить на экран не надо, а нужно вывести только результат ее работы. Чтобы поэкспериментировать удалите символ собаки из начала каждой строки, сохраните и запустите полученный bat файл.
Команды, используемые в bat файлах
Список команд, которые можно использовать в bat файлах, можно просмотреть, введя в командной строке (Пуск — Выполнить — cmd для Windows семейтва NT или Пуск — Выполнить — command для линейки 9х) команду
help
Результат работы help — список доступных команд с краткими пояснениями к ним. Чтобы получить более подробную информацию по интересующей команде введите в командной строке help имя_команды. Например, чтобы получить подробную справку по ключам команды AT выполните следующую команду:
help AT
В результате, на экран будет выведен список ключей для запуска команды AT из bat файла.
Если bat файл исполняется под управлением Windows (не в чистом DOS-е), то из него можно запускать любые приложения или открывать файлы. Например, нужно автоматически открыть лог-файл работы bat файла по завершении его работы. Для этого достаточно включить в bat файл последней строкой следующую команду:
start имя_файла.txt
Результатом выполнения этой команды станет открытие файла имя_файла.txt, а сам bat файл завершит свою работу. Такой способ хорош, если лог-файл небольшого размера, иначе Блокнот откажется его открывать, предложив использовать WordPad. Но эта проблема так же решаема, что и будет показано в дальнейших примерах.
Как автоматизировать запуск bat файлов
Очень часто необходимо автоматизировать запуск bat файлов для выполнения ими рутинных операций. Для запуска bat файлов по расписанию наиболее подходит Планировщик, входящий в стандартную поставку Windows. С это помощью можно очень гибко настроить запуск пакетного файла в определенные дни или часы, с определенным интервалом. Можно создать несколько расписаний и т.д.
Для локального запуска batch файлов можно пользоваться решениями от третьих фирм, благо платных и бесплатных альтернатив стандартному Планировщику великое множество.
Batch файлы так же могут использоваться как логин-скрипты в доменах. При таком их использовании они будут исполняться при каждом входе пользователя в сеть не смотря на его желание. С их помощью можно автоматизировать сбор информации о машинах или о программном обеспечении, установленном на компьютерах пользователей, принудительно менять настройки Windows, устанавливать незаметно для пользователя программное обеспечение и автоматизировать решение других задач, ручное исполнение которых заняло бы очень много времени.
Как создать файл с произвольным именем из bat файла
Для создания файла в процессе выполнения пакетного файла используется символ перенаправления. Он выглядит так:
>
Т.е. чтобы создать файл нужно перенаправить поток с экрана в файл. Сделать это можно при помощи следующей команды:
@echo Start file>C:1.txt
После выполнения этой команды в корне диска С будет создан текстовый файл со строкой Start file.
При создании файла в его имени можно использовать системные переменные или их части. Например, можно создать файл-отчет о работе bat файла с именем, равным дате запуска bat файла. Для этого можно использовать следующие строки в bat файле.
set datetemp=%date:~-10%
@echo .>%SYSTEMDRIVE%%DATETEMP%.txt
Эти две строки работают следующим образом. Сначала в памяти создаем переменную datetemp, которой присваиваем 10 символов справа налево от системной переменной DATE. Таким образом, теперь во временной переменной datetemp содержится только текущая дата. Следующией строкой перенаправляем вывод символа точка в файл, имя которого берем из переменной datetemp, а расширение txt указываем явно. Файл будет создан на системном диске компьютера, где выполняется bat файл.
При сборе администратором информации о компьютерах в сети будет удобнее добавить к имени файла имя компьютера. Это легко можно сделать при помощи следующей команды:
@echo .>C:FolderName%COMPUTERNAME%.txt
Эта команда в ходе выполнения пакетного файла создаст на диске С текстовый файл с именем того компьютера, на котором выполняется пакетный файл.
Для создания файла с определенным именем можно использовать любые системные переменные, либо создать свои, на основе системных переменных и/или других данных.
Как создать папку из bat файла
Для создания папки используется команда MKDIR или ее сокращенный аналог MD. Для создания папки из bat файла нужно использовать следующую команду:
MD FolderName
После выполнения такой команды будет создана папка FolderName в папке, откуда запущен bat файл. Чтобы создать файл в отличном от запуска bat файла месте, например в корне диска D, используйте явное указание расположения новой папки. Команда будет выглядеть так:
MD D:FolderName
При создании папок можно пользоваться системными переменными. Например, можно создать в корне диска D папку с именем текущего пользователя. Для этого понадобится переменная %USERNAME%, а команда будет выглядеть следующим образом:
MD D:%USERNAME%
Можно еще более усложнить команду и создать папку с именем текущего пользователя на системном диске его компьютера. Команда для этого будет выглядеть так:
MD %SYSTEMDRIVE%%USERNAME%
При создании папок или файлов можно использовать любые системные переменные или их части. Следующий пример демонстрирует создание на системном диске компьютера пользователя папки с именем равным текущей дате.
set datetemp=%date:~-10%
MD %SYSTEMDRIVE%%datetemp%
Эта конструкция работает следующим образом.
Первая команда создает в памяти переменную datetemp, которая будет уничтожена по окончании работы bat файла. То тех пор, пока bat файл не закончил свою работу есть возможность оперировать со значением этой переменной. Переменной datetemp присваивается 10 символов справа налево от системной переменной DATE, т.е. от текущей даты. Переменная DATE имеет формат Дн ДД.ММ.ГГГГ. Первые символы слева — имя дня недели и поэтому мы их отбрасываем и присваиваем временной переменной datetemp только текущую дату.
Этим не ограничивается список возможностей при создании папок. Вы можете опрерировать переменными так, как удобно Вам, создавая папки с уникальными, легко читаемыми названиями. Получить список всех переменных можно при помощи команды SET.
Как перенаправить результат выполнения команд в файл
Часто, при выполнении сложного bat файла в автоматическом режиме проверить результаты его работы бывает затруднительно по многим причинам. Поэтому проще записывать результаты работы команд batch файла в текстовый файл (лог-файл). а потом анализировать правильность работы bat файла по этому логу.
Перенаправить результат работы команд bat файла в лог-файл достаточно просто. Далее будет показано, как это можно сделать.
Создайте bat-файл следующего содержания (скопируйте эти строки в Блокнот и сохраните файл с расширением bat):
@echo off
echo Start %time%
echo Create test.txt
echo test>C:test.txt
echo Copy Test.txt to Old_test.txt
copy C:test.txt C:Old_test.txt
echo Stop %time%
Первая строка отключает вывод самих команд. Таким образом, в лог-файл будут записаны только результаты их выполнения.
Вторая строка записывает в лог-файл время начала работы пакетного файла.
Третья строка записывает в лог-файл пояснение того, что следующая команда создаст файл test.txt
Команда из четвертой строки создает файл test.txt с корне диска С. Файл создается для примера. Эта команда записывает в файл C:test.txt слово test
Пятая строка выводит в лог-файл пояснение, что следующая команда выполняет копирование файла из одного места в другое.
Команда в шестой строке копирует созданный файл C:test.txt в файл C:Old_test.txt, т.е. создается копия файла под новым именем.
Последняя, седьмая строка содержит команду вывода времени завершения работы пакетного файла. В сумме с записью в лог-файл времени начала работы пакетного файла эти два значения времени дают возможность оценить время работы пакетного файла.
Сохраните этот пакетный файл под именем, например, 1.bat
Предположим, что отчет о работе пакетного файла мы бы хотели хранить в отдельной папке и каждый день записывать отчет с новым именем файла, чтобы была возможность в любой из дней обратиться к логам за предыдущие дни. Причем, имя лог-фала хотелось бы иметь в виде даты работы пакетного файла. Чтобы все это реализовать создадим на диске С (например) папку с именем LOG, т.е. полный путь к ней будет выглядеть C:LOG. Созданный пакетный файл 1.bat будем запускать следующей командой:
1.bat>C:LOG%date:~-10%.txt
Если пакетный файл будет запускаться из Планировщика, то нужно указать полный путь с bat-файлу. Помните, что если в пути есть пробелы, то надо использовать либо кавычки, либо формат 8.3. Т.е., если путь к bat-файлу C:Program Files1.bat, например, то в командной строке Планировщика для запуска bat-файла нужно указать одну из следующих строк:
"C:Program Files1.bat">C:LOG%date:~-10%.txt
C:Progra~11.bat>C:LOG%date:~-10%.txt
После запуска файла 1.bat в папке C:LOG будет создан файл с именем, равным дате запуска bat-файла, например, 13.01.2004.txt Это и будет отчет о работе пакетного файла 1.bat
Запуск bat-файла, пример которого показан в первом листинге вверху страницы, указанной выше командой, приведет к созданию лог-файла такого содержания:
Start 19:03:27,20
Create test.txt
Copy Test.txt to Old_test.txt
Скопировано файлов: 1.
Stop 19:03:27,21
Таким образом, для выполнения перенаправления результатов работы bat-файла в лог-файл нужно использовать символ перенаправления > Синтаксис таков:
ПутьИмяФайла.bat>ПутьИмяЛогФайла.txt
Расширение лог-файла может быть любым. При желании, отчет о выполнении пакетного задания можно оформить даже в виде страницы html (соответствующие теги могут быть выведены в лог-файл так, как выводились комментарии в примере 1.bat) и скопировать его на корпоративный сервер.
Как автоматически ответить на запрос о подтверждении
Некоторые команды при выполнении требуют подтверждения потенциально опасного действия. Например, такие команды как format или del предварительно запросят подтверждения на дальнейшее выполнение. Если одна из этих команд выполняется в пакетном файле, то запрос на подтверждение остановит выполнение пакетного файла и он будет ожидать от пользователя выбора одного из предложенных вариантов. Причем, если результат выполнение пакетного файла перенаправлен в лог-файл, то пользователь не увидит запроса на подтверждение и batch файл будет выглядеть зависшим.
Для исправления таких неприятностей можно перенаправить нужный ответ в команду. Т.е. выполнить обратное действие для перенаправления вывода результатов работы команды в файл.
Посмотрим на примере как выглядит запрос на подтверждение потенциально опасного действия. Создадим на диске С, например, папку Folder. Создадим в ней или скопируем в нее два любых файла. Далее, откроем командную строку и выполним следующую команду:
del C:Folder
Эта команда должна удалить все файлы из указанной папки. Но предварительно будет выдан запрос для подтверждения следующего содержания:
C:Folder*, Продолжить [Y(да)/N(нет)]?
Выполнение команды будет остановлено до тех пор, пока не будет нажата либо клавиша Y, либо клавиша N. При выполнении пакетного файла в автоматическом режиме, его исполнение остановится.
Чтобы избежать этого используем перенаправление. Перенаправление осуществляется при помощи символа
|
Вертикальная черта говорит о том, что вместо вывода символа на экран его надо «отдать» следующей за символом команде. Проверим работу перенаправления. Выполните в командной строке следующую команду:
echo Y|del C:Folder
На экране будет показан запрос на подтверждение удаления всех файлов в папке Folder, но уже с положительным ответом (Y). Все файлы из папки Folder будут удалены.
Будьте осторожны с этой командой.
Как отключить вывод на экран команд при выполнении пакетного файла
При выполнении пакетного файла на экран, помимо результатов работы команды, выводятся и сами команды. Чтобы отключить вывод команд, можно использовать символ @.
Чтобы не выводить на экран одну команду, можно поставить знак @ в начале этой команды.
echo Testing
Эта команда выведет на экран команду echo Testing, а на следующую строку — результат ее работы, слово Testing.
@echo Testing
Эта команда выведет на экран только результат работы команды, т.е. слово Testing. Сама команда выведена не будет.
Если на протяжении выполнения всего файла выводить команды на экран не нужно, то проще первой строкой в пакетном файле написать следующую команду:
@echo off
Эта команда отключит вывод команд на экран на протяжении выполнения всего пакетного файла. Чтобы сама команда не выводилась, она начинается с символа @.
Как из одного bat-файла запустить другой
Иногда, при выполнении пакетного файла, возникает необходимость запустить другой пакетный файл. Причем, в некоторых случаях, выполнение основного пакетного файла должно быть приостановлено, пока выполняется вспомогательный файл, а в других вспомогательный файл должен работать параллельно с основным.
Для примера создадим два bat файла. Один с именем 1.bat и содержащий всего одну команду
call 2.bat
Второй с именем 2.bat и также содержащий одну команду
pause
Теперь запустим файл 1.bat Откроется окно, в котором будет предложено нажать любую клавишу для продолжения, после нажатия которой окно закроется. Таким образом, вызов из одного пакетного файла другого при помощи команды call останавливает исполнение пакетного файла до тех пор, пока не завершится выполнение пакетного файла, вызванного командой call.
В другом случае, надо запустить из bat файла либо приложение, либо другой пакетный файл, не прерывая выполнения основного пакетного файла. Такое нередко бывает нужно сделать, например, принудительно открыв лог работы пакетного файла, запланированного на ночь, чтобы с утра, пользователь мог проконтролировать правильность его выполнения. Для этого используется команда start Исправим в файле 1.bat строку на
start 2.bat
и запустим файл 1.bat Теперь открылось окно, в котором для продолжения надо нажать любую кнопку, а окно основного пакетного файла (1.bat) отработав закрылось.
Таким образом, для вызова из одного пакетного файла другого, без остановки работы первого пакетного файла, нужно применять команду start.
Рассмотренные команды start и call могут использоваться не только для запуска других пакетных файлов, но и для запуска любых приложений или открытия файлов.
Например, команда start log.txt, находящаяся в теле пакетного файла, откроет файл log.txt в Notepad без остановки работы пакетного файла.
Как отправить сообщение из bat-файла
Когда пакетный файл исполняется на одной из машин в сети, то удобно проинформировать администратора об окончании его выполнения при помощи сообщения, отправленного на машину администратора. Сделать это можно, включив в пакетный файл команду
net send name Message text
Где name имя машины или пользователя, которому адресуется сообщение, а Message text — текст сообщения. После выполнения этой команды пользователю name будет отправлено сообщение.
Обратите внимание на то, что при использовании в тексте сообщения кириллицы текст должен быть набран в кодировке MS-DOS (866 кодовая страница). Иначе сообщение придет в виде нечитаемых символов. Набрать текст в кодировке DOS можно при помощи любого текстового редактора, поддерживающего эту кодировку. Это может быть, например, FAR. Откройте в FAR пакетный файл на редактирование (F4) и нажмите кнопку F8. В верхней строке редактора должна быть указана кодировка DOS, а снизу, у подсказки о быстрых клавишах, у клавиши F8 должна быть надпись Win, говорящая о том, что текущая кодировка DOS и для переключения в кодировку Win надо нажать F8.
Как автоматизировать удаление файлов по типу
Чтобы очистить диск от временных файлов можно использовать команду
del /f /s /q C:*.tmp
Где
/f — удаляет все файлы, даже если у них установлен атрибут только чтение
/s — удаляет файлы из всех подкаталогов
/q — отключает запрос на подтверждение удаления файла
C: — диск, на котором будут найдены и удалены файлы. Можно указать не весь диск, а папку, например, C:WinNT
*.tmp — тип файлов, которые будут удалены
Будьте аккуратны с ключем /q и типами удаляемых файлов. Команда удаляет, не спрашивая разрешения и при указании неправильного типа файлов может удалить лишнего.
Как изменить IP адрес компьютера из пакетного файла
IP адрес можно изменить при помощи команды netsh.
Чтобы правильно сменить IP адрес, сначала надо выяснить текущую конфигурацию. Сделать это можно в командной строке при помощи команды
netsh interface ip show address
Результат работы этой команды — отображение текущей конфигурации сетевого интерфейса. Нас интересует название интерфейса. Предположим, что он называется FASTNET.
Предположим, что нужно сменить IP адрес на 192.168.1.42, адресация в сети статическая, без использования DHCP, шлюз 192.168.1.1, маска 255.255.255.0 В этом случае, команда, которая должна быть выполнена из пакетного файла будет выглядеть следующим образом:
netsh interface ip set address name="FASTNET" static 192.168.1.42 255.255.255.0 192.169.1.1 1
После выполнения этой команды у интерфейса FASTNET IP адрес сменится на 192.168.1.42.
Команда netsh предоставляет широкие возможности по управлению сетевыми настройками из командной строки. Для ознакомления с другими ее функциональными возможностями пользуйтесь справкой при помощи netsh /?
Как узнать имя компьютера из bat файла
Чтобы узнать имя компьютера при выполнении bat файла (чтобы использовать это значение в дальнейшем) используйте команду
hostname
Эта команда возвращает имя компьютера, на котором она запущена.
Как переименовать файлы по маске из пакетного файла
Иногда возникает необходимость переименовать все файлы в папке по шаблону из пакетного файла. Сделать это можно при помощи следующей команды в bat-файле:
for /f "tokens=*" %%a in ('dir /b PATH*.*') do ren PATH%%a Prefix%%a
В этой строке надо заменить PATH на путь к файлам, которые будут переименованы, а Prefix на те символы, которые будут добавлены к имени файла при переименовании.
Не помещайте пакетный файл в папку, где происходит переименование, иначе он будет переименован тоже. Если в папке, где происходит переименование файлов есть подпапки, то к имени подпапки также будет добавлен префикс, т.е. подпапки будут переименованы как и файлы.
Если указать определенную маску для типов файлов, которые подлежат переименованию, например, *.txt, а не *.* как в примере, то будут переименованы файлы только указанных типов. Другие файлы и папки переименовываться не будут.
Второй вариант:
set thePATH=C:test
for %%I in (*.txt) do ren "%thePATH%%%~nxI" "%%~nI.dat"
Как использовать в пакетном файле символ процент
Чтобы использовать символ процент (%) в пакетном файле его надо написать дважды. Например
echo 50%%
Эта команда в bat-файле выведет на экран 50%. Если же использовать команду echo 50%, то на экран будет выведено только число 50.
Учитывайте эту особенность при использовании символа % в написании пакетных файлов.
Как из пакетного файла сделать экспорт реестра
Иногда возникает необходимость сохранить в файл определенный куст (ветку) реестра со всеми параметрами в качестве бэкапа или для других целей. Сделать это из пакетного файла можно при помощи такой команды:
regedit.exe -ea C:environment.reg "HKEY_CURRENT_USEREnvironment"
Данная команда при выполнении пакетного файла выгрузит ветку HKEY_CURRENT_USEREnvironment в файл C:environment.reg Когда потребуется восстановить значения параметров в HKEY_CURRENT_USEREnvironment, будет достаточно запустить файл environment.reg. Эту команду можно использовать для ежедневного бэкапа настроек программного обеспечения и системы, которые хранятся в реестре.
Не забывайте, что если в пути, по которому должен быть сохранен выходной файл или в имени ветки реестра есть пробел, то их необходимо заключить в кавычки.
Как из пакетного файла импортировать значения переменных реестра
Если есть необходимость из пакетного файла импортировать в реестр ранее сохраненные или новые значения переменных, то это можно сделать при помощи команды
regedit.exe -s C:environment.reg
Эта команда импортирует в реестр данные из файла environment.reg без запросов на подтверждение за счет использования ключа -s.
Как из bat файла обойти проверку даты
Некоторое программное обеспечение при запуске проверяет текущую системную дату. Если дата больше, чем заложено разработчиком, то программа не запускается. Например, разработчик считает, что версия программы может отработать месяц, а потом пользователь должен будет установить обновленную версию программы. С одной стороны это забота о пользователе, который будет иметь в своем распоряжении свежую версию программы с устраненными недочетами, по отношению к прошлым версиям. С другой стороны, производитель вынуждает пользователя скачивать новую версию даже если пользователя полностью устраивает та версия программы, которая у него установлена. Данную проблему можно легко решить при помощи следующего пакетного файла, который будет запускать программу, дожидаться ее завершения и возвращать дату на ту, которая была до запуска программы.
set tempdate=%date:~-10%
date 01-01-04
notepad.exe
date %tempdate%
В данном примере текущая системная дата сначала сохраняется в переменной, затем (во второй строке) системная дата устанавливается на 1-е января 2004 года, а потом вызывается программа, которая проверяет системную дату. В данном примере это Блокнот. До тех пор, пока открыт Блокнот, пакетный файл находится в ожидании, не завершаясь и не переводя системную дату обратно. Как только Блокнот будет закрыт, пакетный файл продолжит свое выполнение и установит системную дату на сохраненное в переменной tempdate значение, т.е. на то, которое было до запуска пакетного файла.
Не забывайте, что если путь до файла, которым запускается программа, содержит пробелы, то его (путь) необходимо заключить в кавычки. Если путь содержит кириллицу, то при написании пакетного файла необходимо использовать текстовый редактор, поддерживающий кодировку DOS (например, FAR). В противном случае, при запуске пакетного файла будет выведено сообщение о том, что «указанный файл не является внутренней или внешней коммандой…».
Если программа проверяет текущую системную дату только при своем запуске и во время работы больше этого не делает, то пакетный файл можно модифицировать, добавив перед именем исполняемого файла программы оператор start, т.е. наш пример будет выглядеть так:
set tempdate=%date:~-10%
date 01-01-04
start notepad.exe
date %tempdate%
В этом случае, пакетный файл изменит системную дату, запустит программу и не дожидаясь ее завершения вернет дату на ту, которая была до запуска программы.
Как в bat файле дождаться появления определенного файла
Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл
:test
if exist c:1.txt goto go
sleep 10
goto test
:go
notepad
Такой пакетный файл будет проверять с интервалом 10 секунд наличие в корне диска С файла 1.txt и когда файл 1.txt появится, будет выполнено действие, указанное после метки go, т.е. в этом примере будет запущен Блокнот.
Утилита sleep свободно распространяется в составе Resource Kit. Вы можете её скачать здесь.
Если файл 1.txt большого размера и копируется откуда-то, то может получится так, что пакетный файл проверит его наличие в то время, как файл еще не скопировался или занят другим приложением. В таком случае, попытка выполнить какие-то действия с файлом 1.txt приведет к ошибке. Чтобы этого не произошло пакетный файл можно модифицировать следующим образом
:test
if exist c:1.txt goto go
sleep 10
goto test
:go
rename c:1.txt 1.txt
if not errorlevel 0 goto go
del c:1.txt
Когда файл 1.txt скопировался на диск С не полностью, либо занят другим приложением, попытка его переименовать вызовет ошибку и цикл будет повторяться до тех пор, пока файл не скопируется полностью либо не будет освобожден. После того, как команда rename c:1.txt 1.txt будет выполнена без ошибки (т.е. файл свободен), то с ним можно выполнять любые действия. В последнем примере это его удаление.
Как добавить комментарии в bat-файл
При написании большого пакетного файла очень полезно добавлять комментарии к его основным блокам. Это позволит с легкостью разобраться в том, что делают эти блоки по прошествии времени.
Комментарии можно добавить несколькими способами. Первый больше годится для написания больших комментариев, описывающих либо весь пакетный файл, либо несколько больших его блоков. Код выглядит следующим образом:
goto start
———————————————————
Этот пакетный файл предназначен
для автоматизации рутинных операций,
выполняемых ночью для синхронизации
содержимого корпоративного ftp-сервера
с ftp-серверами филиалов
———————————————————
Пакетный файл написан 01/01/2004
Последнее исправление внесено 10/02/2004
———————————————————
И т.д.
:start
Такое написание комментария при запуске пакетного файла передаст управление сразу к команде, следующей за меткой start. За это отвечает оператор перехода goto.
Более простые комментарии можно добавить, начиная строки с команды rem или с двух двоеточий, идущих друг за другом.
rem Этот блок устанавливает соединение с удаленным сервером
:: Этот блок проверяет дату изменения файлов
Комментирование больших пакетных файлов (как, в принципе, и любого кода) — хороший тон, который значительно облегчает процесс разбора этих файлов другими людьми или самим автором по прошествии значительного времени с момента написания.
Автоматическое создание резервной копии данных
Favorite любезно поделился с нами небольшим скриптом, который автоматически создаёт архивную копию важных данных. Вот его сообщение:
Скрипт архивирует папку файлопомойки (\SERVERe$ Exchange)
и папку с данными юзеров (домашнюю Данные пользователей (\SERVERe$ Departments))
Скрипт не архивирует медиафайлы, так как они занимают вагон места и их потеря у меня не критична
rem *******************
rem задаём винты где лежат папки для архивирования и винт куда будем бэкапить
rem *******************
SET DRIVE1ST=d:
SET DRIVE2ND=e:
rem *******************
rem пароль на архив
rem *******************
SET PASSWD=qmsdhgsdfgsdfhdsfhsdhf
rem *******************
rem если копировать для надёжности куданить на сетку
rem *******************
rem SET COPYTO=\shpakkc$ !backup
rem ********************
rem *** Проверим путь назначения архива
rem ********************
%DRIVE1ST%
if not exist !backup md !backup
if not exist !backupDepartments md !backupDepartments
if not exist !backupExchange md !backupExchange
if not exist !backupMEDEA_rdisk md !backupMEDEA_rdisk
cd !backup
rem ******************************
rem *** Backup \SERVERe$ Exchange
rem ******************************
SET DIRNAME=Exchange
SET FILENAME=SERVER_Exchange
SET SOURCEDIR=e:Exchange
rar a -r -m5 -dh -x*.mp3 -x*.fcd -x*.avi -x*.zip -x*.rar -x*.exe -w%DRIVE2ND% -p%PASSWD% %DIRNAME%%FILENAME%_new %SOURCEDIR%*.*
if not exist %DIRNAME%%FILENAME%_new.rar goto next2
del %DIRNAME%%FILENAME%_old.rar
ren %DIRNAME%%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%%FILENAME%.rar %COPYTO%%DIRNAME%
:next2
rem ***************************
rem *** Backup \SERVERe$ Users
rem ***************************
SET DIRNAME=Departments
SET FILENAME=SERVER_Departments
SET SOURCEDIR=e:Departments
if not exist %DIRNAME%%FILENAME%_new.rar goto next3
del %DIRNAME%%FILENAME%_old.rar
ren %DIRNAME%%FILENAME%_4.rar %FILENAME%_old.rar
ren %DIRNAME%%FILENAME%_3.rar %FILENAME%_4.rar
ren %DIRNAME%%FILENAME%_2.rar %FILENAME%_3.rar
ren %DIRNAME%%FILENAME%_new.rar %FILENAME%_2.rar
:next3
rem *******************
rem это если архив будет большим — кусками бить -v357888k
rem *******************
rem rar a -r -m5 -v357888k -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -w%DRIVE2ND% -p%PASSWD% %DIRNAME%%FILENAME%_new %SOURCEDIR%
rem *******************
rem архивирование пошло, не берём мультимедиа файлы
rem *******************
rar a -r -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -x*.jpg -x*.tif -p%PASSWD% %DIRNAME%%FILENAME%_new %SOURCEDIR%
goto next4
:next4
rem **********************************
rem *** Create repair disk on \SERVER
rem **********************************
SET DIRNAME=MEDEA_rdisk
SET FILENAME=MEDEA_rdisk
SET SOURCEDIR=%windir%repair
%windir%system32rdisk.exe /s-
rar a -r -m5 -dh -w%DRIVE2ND% -p%PASSWD% %DIRNAME%%FILENAME%_new %SOURCEDIR%*.*
if not exist %DIRNAME%%FILENAME%_new.rar goto next5
del %DIRNAME%%FILENAME%_old.rar
ren %DIRNAME%%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%%FILENAME%.rar %COPYTO%%DIRNAME%
:next5
В итоге имеем 3 папки:
Departments, в ней:
SERVER_Departments_2.rar — 2х дневной давности
SERVER_Departments_3.rar — 3х дневной давности
SERVER_Departments_4.rar — 4х дневной давности
SERVER_Departments_new.rar — НОВЫЙ
SERVER_Departments_old.rar — СТАРЫЙ
Exchange
Так как архивируем обменник — он нам сильно то и не нужен храним только сегодняшний и вчерашний архивы
SERVER_Exchange.rar
SERVER_Exchange_old.rar
ну и систему на всякий в папке
SERVER_rdisk
SERVER_rdisk.rar
SERVER_rdisk_old.rar
Как запретить повторный запуск приложения
Если приложение запускается bat-файлом, то отследить (и запретить) его повторный запуск можно таким образом:
pslist.exe -e "процесс"
if %errorlevel%==1 start "" "программа"
pslist — бесплатная утилита.
Как создать папку с именем равным текущей дате
Достаточно часто необходимо создавать папку с именем равным текущей дате и затем копировать в нее, например, бэкап. Есть насколько вариантов создания такой папки:
MD %SYSTEMDRIVE%%date:~-10%
Такая команда создаст в корне системного диска папку с именем равным текущей дате. Эта команда не сработает, если региональные установки отличны от русского и в разделителях даты используется слеш. В таком случае, поможет один из следующих скриптов:
md %systemdrive%%date:~0,2%_%date:~3,2%_%date:~6,4%
или
md %systemdrive%%date:~6,4%_%date:~3,2%_%date:~0,2%
Во втором случае, папки будут сортироваться по алфавиту.
Как вариант, можно рассмотреть добавление к имени файла текущей даты:
@echo off
for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%4.%%3.%%2
ren test.txt test%mydate%.txt
Имя файла test.txt будет переименовано в test2005.03.05.txt
Можно ли зациклить в bat-файле выполнение команды?
Иногда необходимо создать bat-файл, который будет запускать некую команду через определённый интервал времени. Для решения этой задачи можно воспользоваться Планировщиком и часто запускать bat-файл из него, а можно создать в bat-файле цикл с паузой.
Цикл организуется при помощи следующих команд:
:loop
... goto loop
Паузу можно создать при помощи любой команды. Например, при помощи ping:
ping -n 1 -w 100000 192.168.254.254 >nul
-n 1 — выполнить один запрос
-w 100000 — ждать ответа 100 секунд (значение указывается в миллисекундах)
192.168.254.254 — IP адрес, который заведомо не существует в локальной сети, т.е. никогда не ответит на ping
>nul — перенаправление всего вывода команды ping в никуда.
Если вы похожи на большинство пользователей Windows, у вас есть множество замечательных маленьких утилит, которые запускаются при запуске Windows. Хотя это отлично работает для большинства приложений, некоторые из них было бы неплохо запустить даже до того, как пользователь войдет в систему на ПК. Для этого вам нужно запустить приложение как службу Windows.
Службы Windows
представляют собой специальный класс программ, которые настроены для запуска и работы в фоновом режиме, обычно без какого-либо пользовательского интерфейса и без необходимости входа пользователя в систему на ПК. Многие геймеры и опытные пользователи знают их как те вещи, которые вы отключили, чтобы ускорить работу вашей системы.
это действительно больше не нужно
.
Основное преимущество запуска приложения как службы заключается в том, что вы можете запустить программу до того, как пользователь войдет в систему. Это может быть особенно важно для приложений, которые предоставляют важные службы, которые вы хотите быть доступны, когда вы находитесь вдали от компьютера.
СВЯЗАННЫЕ С:
Понимание и управление службами Windows
Прекрасным примером этого является
Plex
, приложение медиа-сервера, которое может передавать локальный контент практически на любое ваше устройство. Конечно, вы могли бы оставить его на панели задач, как обычную программу, но что, если компьютер перезагрузится из-за отключения электроэнергии или запланированных обновлений? Пока вы снова не войдете в систему на ПК, Plex будет недоступен. Это раздражает, если вам приходится бежать в другую комнату, чтобы снова запустить Plex, пока ваш попкорн остывает, и очень раздражает, если вы находитесь за городом и пытаетесь транслировать свои медиа через Интернет. Настройка Plex как службы решит эту проблему.
Прежде чем начать, вы должны знать о нескольких важных предостережениях при запуске приложения как службы:
- Приложение не будет размещать значок на панели задач. Если вам нужен интерфейс, регулярно доступный для приложения, он может не подходить для работы в качестве службы.
- Когда вам нужно внести изменения или обновления в конфигурацию, вам нужно будет остановить службу, запустить программу как обычное приложение, сделать то, что вам нужно, остановить программу, а затем снова запустить службу.
-
Если программа уже настроена для запуска при запуске Windows, вам необходимо отключить ее, чтобы не было запущено два экземпляра. У большинства программ есть опция в интерфейсе для переключения этого параметра. Другие могут добавить себя в ваш
Папка автозагрузки
, чтобы вы могли удалить их там.
Готовы катиться? Поговорим о том, как это настроить.
Шаг первый: установите SrvStart
Чтобы запустить приложение как услугу, вам понадобится небольшая сторонняя утилита. Их несколько, но наш любимый —
SrvStart
. Первоначально он был разработан для Windows NT и будет работать практически с любой версией Windows, начиная с Windows XP.
Для начала перейдите в
Страница загрузки SrvStart
и возьмите утилиту. Скачивание содержит всего четыре файла (два DLL и два EXE-файла). Установщика нет; вместо этого скопируйте их на свой компьютер
C: Windows
вложите их в основную папку Windows, чтобы «установить» SrvStart.
Мы также предполагаем, что вы уже установили и настроили любую программу, которую собираетесь превратить в службу, но если вы этого не сделали, сейчас подходящий момент для этого.
Шаг 2. Создайте файл конфигурации для новой службы
Затем вам нужно создать файл конфигурации, который SrvStart будет читать для создания службы. Вы можете многое сделать с помощью SrvStart, и вы можете прочитать полную информацию обо всех параметрах конфигурации на
страница документации
. В этом примере мы будем использовать только две команды:
запускать
, который указывает программу для запуска, и
shutdown_method
, который сообщает SrvStart, как закрыть программу, когда соответствующая служба остановлена.
Запустите Блокнот и создайте файл конфигурации, используя формат, указанный ниже. Здесь мы используем Plex, но вы можете создать файл для любой программы, которую хотите запустить как службу. В
запускать
команда просто указывает путь, по которому находится исполняемый файл. Для
shutdown_method
команда, мы используем
сообщение
Параметр, который заставляет SrvStart отправлять сообщение о закрытии Windows в любые окна, открытые службой.
[Plex] startup = "C: Program Files (x86) Plex Plex Media Server Plex Media Server.exe" shutdown_method = winmessage
Очевидно, измените путь и имя в соответствии с программой, которую вы запускаете.
Сохраните новый файл конфигурации в любом месте и замените расширение .txt на .ini. Запомните имя файла, оно нам понадобится на следующем шаге. Для упрощения ввода в командной строке мы предлагаем временно сохранить этот файл прямо на диске C :.
Шаг третий: используйте командную строку для создания новой службы
Следующим шагом будет использование команды Windows Service Controller (SC) для создания новой службы на основе критериев в вашем файле конфигурации. Откройте командную строку, щелкнув правой кнопкой мыши меню «Пуск» (или нажав Windows + X), выбрав «Командная строка (администратор)», а затем щелкнув Да, чтобы разрешить запуск с правами администратора.
В командной строке используйте следующий синтаксис для создания новой службы:
SC CREATE <servicename> Displayname = "<servicename>" binpath = "srvstart.exe <servicename> -c <путь к файлу конфигурации srvstart>" start = <starttype>
В этой команде нужно отметить несколько моментов. Во-первых, после каждого знака равенства (=) стоит пробел. Это обязательно. Так же
<servicename>
ценность полностью зависит от вас. И, наконец, для
<тип запуска>
значение, вы хотите использовать
авто
так что служба запускается автоматически с Windows.
Итак, в нашем примере с Plex команда будет выглядеть так:
SC CREATE Plex Displayname = "Plex" binpath = "srvstart.exe Plex -c C: PlexService.ini" start = auto
Да, вы правильно прочитали: я использовал
C: PlexService.ini
вместо того
C: PlexService.ini
. Команда требует убрать косую черту.
Когда вы запустите команду, вы должны получить сообщение УСПЕХ, если все пойдет хорошо.
С этого момента ваша новая служба будет запускаться при каждом запуске Windows. Если вы откроете интерфейс служб Windows (просто нажмите «Пуск» и введите «Службы»), вы сможете найти и настроить новую службу так же, как любую другую.
Вот и все. Если у вас есть приложения, запускаемые с Windows, и вы предпочитаете, чтобы они запускались без необходимости входа пользователя в систему, достаточно легко превратить любое приложение в службу. Мы только что коснулись основного метода создания и запуска новой службы, но с помощью SrvStart вы можете сделать гораздо больше, чтобы точно настроить работу службы. Обязательно ознакомьтесь с документацией, если хотите узнать больше.