Как запланировать задачу, вошел ли пользователь в PowerShell или нет?

У меня проблема с тем, как сделать запланированное задание для запуска независимо от того, вошел ли пользователь в систему или нет. Это должно быть сделано в PowerShell. Что я сделал, это:

$WINDIR/system32/schtasks.exe /create /tn TaskName /sc daily /st 15:05:00 /tr "C:\cygwin\opt\IBM\tpchc\bin\tools\TheFileToRun.bat"

Но могу ли я предоставить дополнительный аргумент, заставляющий эту задачу выполняться независимо от того, вошел ли пользователь в систему или нет?

Если это невозможно сделать в Powershell, то возможно ли сделать это на другом языке сценариев?

Спасибо:)

4 ответа

Решение

Вам нужно будет указать пользователя (например, /RU system), но это должно быть по умолчанию для запуска в системе или нет. Вы можете посмотреть по этой ссылке список всех schtasks.exe параметры.

Если вы добавите

/RU <username> /RP <password>

на вызов schtasks.exe вы выберете "Запустить, вошел ли пользователь в систему или нет".

Вместо этого вы также можете использовать /NP, что также даст вам "Запустить, пользователь вошел в систему или нет", но также "Не хранить пароль...", что ограничит доступные ресурсы.

Если вы используете общую учетную запись:

      /RU {accountName} /RP {password}

Если вы используете учетную запись gMSA:

      /RU {accountName}$ /RP 

У меня есть рабочее решение, просто добавьте это:

/RU "NT AUTHORITY\SYSTEM" /RP *

Будет работать как система и игнорировать пароль, проверено на XP

Другие вопросы по тегам