Используйте команду Powershell в командном файле - PullRequest
0 голосов
/ 03 мая 2020

Я хочу использовать эту команду powershell для регистрации задачи в планировщике задач в моем файле .bat. У меня также есть много других команд. Я хочу сохранить все в одном пакетном файле и не создавать сценарий .ps1 специально для этой команды powershell. ОДНАКО, этот PowerShell не работает в пакетном файле. Что с ним не так.

Это то, что говорит ошибка: Register-ScheduledTask : The parameter is incorrect. At line:1 char:4

Это команда в командном файле:

powershell -command " &{Register-ScheduledTask -Xml (get-content "C:\Users\Disables_Updates.xml" | out-string) -TaskName "\Disables_Updates" -User $env:USERNAME –Force}"

Ответы [ 3 ]

0 голосов
/ 03 мая 2020
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2017-10-18T21:42:31.187986</Date>
<Author>DESKTOP-6YUJ091\R</Author>
<URI>\Disables_Updates</URI>
</RegistrationInfo>
<Triggers>
<BootTrigger>
<Enabled>true</Enabled>
</BootTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>false</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>true</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT1M</Interval>
<Count>9</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<Command>"C:\Windows\Disables_Updates.bat"</Command>
</Exec>
</Actions>
</Task>
0 голосов
/ 04 мая 2020

Согласно моему комментарию, это всего лишь текстовые файлы, и экспорт / импорт из источника в пункт назначения должен быть наиболее прямым для вас. В большинстве случаев нет необходимости возиться с необработанными XML файлами.

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

0 голосов
/ 03 мая 2020

Двойные кавычки внутри двойных кавычек обычно не работают. Убери внутренние, которые тебе все равно не нужны. Возможно, вы захотите настроить запуск задачи в качестве группы «Пользователи», а затем экспортировать xml, если хотите, чтобы все пользователи запускали его. -force требуется только если вы хотите перезаписать задачу. xml должен быть передан в виде одной строки с параметром -raw.

powershell "get-content -raw c:\users\disables_updates.xml | Register-ScheduledTask \Disables_Updates –Force"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...