Windows 无法使用PS4将新任务注册到远程服务器

Windows 无法使用PS4将新任务注册到远程服务器,windows,powershell,Windows,Powershell,我想将新任务注册到远程服务器。 但是,我在Register ScheduledTask命令中提到了error at-Trigger选项 代码 错误 Register-ScheduledTask : パラメーター 'Trigger' の引数変換を処理できません。値 "Microsoft.PowerShell.ScheduledJob.Sched uledJobTrigger" を型 "Microsoft.Management.Infrastructure.CimInstance[]" に変

我想将新任务注册到远程服务器。 但是,我在Register ScheduledTask命令中提到了error at-Trigger选项

代码

错误

Register-ScheduledTask : パラメーター 'Trigger' の引数変換を処理できません。値     "Microsoft.PowerShell.ScheduledJob.Sched
uledJobTrigger" を型 "Microsoft.Management.Infrastructure.CimInstance[]" に変換できません。エラー: "値 "Microsoft.Power
Shell.ScheduledJob.ScheduledJobTrigger" を型     "Microsoft.Management.Infrastructure.CimInstance" に変換できません。エラー
: "無効な名前空間です ""
+ CategoryInfo          : InvalidData: (:)[Register-ScheduledTask]、    ParameterBindingArgumentTransformationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Register-ScheduledTask
如果您需要更多信息来解决此问题,请告诉我。
谢谢。

我建议您使用PowerShell远程处理,因为注册任务的命令是在远程会话中执行的,而不是通过本地计算机的CIM会话执行的

例如:

$session = New-PSSession -ComputerName "hostname" -Credential (Get-Credential)

Invoke-Command -Session $session -ScriptBlock {

$tasks = @(("script1", "args1", "04:00:00", "name1"), ("script2", "args2", "04:30:00", "name2"))

foreach ($task in $tasks) {

    #setting action
    $action = New-ScheduledTaskAction -Execute $task[0] -Argument $task[1] -WorkingDirectory "C:\unyo\script\"

    #setting trigger
    $trigger = New-ScheduledTaskTrigger -Daily -at $task[2]

    #register new task
    Register-ScheduledTask -TaskPath "\" -TaskName $task[3] -User "SYSTEM" -RunLevel Highest -Action $action -Trigger $trigger

}
}

这描述了如何启用远程处理


希望有帮助。

请将错误翻译成英语。很可能您在从字符串到TimeSpan或DateTime的时间转换中出错,无论触发器需要什么参数。我可以做我想做的!谢谢你的快速回答。
$session = New-PSSession -ComputerName "hostname" -Credential (Get-Credential)

Invoke-Command -Session $session -ScriptBlock {

$tasks = @(("script1", "args1", "04:00:00", "name1"), ("script2", "args2", "04:30:00", "name2"))

foreach ($task in $tasks) {

    #setting action
    $action = New-ScheduledTaskAction -Execute $task[0] -Argument $task[1] -WorkingDirectory "C:\unyo\script\"

    #setting trigger
    $trigger = New-ScheduledTaskTrigger -Daily -at $task[2]

    #register new task
    Register-ScheduledTask -TaskPath "\" -TaskName $task[3] -User "SYSTEM" -RunLevel Highest -Action $action -Trigger $trigger

}