Powershell New-ScheduledTaskSettingsSet
Powershell New-ScheduledTaskSettingsSet
我尝试使用自定义设置添加 New-ScheduledTaskSettingsSet。根据 Technet,MultipleInstances
有可能的选项,包括 StopExisting
值。
但实际的 powershell 只允许我选择 Parallel
、Queue
或 IgnoreNew
。
为什么我不能使用 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
我尝试使用自定义设置添加 New-ScheduledTaskSettingsSet。根据 Technet,MultipleInstances
有可能的选项,包括 StopExisting
值。
但实际的 powershell 只允许我选择 Parallel
、Queue
或 IgnoreNew
。
为什么我不能使用 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