예약 된 작업을 만드는 PowerShell 스크립트를 만들고 있습니다. Windows GUI를 사용하여 설정 대화 상자에서 "기존 인스턴스 중지"로 설정하면 프로그램이 이미 실행중인 경우 종료됩니다. XML을 통해이 작업을 내보낼 때 필드는 다음과 같이 레이블이 지정됩니다.
<Settings>
<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
</Settings>
그러나 PowerShell에서 이것을 작성할 때 IgnoreNew
, Parallel
및에 대한 옵션 만 있습니다 Queue
. StopInstace
PowerShell을 통해 사용하는 방법이 있습니까?
내 코드는 다음과 같습니다.
$Action = New-ScheduledTaskAction -Execute 'cmd.exe' -Argument "/c 'command'"
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionDuration (New-TimeSpan -Days (365 * 20)) -RepetitionInterval (New-TimeSpan -Minutes 33)
**$Setting = New-ScheduledTaskSettingsSet -MultipleInstances StopInstance**
Register-ScheduledTask -Action $Action -Trigger $Trigger -Setting $Setting -TaskName "Microsoft Windows > Monitoring Service" -Description "Command Runner"
StopInstance
열거 값은 현재 지원하지 않습니다 ScheduledTasks
모듈.
대신 CIM 속성 값을 직접 설정할 수 있습니다.
$Action = New-ScheduledTaskAction -Execute 'cmd.exe' -Argument "/c 'ver'"
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionDuration (New-TimeSpan -Days (365 * 20)) -RepetitionInterval (New-TimeSpan -Minutes 33)
$Setting = New-ScheduledTaskSettingsSet
$Setting.CimInstanceProperties.Item('MultipleInstances').Value = 3 # 3 corresponds to 'Stop the existing instance'
Register-ScheduledTask -Action $Action -Trigger $Trigger -Setting $Setting -TaskName "Microsoft Windows > Monitoring Service" -Description "Command Runner"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다