Powershell New-ScheduledTaskSettingsSet

Powershell New-ScheduledTaskSettingsSet

我尝试使用自定义设置添加 New-ScheduledTaskSettingsSet。根据 Technet,MultipleInstances 有可能的选项,包括 StopExisting 值。

但实际的 powershell 只允许我选择 ParallelQueueIgnoreNew

为什么我不能使用 StopExisting

如果你看一下 MultipleInstances 属性 是如何定义的,你会发现它的类型实际上是 而不是 TaskMultipleInstancePolicy , 但生成的类型名为 MultipleInstancesEnum:

PS C:\>(New-ScheduledTaskSettingsSet |Get-Member MultipleInstances).Definition
System.Object MultipleInstances {get=[Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($this.PSBase.CimInstanceProperties['MultipleInstances'].Value);set=$this.PSBase.CimInstanceProperties['MultipleInstances'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($args[0]);}

这已被归档为 bug on Microsoft Connect,如果你想改变它,请投票。

报告者还建议将值设置为 StopExisting:

的解决方法
$StopExisting = New-ScheduledTaskSettingsSet
$StopExisting.CimInstanceProperties['MultipleInstances'].Value=3