Как выяснить, что не так с наборами параметров Register-ScheduledTask? - PullRequest
1 голос
/ 09 октября 2019

У меня (к сожалению) очень и очень длинный скрипт PowerShell, который создает весь экземпляр сервера. То есть: все файлы установлены, все системные настройки добавлены и так далее. Последнее, что он делает, это добавляет запланированное задание для запуска программы «master» при загрузке компьютера. Тем не менее, я получаю ошибку от Register-ScheduledTask, и я действительно не вижу, что не так. Это мой ПЕРВЫЙ сценарий PowerShell.

Я играл с передачей различных параметров, например, без использования -InputObject и использованием отдельных объектов подмножества. Я удалил некоторые дополнительные параметры (например, -Description, -Password, -RunLevel и т. Д.), Но всегда получаю один и тот же результат (за исключением того, что отсутствие передачи какой-либо информации выдает ошибку, что, конечно, нет никаких действий).

$INSTALL = "C:\PPC\MCPSuite" # hardcoded for example
$TASKPWD = "1234567890" # ditto
$action = New-ScheduledTaskAction -Execute "${INSTALL}\MCPSuite.exe" -WorkingDirectory "$INSTALL"
$owner = New-ScheduledTaskPrincipal -UserId "dnpapps" -LogonType "Password" -RunLevel "Highest"
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Seconds 0) -Priority 4
$trigger = New-ScheduledTaskTrigger -AtStartup -RandomDelay (New-TimeSpan -Minutes 1)
$task = New-ScheduledTask -Action $action -Principal $owner -Trigger $trigger -Settings $settings
Register-ScheduledTask -TaskName "PPC-MCPSuite-Test" -Description "MCP Suite Manager" -InputObject $task -Password "$TASKPWD" -RunLevel Highest -Force

Вот сообщение об ошибке:

Register-ScheduledTask : Parameter set cannot be resolved using the specified named parameters.
At C:\Users\levy\MCP-Installer\MCPv2\task.ps1:14 char:1
+ Register-ScheduledTask -TaskName "PPC-MCPSuite-Test" -Description "MC ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Register-ScheduledTask], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Register-ScheduledTask

1 Ответ

0 голосов
/ 09 октября 2019

Сообщение об ошибке Parameter set cannot be resolved using the specified named parameters. означает, что параметры содержат неверную комбинацию. Давайте посмотрим документы .

Вы используете -InputObject, и оно определено в одной из четырех доступных подписей, например:

Register-ScheduledTask
        [-Force]
        [-InputObject] <CimInstance>
        [[-Password] <String>]
        [[-User] <String>]
        [[-TaskName] <String>]
        [[-TaskPath] <String>]
        [-CimSession <CimSession[]>]
        [-ThrottleLimit <Int32>]
        [-AsJob]
        [<CommonParameters>]

Вы также используете-Description, которого нет в подписи выше. Однако он доступен в двух разных сигнатурах, ни одна из них не поддерживает -InputObject. Поскольку аргументы не совпадают, Powershell выдает вышеуказанную ошибку.

Чтобы устранить проблему, вызовите командлет с допустимым набором параметров. Поскольку -InputObject $task, кажется, содержит настройки задачи, передайте описание в нем. Может быть, что-то вроде этого,

$task = New-ScheduledTask -Action $action -Principal $owner -Trigger $trigger -Settings $settings -Description "MCP Suite Manager" 
Register-ScheduledTask -TaskName "PPC-MCPSuite-Test" -InputObject $task -Password "$TASKPWD" -RunLevel Highest -Force
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...