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

powershell - Powershell New-ScheduledTaskSettingsSet-LMLPHP

但是实际的功能使我只能选择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

10-06 08:45