gpt4 book ai didi

powershell - 如何找出Register-ScheduledTask参数集出了什么问题?

转载 作者:行者123 更新时间:2023-12-02 23:34:40 29 4
gpt4 key购买 nike

我有一个(很不幸)很长的PowerShell脚本,可以构建整个服务器实例。即:安装了所有文件,添加了所有系统设置,依此类推。它要做的最后一件事是添加一个计划任务,以便在计算机启动时运行“主”程序。但是,我从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

最佳答案

错误消息Parameter set cannot be resolved using the specified named parameters.表示参数包含错误的组合。让我们see the docs

您正在使用-InputObject,它是在可用的四个签名之一中定义的,如下所示:

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

您还使用了 -Description,该签名在上面的签名中不存在。但是,它有两个不同的签名可用,这两个签名都不支持 -InputObject。由于参数不匹配,因此Powershell会向您抛出上述错误。

若要解决此问题,请使用有效的参数集调用该cmdlet。由于 -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

关于powershell - 如何找出Register-ScheduledTask参数集出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297001/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com