When creating a service with sc.exe how to pass in context parameters?

I’ve spent the last 2 hours trying every conceivable way to create a service using sc.exe and pass arguments but I can’t seem to get it right.

I’ve read this SO question and all the answers about 5 times and it’s been no help!

From what I read there it seems I should construct the command like this:

sc create MyService binPath= "C:\path\to\myservice.exe --param1=TestString"

My Service OnStart method looks like this:

Protected Overrides Sub OnStart(ByVal args() As String)
    If Not IsNothing(args) Then
        Library.WriteLog("Number of args = " & args.Count)
        If args.Count > 0 Then
            For i = 0 To args.Count - 1
                Library.WriteLog("Arg" & i & ": " & args(i))
            Next
        End If
    End If
End Sub

But everything I’ve tried yields “Number of Args = 0” in the log

sc create MyService binPath= "C:\path\to\myservice.exe --param1=TestString"
sc create MyService binPath= "C:\path\to\myservice.exe --TestString"
sc create MyService binPath= "C:\path\to\myservice.exe --param1=\"TestString\""
sc create MyService binPath= "C:\path\to\myservice.exe -param1=TestString"
sc create MyService binPath= "C:\path\to\myservice.exe -TestString"
sc create MyService binPath= "C:\path\to\myservice.exe -param1=\"TestString\""

I must be missing something really silly here but I’m banging my head off a wall with it!

type=
<serviceType>

own

sc create

own

start=
<startType>

  • auto – A
    service that automatically starts each time the computer is restarted.
  • demand – A
    service that must be manually started. This is the default value if
    start= is not specified.
    demand maps to
    Manual in the Services Control Manager.
  • delayed-auto
    The SCM supports delayed auto-start services to improve system performance at
    boot time without affecting the user experience. The SCM makes a list of
    delayed auto-start services during boot and starts them one at a time after the
    delay has passed, honoring dependencies. There is no specific time guarantee as
    to when the service will be started.
  • disabled – A
    service that cannot be started. To start a disabled service, change the start
    type to another start value.

error=
<errorSeverity>

  • normal – The
    error is logged and a message box is displayed informing the user that a
    service has failed to start. System startup will continue. This is the default
    setting.
  • severe – The
    error is logged (if possible). The computer attempts to restart with the
    last-known-good configuration. This could result in the computer being able to
    restart, but the service may still be unable to run.
  • critical – The
    error is logged (if possible). The computer attempts to restart with the
    last-known-good configuration. If the last-known-good configuration fails,
    system startup also fails, and the boot process halts with a Stop error.
  • ignore – The
    error is logged and startup continues. No notification is given to the user
    beyond recording the error in the Event Log.

group= <loadOrderGroup>

tag= yes|no

depend=
<dependencies>

obj=
<accountName>

LocalSystem

password=
<password>

obj

LocalSystem

displayname=
<displayName>

ESService

Oracle Endeca Server

Cannot retrieve contributors at this time

Creates a subkey and entries for a service in the registry and in the Service Control Manager database.

Syntax

<div data-snippet-clipboard-copy-content="sc.exe [] create [] [type= {own | share | kernel | filesys | rec | interact type= {own | share}}] [start= {boot | system | auto | demand | disabled | delayed-auto}] [error= {normal | severe | critical | ignore}] [binpath= ] [group= ] [tag= {yes | no}] [depend= ] [obj= { | }] [displayname= ] [password= ]”>

sc.exe [<servername>] create [<servicename>] [type= {own | share | kernel | filesys | rec | interact type= {own | share}}] [start= {boot | system | auto | demand | disabled | delayed-auto}] [error= {normal | severe | critical | ignore}] [binpath= <binarypathname>] [group= <loadordergroup>] [tag= {yes | no}] [depend= <dependencies>] [obj= {<accountname> | <objectname>}] [displayname= <displayname>] [password= <password>]

Parameters

Remarks

  • Each command-line option (parameter) must include the equal sign as part of the option name.

  • A space is required between an option and its value (for example, type= own. If the space is omitted, the operation fails.

Examples

To create and register a new binary path for the NewService service, type:

sc.exe \\myserver create NewService binpath= c:\windows\system32\NewServ.exe
sc.exe create NewService binpath= c:\windows\system32\NewServ.exe type= share start= auto depend= +TDI NetBIOS

Related links

<!– –>

using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
    public partial class Timer_Service : ServiceBase
    {
        public Timer_Service()
        {
            InitializeComponent();
        }
        static void Main()
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Timer_Service service = new Timer_Service();
                service.OnStart(null);
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Timer_Service()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
        }
        protected override void OnStop()
        {            
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
        }
    }
}

Remove static void main method from Program.cs file.
Than save and Build your project.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe

Note: -i is for install he service and -u for Unsinstall.

after -i set the write the path where you want to install your service.

C:\TimerService\TimerService\bin\Debug>net start service_name

Note: use stop for stop the Service.

Now, open ViewEventLog.exe. Select Windows Logs>Application. There you can check your Service’s log by start and stop the service.

Services for Windows

Intro

Instead of creating Windows services and Linux daemons, nowadays you might think about using Docker instead. Docker orchestrators can be used to monitor and scale containers. Before creating a Windows service, you might think about this alternative. However, there are still many scenarios where Windows services are of great use.

Windows Services

Create a Worker

Let’s start creating a Windows service by creating a background worker. With .NET 6, a background worker can be created using Visual Studio or the dotnet CLI command dotnet new worker.

The top-level statements created with this application use the Host class. The method CreateDefaultBuilder contains functionality to setup the dependency injection container, configuration, and logging. The dependency injection container managed by the Host class is configured by invoking the method ConfigureServices. In the generated code, the extension method AddHostedService is used to register a background class that implements the interface IHostedService. This interface is indirectly implemented by the Worker class by deriving from the base class BackgroundService. The interface IHostedService defines the methods StartAsync and StopAsync. Adding a hosted service, invoking the Run method of the host starts the host and in turn invokes the startup of the IHostedService.

Worker Service - Host configuration

The Worker class derives from the class BackgroundService. BackgroundService implements the interface IHostedService and defines the abstract method ExecuteAsync. This abstract method is called by the StartAsync method in the BackgroundService. StartAsync is defined by the IHostedService interface. With the implementation of the Worker class, ExecuteAsync uses an endless loop (until cancellation is requested) and writes a log message once a second.

Worker

Logging configuration is read from the section Logging within the configuration settings. Using the worker template, the configuration file appsettings.json defines logging based on the log level. The default configuration is set to Information:

Logging configuration

If the application runs on a Windows system, the method CreateDefaultBuilder also adds logging to the Windows event log and sets a filter provider to only log warnings and more critical issues to this provider.

Running the application, log information is written to the console. The worker writes a message every second.

info: SimpleWorkerService.Worker[0]
      Worker running at: 03/17/2022 10:45:55 +01:00
info: SimpleWorkerService.Worker[0]
      Worker running at: 03/17/2022 10:45:56 +01:00
info: SimpleWorkerService.Worker[0]
      Worker running at: 03/17/2022 10:45:57 +01:00
info: SimpleWorkerService.Worker[0]
      Worker running at: 03/17/2022 10:45:58 +01:00
info: SimpleWorkerService.Worker[0]
      Worker running at: 03/17/2022 10:45:59 +01:00

Convert to a Windows Service

To build a Windows Service, you just need to add the NuGet package Microsoft.Extensions.Hosting.WindowsServices, and add the method invocation UseWindowsService to the IHostBuilder fluent API:

DI Config

To see information level logging in the Windows event log, the filter is explicitly applied with the ConfigureLogging method used with the host builder. The UseWindowsService method configures the source name the same as the application name. This information is overwritten configuring the EventLogSettings. In addition to setting the SourceName property of the EventLogSettings, the LogName is set which creates a separate category for logging shown in the Event Viewer.

Because the EventLogLoggerProvider and the EventLogSettings classes are only available on Windows, the OperatingSystem class is used to check if the application is running on Windows before this API is invoked. In case your application is not used to run on Linux, you can use the SupportedOSPlatform attribute instead. You can also specify <TargetPlatform> and specify a Windows Target Framework Moniker.

Installing and Managing the Windows Service

dotnet publish -c Release -o c:\sampleservice
sc create "Sample Service" binPath= c:\sampleservice\SimpleWorkerService.exe

Using sc create, you can configure the account with which the service should run (the default is LocalSystem), services which are required to be started before this service (depend), and more.

The status of the service can be queried using the Services MMC, or with the command line sc query:

sc query "Sample Service"

After the service is created, it is stopped and need to be started:

sc start "Sample Service"

To stop and delete the service, the sc stop and sc delete commands can be used.

:/>  Имя для папки на компьютере или др. устройствe какой смешно и оригинально должно быть?

After starting the service, log information can be seen with the Windows Event Viewer. Because the LogName property was set, there’s a separate category with Application and Services Logs:

Windows Event Viewer Log

Passing Arguments

Reading Command-Line Arguments

When creating the service using sc create, pay attention to leave a blank after the binPath option. You can supply the parameters within the quotes:

sc create "Sample Service" binPath= "c:\sampleservice\SimpleWorkerService.exe --p1=one --p2=two"

Web Application as Windows Service

What about hosting Kestrel as a Windows Service? There’s not a lot difference using the package Microsoft.Extensions.Hosting.WindowsServices – in principle just the API UseWindowsService needs to be invoked. Let’s get into details using the .NET 6 WebApplicationBuilder class.

A Web API project can be created using dotnet new webapi. This template creates an API returning random weather information. With the option –use-minimal-apis, controllers are not used, and the complete functionality of the API can be defined with top-level statements. The parameter –no-https specifies to create an implementation with HTTP. Using HTTPS, it’s necessary to create and configure a certificate that’s used by the account running the service. Depending on the scenario how you use this Windows service, HTTP can be ok.

dotnet new webapi --use-minimal-apis --no-https -o ASPNETCoreWindowsService

The UseWindowsService method is an extension method for IHostBuilder. With .NET 6, WebApplication and WebApplicationBuilder are used instead of the Host and HostBuilder classes. Of course, you can also change the code to the old .NET 5 version. WebApplication offers an abstraction layer of the Host class and makes it easier to configure ASP.NET Core middleware. With .NET 5, the Startup class has been used. Instead of using the Startup class now everything can be done with top-level statements. The Minimal API makes use of C# 10 features and adds some APIs, e.g. a new overload of the MapGet method. Using the WebApplicationBuilder class, the functionality of the IHostBuilder can be accessed using the Host property. This property returns a ConfigureHostBuilder instance which implements the interface IHostBuilder. Here you can use the extension method UseWindowsService like before. The UseWindowsService extension method configures the content root path to AppContext.BaseDirectory for the Windows service. Because the CreateBuilder method already needs this directory, this directory needs to be specified with the WebApplicationOptions as shown. To specify a log category with the Windows event logs, the EventLogSettings are configured as before with the console application:

Windows Services with ASP.NET Core

The Kestrel server can be configured accessing the WebHost property of the WebApplicationBuilder, invoking the method ConfigureKestrel. With the sample application, the Kestrel server is configured using appsettings.json:

Kestrel Configuration

Weather Forecast

Accessing the Windows Service from a different system, the Firewall needs to be configured to allow accessing this port from the outside.

Linux Daemons

What about running this application on Linux? The method UseWindowsService checks if it’s running on Windows as a Windows service, and returns if this is not the case. With this you can run the application on the Linux system as well. To create a Linux daemon, you can add the NuGet package Microsoft.Extensions.Hosting.Systemd, and invoke the method UseSystemd. What’s different is the configuration of systemd. To use systemd with WSL-2, you can use Distrod to run your Ubuntu environment. See a link below for Distrod.

Take away

Starting with .NET 3, the Host class was introduced which abstracts configuration for logging, dependency injecction, and configuration in one place. Extension methods make it easy to offer more features. With this, using the NuGet package Microsoft.Extensions.Hosting.WindowsServices just one API method is required to create a Windows Service. This way, background functionalty based on the worker template, but also hosting a Kestrel server for offering ASP.NET Core Web applications and services is an easy task.

If you like this article, it would be great if you buy a coffee:

type=
<serviceType>

own

sc create

own

start=
<startType>

error=
<errorSeverity>

group= <loadOrderGroup>

tag= yes|no

depend=
<dependencies>

obj=
<accountName>

LocalSystem

password=
<password>

obj

LocalSystem

displayname=
<displayName>

MService

Endeca MDEX Engine

Время на прочтение

When creating a service with sc.exe how to pass in context parameters?
When creating a service with sc.exe how to pass in context parameters?

Теперь запускаем командную строку от имени администратора вставляем команду:

sc.exe create IPBAN type=own start=delayed-auto binPath=c:\ipb\DigitalRuby.IPBan.exe DisplayName=IPBAN


! ещё раз, текст ниже курсивом – ЭТО ТОЛЬКО ДЛЯ 2008/2008R2, не вздумайте запрещать NTLM на новых версиях ОС Windows Server !

! перед тем как начать вносить изменения настоятельно рекомендую или иметь физический доступ к серверу или проверить работоспособность сторонних программ для удаленного подключения – Anydesk, Rudesktop и т.д.

В командной строке от администратора вводим команду:

sc create IPBAN binPath= c:\ipb\DigitalRuby.IPBan.exe DisplayName= “IPBAN”

Дальше нужно запретить всё NTLM (а заодно и доступ к общим папкам на сервере для WinXp и Win7):

Открываем редактор групповых политик (gpedit.msc) и идём по пути:

Конфигурация компьютера > Конфигурация Windows > Политики безопасности > Локальные политики > Параметры безопасности > Сетевая безопасность: ограничения NTLM: входящий трафик

When creating a service with sc.exe how to pass in context parameters?

Выбираем Запретить все учетные записи и надеемся что ничего не отвалится.

Всё, возвращаемся к более “свежим ОС” или продолжаем настройку “старого” сервера:


и жмем Enter, должно выйти так (не забываем путь указать свой, у меня C:\ipb):

Если всё ок, пишет Успех
Если всё ок, пишет Успех

Теперь надо сконфигурировать настройки IPBAN под наши нужды, открываем в текстовом редакторе файл ipban.config (C:\ipb\ipban.config), нажимаем CTRL+F5 и по порядку:

1) добавим в исключения нашу локальную сеть (например, у нас сеть 192.168.1.*), ищем <add key=”Whitelist” value= и пишем:

<add key="Whitelist" value="192.168.1.0/24"/>

3) По умолчанию продолжительность бана сутки, но если хочется изменить эту настройку ищем ExpireTime и пишем нужный период времени на блокировку, я указал ради примера 10 часов:

<add key="ExpireTime" value="00:10:00:00"/>

When creating a service with sc.exe how to pass in context parameters?

Сохраняем наш файл, осталось запустить нашу службу и при необходимости добавить её в автозапуск. Перед запуском убедитесь что у вас работает именно брандмауэр Windows, если используется сторонний, например от антивируса, то работать IPBAN не будет.

Открываем службы, находим службу IPBan и для первого раза я рекомендую её просто запустить, и проверить всё ли работает как надо, если за несколько дней проблем не будет можно выбрать автозапуск:

When creating a service with sc.exe how to pass in context parameters?

После успешного запуска автоматически создадутся правила в брандмауэре Windows. Там можно просмотреть заблокированные IP адреса и удалить ненужный на случай “особого работника”, чтобы не ждать пока снимется блокировка:

When creating a service with sc.exe how to pass in context parameters?

Надеюсь, эта статья поможет Вам избавиться от многих проблем с не очень хорошими людьми, которые любят жить за ваш счёт.

:/>  Aimp музыка из вк

SchTasks – управление планировщиком заданий из командной строки Windows.

Планировщик заданий

taskschd.msc

Schtask.exe

Утилита schtasks.exe является стандартным средством управления планировщиком и позволяет создавать, удалять, изменять и опрашивать запланированные задачи на локальном или удаленном компьютере.

Подробнее о планировщике заданий, свойствах задач и краткое описание стандартных системных заданий.

Формат командной строки SchTask:

    /Create         Создание запланированной задачи.

    /Delete         Удаление запланированной задачи или задач.

    /Query          Вывод данных о всех запланированных задачах.

    /Change         Изменение свойств запланированной задачи.

    /Run            Выполнение запланированной задачи по требованию.

    /End            Остановка выполняющейся запланированной задачи.

    /ShowSid        Отображение идентификатора безопасности, соответствующего
                    имени запланированной задачи.

    /?                  Вывод справки по использованию.

Справку по отдельным параметрам команды можно получить используя:

SCHTASKS /Run /? – подсказка по использованию /Run

SCHTASKS /End /? – подсказка по использованию /End

SCHTASKS /ShowSid /?

Создание задач для планировщика заданий.

Для создания новых задач используется следующий формат командной строки:

SCHTASKS /Create [/S <система> [/U <пользователь> [/P [<пароль>]]]]
    [/RU <имя_пользователя> [/RP <пароль>]] /SC <расписание>
    [/MO <модификатор>] [/D <день>]
    [/M <месяцы>] [/I <простой>] /TN <имя_задания> /TR <выполнение>
    [/ST <время_начала>]
    [/RI <интервал>] [ {/ET <время_окончания> | /DU <длительность>} [/K]
    [/XML xmlfile] [/V1]]
    [/SD <дата_запуска>] [/ED <дата_окончания>] [/IT | /NP] [/Z] [/F]

    /S    <система>    Удаленная система для подключения.
                       Если параметр не задан
                       по умолчанию система считается локальной.

    /U   <имя_пользователя> Контекст, в котором будет выполняться команда
                       SchTasks.exe 

    /P   [<пароль>]    Пароль для указанного пользовательского контекста.
                       Запрос ввода, если не указан.

    /RU   <пользователь> Учетная запись (пользовательский контекст)
                       под которой выполняется задача. Для системной учетной записи
                       допустимыми значениями являются "", "NT AUTHORITY\SYSTEM"
                       или "SYSTEM".
                       Кроме того, для задач v2 доступны параметры 
                       NT AUTHORITY\LOCALSERVICE и  NT AUTHORITY\NETWORKSERVICE, 
                       также как и известные идентификаторы безопасности
                       для всех трех параметров. 

    /RP  [<пароль>]    Пароль указанного пользователя. 
                       Для запроса пароля следует указать
                       "*" или пустую строку. Этот пароль не используется для 
                       системной учетной записи. Необходимо сочетать с параметрами /RU или
                       ключ /XML.

    /SC   расписание   Задает частоту повторения задачи.
                       Допустимы следующие типы расписания: MINUTE, HOURLY, DAILY, WEEKLY, 
                       MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.

    /MO   <модификатор>      Уточнение типа расписания для более детального контроля за
                       периодичностью. Допустимые значения перечислены в 
                       одноименном разделе.

    /D    <день>       День недели, на который запланировано выполнение задачи. Допустимые 
                       значения: MON, TUE, WED, THU, FRI, SAT, SUN и для
                       расписаний типа MONTHLY - с 1 по 31 (дни месяца). 
                       Подстановочный знак "*" указывает все дни.

    /M    месяцы       Месяцы в году. По умолчанию запуск выполняется в первый 
                       день месяца. Допустимые значения: JAN, FEB, MAR, APR, 
                       MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC. Подстановочный знак "*" 
                       указывает все месяцы.

    /I    <время_простоя>    Время простоя, которое необходимо выждать, 
                       прежде чем запускать запланированную задачу ONIDLE.
                       Допустимые значения: 1-999 мин

    /TN   <имя_задачи>       Имя, однозначно идентифицирующее
                       запланированную задачу.

    /TR   <программа>        Путь и имя файла программы, которая должна быть 
                       запущена в назначенное время.
                       Пример: C:\windows\system32\calc.exe

    /ST    <время_начала>    Время запуска задачи. Формат 
                       указания времени: ЧЧ:мм (24-часовой), например, 14:30 
                       вместо 2:30 PM. Если параметр /ST не задан, то по 
                       умолчанию используется текущее время.  Этот параметр
                       должен использоваться вместе с /SC ONCE.

    /RI   <интервал>   Интервал повторения в минутах. Этот параметр 
                       неприменим для следующих типов расписания:
                       MINUTE, HOURLY, ONSTART, ONLOGON, ONIDLE, ONEVENT.
                       Допустимый диапазон значений: 1-599940 мин
                       Если указан параметр /ET или /DU, то по умолчанию 
                       используется 10 мин

    /ET    <время_завершения>  Время завершения выполнения задачи.
                       Формат указания времени:
                       ЧЧ:мм (24-часовой), например, 14:50 вместо 2:50 PM.
                       Этот параметр неприменим для следующих типов расписания: ONSTART, 
                       ONLOGON, ONIDLE, ONEVENT.

    /DU    <длительность>     Длительность выполнения задачи. Формат 
                       указания времени: ЧЧ:мм. Не применяется с ключом /ET и
                       расписаниями следующих типов: ONSTART, ONLOGON,
                       ONIDLE, ONEVENT.
                       Для задач /V1, если указан параметр /RI, по умолчанию используется 
                       до 1 часа.

    /K                 Завершение задания по достижении времени завершения или при превышении длительности. 
                       Этот параметр неприменим для следующих типов расписания: ONSTART, 
                       ONLOGON, ONIDLE, ONEVENT. Параметр /ET или /DU должен быть
                       указано.

    /SD    <дата_начала>      Дата первого запуска задачи. Формат: 
                       dd/mm/yyyy. По умолчанию используется текущая 
                       дата. Этот параметр неприменим для следующих типов расписания: ONCE, 
                       ONSTART, ONLOGON, ONIDLE, ONEVENT.

    /ED   <дата_завершения>  Дата последнего запуска задачи. Формат: 
                       dd/mm/yyyy. Не применяется для 
                       расписаний следующих типов: ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.

    /EC   <имя_канала>  Канал событий для триггеров OnEvent.

    /IT                Разрешает интерактивное выполнение задачи в том случае,
                       если пользователь /RU 
                       выполнил вход в систему во время выполнения задания.
                       Задание выполняется, только если пользователь вошел в
                      систему.
    /NP                пароль не сохраняется.  Задача выполняется в неинтерактивном режиме.
                       как указанный пользователь.  Доступны только локальные ресурсы.

    /Z                 Пометка задачи для удаления, если не предусмотрено ее
                       повторное выполнение.
    /XML  <файл_xml>   Создание задачи из указанного файла XML.
                       Нельзя сочетать с переключателями /RU и /RP или /RP 
                       один, если XML-файл задачи уже содержит участника.

    /V1                Создание задачи, видимой для платформ,
                       предшествовавших версии Vista.
                       Несовместим с параметром /XML.

    /F                 Принудительное создание задачи и подавление
                       предупреждающих сообщений, если 
                       указанная задача уже существует.

    /RL   <уровень>    Уровень выполнения задачи. Допустимые значения: 
                       LIMITED и HIGHEST. По умолчанию используется LIMITED.

    /DELAY <время задержки>   Время ожидания перед запуском 
                       задачи после включения триггера.
                       Формат указания времени:
                       мммм:сс.  Этот параметр применим только к типам
                       расписания
                       ONSTART, ONLOGON, ONEVENT.

    /?                 Вывод справочного сообщения.

Модификаторы: ключ /MO предусматривает следующие значения:
    MINUTE:  1 - 1439 мин.
    HOURLY:  1 - 23 ч.
    DAILY:   1 - 365 дней.
    WEEKLY:  недели с 1 по 52.
    ONCE:    без модификаторов.
    ONSTART: без модификаторов.
    ONLOGON: без модификаторов.
    ONIDLE:  без модификаторов.
    MONTHLY: 1 - 12 или 
             FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY.

    ONEVENT:  строка запроса событий XPath.
    ==> Создание документа назначенного задания на удаленном компьютере "ABC"
        для запуска notepad.exe каждый час от имени пользователя "выполняющий". 

        SCHTASKS /Create /S ABC /U пользователь /P пароль /RU выполняющий
                 /RP пароль_выполняющего /SC HOURLY /TN doc /TR notepad 

    ==> Создание контроллера назначенного задания на удаленном компьютере 
        "ABC" для запуска calc.exe каждые пять минут начиная с указанного
        времени начала до времени окончания между датами начала и окончания.

        SCHTASKS /Create /S ABC /U домен\пользователь /P пароль /SC MINUTE
                 /MO 5 /TN контроллер /TR calc.exe /ST 12:00 /ET 14:00
                 /SD 06/06/2016 /ED 06/06/2016 /RU  выполняющий
                 /RP пароль_пользователя

    ==> Создание назначенного задания "игра" для запуска программы freecell 
        в первое воскресенье каждого месяца.

        SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN игра 
                 /TR c:\windows\system32\freecell

    ==> Создание "отчета" назначенного задания на удаленном компьютере "ABC"
        для запуска notepad.exe каждую неделю.

        SCHTASKS /Create /S ABC /U пользователь /P пароль /RU выполняющий
                 /RP пароль_выполняющего /SC WEEKLY /TN отчет /TR notepad.exe

    ==> Создание назначенного задания "журнал" на удаленном компьютере "ABC"
        для запуска notepad.exe каждые пять минут начиная с указанного
        времени начала без времени окончания. Выводится приглашение /RP
        на ввод пароля.

        SCHTASKS /Create /S ABC /U домен\пользователь /P пароль /SC MINUTE
                 /MO 5 /TN журнал 
                 /TR c:\windows\system32\notepad.exe /ST 18:30
                 /RU выполняющий /RP

    ==> Создание назначенного задания "игра" для запуска freecell.exe
        начиная с 12:00 с автоматическим завершением в 14:00 ежедневно.

        SCHTASKS /Create /SC DAILY /TN игра /TR c:\freecell /ST 12:00
                 /ET 14:00 /K
    ==> Создает назначенное задание "EventLog" для запуска eventvwr.msc, 
        которое запускается, когда событие 101 публикуется в канале системы
        SCHTASKS /Create /TN EventLog /TR wevtvwr.msc /SC ONEVENT
                 /EC System /MO *[System/EventID=101] 
    ==> Если пути к файлам содержат пробелы, следует использовать две 
        пары кавычек: одну пару - для файла CMD.EXE, а другую - для 
        SchTasks.exe.  Внешние кавычки для файла CMD должны быть двойными, 
        а внутренние кавычки - одинарными или двойными кавычками с обратной
        косой чертой:
        SCHTASKS /Create 
           /tr "'c:\program files\internet explorer\iexplorer.exe' 
           \"c:\log data\today.xml\"" ... 

Изменение задач для планировщика заданий.

Для изменения параметров существующих задач используется команда SCHTASKS /Change, позволяющая
выполнить изменение запускаемой программы, учетной записи пользователя или пароля, использующегося
запланированной задачей, а также запланированные временные интервалы.


SCHTASKS /Change [/S <система> [/U <имя_пользователя> [/P [<пароль>]]]]
                 /TN <задача>
     { [/RU <имя_пользователя>] [/RP <пароль>]
       [/TR <программа>] [/ST <время_запуска>]
       [/RI <интервал>] [ {/ET <время_окончания> | /DU <длительность>} [/K] ]
       [/SD <начальная_дата>] [/ED <конечная_дата>] [/ENABLE | /DISABLE]
       [/IT] [/Z] }

    /S  <система>          Удаленная система для подключения.

    /U   <имя_пользователя>  Контекст, в котором будет выполняться команда schtasks.exe 

    /P  [<пароль>]         Пароль для указанного пользовательского контекста. 
                           Запрос ввода, если не указан.

    /TN <имя_задачи>       Имя задачи, параметры которой изменяются.

    /RU <имя_пользователя> Изменяет имя пользователя (пользовательский
                           контекст), в котором выполняется 
                           запланированная задача. Для системной учетной записи 
                           допустимыми значениями являются "",
                           "NT AUTHORITY\SYSTEM" и "SYSTEM".
                         Кроме того, для задач v2 доступны параметры NT 
                         AUTHORITY\LOCALSERVICE и NT AUTHORITY\NETWORKSERVICE,
                         также как и известные идентификаторы безопасности
                         для всех трех параметров. 
    /RP      <пароль>    Новый пароль для текущего пользовательского 
                         контекста или новой учетной записи. 
                         Этот пароль не используется для системной учетной записи.

    /TR     <программа>  Новая программа, которая будет запускаться 
                         запланированной задачей.

    /ST    <время_начала>    Время запуска задачи. Формат 
                         указания времени: ЧЧ:мм (24-часовой), например, 14:30 
                         до 14:30.

    /RI     <интервал>   Интервал повторения в
                         минутах. Допустимый диапазон значений: 1-599940 мин

    /ET    <время_завершения>    Время завершения выполнения задачи. Формат 
                         указания времени: ЧЧ:мм (24-часовой), например, 14:50 
                         до 14:50:00.

    /DU    <длительность>     Длительность выполнения задачи. Формат 
                         указания времени: ЧЧ:мм. Неприменим для ключа /ET.

    /K                   Завершение задания по достижении времени завершения
                         или при превышении длительности.

    /SD    <дата_начала>      Дата первого запуска задачи. 
                         Формат: dd/mm/yyyy.

    /ED   <дата_завершения>  Дата последнего запуска задачи. 
                         Формат: dd/mm/yyyy.

    /IT                  Разрешает интерактивное выполнение задачи в том 
                         случае, если пользователь /RU выполнил вход
                         в систему во время выполнения задания. Задание
                         выполняется, только если пользователь вошел
                         в систему.

    /RL    <уровень>     Уровень выполнения задачи. Допустимые значения: 
                         LIMITED и HIGHEST. По умолчанию значение не изменяется.

    /ENABLE              Разрешение выполнения запланированной задачи.

    /DISABLE             Запрещение выполнения запланированной задачи.

    /Z                   Пометка задачи для удаления, если не предусмотрено ее
                         повторное выполнение.

    /DELAY <время задержки> Время ожидания перед запуском задачи
                         после включения триггера. Формат указания времени:
                         мммм:сс.  Применяется только к типам расписания
                         ONSTART, ONLOGON, ONEVENT.

  /?                     Вывод справки по использованию.

SCHTASKS /Change /RP password /TN “Архивация и восстановление” – изменить пароль пользователя,
используемый для запланированной задачи с именем “Архивация и восстановление”

:/>  Не удается найти DNS-адрес сервера

SCHTASKS /Change /TR rstrui.exe /TN “Запуск средства восстановления” – изменить программу,
которая будет выполняться для задачи с именем “Запуск средства восстановления”

Опрос состояния задач для планировщика заданий.

Для опроса состояния запланированных задач на локальном или удаленном компьютере используется команда
schtasks /query

SCHTASKS /Query [/S <система> [/U <имя_пользователя> [/P [<пароль>]]]]
                [/FO <формат>]
         [/FO формат | /XML [тип_xml]] [/NH] [/V] [/TN имя_задачи] [/?]

    /S    <система>      Удаленная система для подключения.

    /U   <имя_пользователя>  Контекст, в котором
                         будет выполняться команда schtasks.exe.

    /P    [<пароль>]     Пароль для указанного пользовательского
                         контекста. Запрос ввода, если не указан.

    /FO  <формат>        Формат вывода данных.
                         Допустимые значения: TABLE, LIST, CSV.

    /NH                  Указывает, что строка заголовков столбцов
                         не отображается при выводе. Это требуется
                         только для формата TABLE.

    /V                   Вывод подробных сведений о задании.

    /TN   имя_задачи     Указывает имя задачи, для которой 
                         извлекается информация, в противном случае для всех.

    /XML  [тип_xml]      Определения задач в формате XML.

                         Если тип_xml имеет значение ONE, будет получен один
                         действительный XML-файл.

                         Если параметр тип_xml отсутствует, будет выдано:

                         объединение всех определений задач XML.

    /?                   Вывод справки по использованию.

SCHTASKS /Query – отобразить состояние всех запланированных задач на локальном компьютере.

schtasks /query /tn \Microsoft\Windows\Registry\RegIdleBackup – отобразить состояние задачи резервного копирования реестра Windows 7 / 8 на локальном компьютере.

SCHTASKS /Query /FO TABLE /NH – вывод данных в виде таблицы без полей заголовка.

schtasks /Query /S Server /TN “avast! Emergency Update” – опросить состояние задачи “avast! Emergency Update” на удаленном компьютере Server, для подключения к которому
используется учетная запись текущего пользователя.

schtasks /Query /S Server > C:\tasksServer.txt – вывод в текстовый файл C:\tasksServer.txt информации о запланированных задачах на удаленном компьютере Server

Пример выводимых данных:


schtasks /Query /XML ONE /S Server /TN “avast! Emergency Update” >Avast.xml – вывести в формате XML
данные запланированной задачи “avast! Emergency Update” . Пример выводимой информации:

Запуск, остановка и удаление запланированных задач.

Для запуска запланированной задачи в данный момент времени используется команда SCHTASKS /RUN :

SCHTASKS /Run [/S <система> [/U <имя_пользователя> [/P [<пароль>]]]] [/I] /TN <задача>
    /S    <система>      Удаленная система для подключения.

    /U   <имя_пользователя>  Контекст, в котором
                         будет выполняться команда schtasks.exe.

    /P     [<пароль>]    Пароль для указанного пользовательского
                         контекста. Запрос ввода, если не указан.

    /I                   Выполнить задачу немедленно, игнорируя любые
                         ограничения.

    /TN   <имя_задачи>   Имя запланированной задачи, которая должна быть
                         запущена.

    /?                   Вывод справки по использованию.

SCHTASKS /Run /I /TN “System Backup” – выполнить на локальном компьютере задачу “System Backup” немедленно, игнорируя любые ограничения.

Для завершения запущенной планировщиком заданий задачи используется команда :

SCHTASKS /End [/S <система> [/U <имя_пользователя> [/P [<пароль>]]]]
         /TN <задача>

    /S    <система>                   Удаленная система для подключения.

    /U   <имя_пользователя>  Контекст, в котором
                                                будет выполняться команда schtasks.exe.

    /P     [<пароль>]                 Пароль для указанного пользовательского
                                                 контекста. Запрос ввода, если не указан.

    /TN   <имя_задачи>           Имя запланированной задачи для остановки.

    /?                                          Вывод справки.

Примеры:

    SCHTASKS /End /? 
    SCHTASKS /End /TN "Архивация"
    SCHTASKS /End /S <система> /U <пользователь> /P <пароль>
             /TN <"Архивация и восстановление">

Для удаления одной или нескольких запланированных задач используется команда:

SCHTASKS /Delete [/S <система> [/U <имя_пользователя> [/P [<пароль>]]]] 
         /TN <имя_задачи> [/F]

    /S   <система>      Удаленная система для подключения.

    /U   <имя_пользователя>  Контекст, в котором
                        будет выполняться команда schtasks.exe.

    /P    [<пароль>]    Пароль для указанного пользовательского
                        контекста. Запрос ввода, если не указан.

    /TN  <имя_задачи>   Имя удаляемой запланированной задачи. 
                        Для удаления всех задач можно использовать
                        подстановочный знак "*".

    /F                  Принудительное удаление задачи с подавлением
                        всех сообщений, если указанное задание выполняется
                        в настоящее время.

    /?                    Вывод справки по использованию.

Примеры:
    SCHTASKS /Delete /TN * /F
    SCHTASKS /Delete /TN <"Архивация и восстановление">
    SCHTASKS /Delete /S <система> /U <пользователь> /P <пароль> /TN
             <"Восстановление">
    SCHTASKS /Delete /S <система> /U <пользователь> /P <пароль> /TN <"Архивация"> /F

В операционных системах Windows Vista и старше, добавлен параметр SHOWSID для отображения идентификатора безопасности (SID) пользователя, под учетной записью которого будет выполняться запланированная задача:


SCHTASKS /ShowSid /TN имя_задачи

Выполнение данной команды возможно только на локальной системе. Отображается идентификатор учетной записи , в контексте которой будет выполняться запланированная задача:


УСПЕХ: ИД безопасности "S-1-5-87-2329472845-559684683-1933506305-79090395-3844037043" для 
пользователя "avast! Emergency Update" успешно вычислен.

Работе с запланированными заданиями в графической консоли управления Microsoft , а также примерам
изменения действий и параметров стандартных системных заданий, посвящена отдельная статья – Планировщик заданий Windows.
Там же приведен текст командного файла для отключения группы системных заданий, полезность которых весьма сомнительна.

Запуск командных файлов от имени администратора без запроса UAC – использование планировщика заданий для запуска приложений
от имени Администратора без запроса системы контроля учетных записей UAC.


Весь список команд CMD Windows

Parameters for created services have some peculiar formating issues, in particular if the command includes spaces or quotes:

If you want to enter command line parameters for the service, you have to enclose the whole command line in quotes. (And always leave a space after binPath= and before the first quote, as mrswadge pointed out)

binPath= "PATH\COMMAND.EXE --param1=xyz"
        ^^                             ^
        ||                             |
  space    quote                     quote

If the path to the executable contains spaces, you have to enclose the path in quotes.

So for a command that has both parameters and a path with spaces, you need nested quotes.
You have to escape the inner quotes with backslashes \". The same holds if the parameters themselves contain quotes, you will need to escape those too.

Despite using backslashes as escape characters, you do not have to escape the regular backslashes contained in the path. This is contrary to how you normally use backslashes as escape characters.

So for a command like
"PATH WITH SPACES \COMMAND.EXE" --param-with-quotes="a b c" --param2:

binPath= "\"PATH WITH SPACES \COMMAND.EXE\" --param-with-quotes=\"a b c\" --param2"
         ^ ^                 ^           ^                      ^       ^         ^
         | |                 |           |                      |       |         | 
 opening     escaped      regular     escaped                    escaped       closing
   quote     quote       backslash    closing                    quotes          quote
     for     for            in         quote                      for              for
   whole     path          path       for path                  parameter        whole
 command                                                                       command

Here is a concrete example from the SVNserve documentation, which shows all special cases:

sc create svnserve 
   binpath= "\"C:\Program Files\CollabNet Subversion Server\svnserve.exe\" --service -r \"C:\my repositories\"  "
   displayname= "Subversion Server" depend= Tcpip start= auto 

(linebreaks are added for readability, do not include them)

This would add a new service with the command line "C:\Program Files\CollabNet Subversion Server\svnserve.exe" --service -r "C:\my repositories".

So in summary

Оставьте комментарий