Verfügen Sie über ein Powershell-Skript, mit dem eine geplante Aufgabe für die Bereitstellung über Octopus auf einem Windows 2012-Server erstellt wird.Hinzufügen eines zweiten Auslösers im Aufgabenplan
Function Create-ScheduledTask($TaskName,$RunAsUser,$TaskRun,$Schedule,$StartTime,$StartDate,$Arguments,$RunWithElevatedPermissions,$Days,$Password){
# set up
$Command = "schtasks.exe /create /ru `"$RunAsUser`" /tn `"$TaskName`" /tr `"'$($TaskRun)' $Arguments`" $cmdSchedule $cmdDays $cmdStartDate $cmdStartTime /F $cmdInterval $cmdDuration $cmdRunLevel $cmdPassword"
echo $Command
Invoke-Expression $Command
}
Der Versuch, einen weiteren Trigger als Teil der gleichen Aufgabenname hinzuzufügen, in der Befehlszeile wird nicht mit schtasks.exe
arbeiten, die scheinbar die GUI widerspricht, wo es getan werden kann.
Dies ist die Funktion, die zum Erstellen des Ereignisauslösers verwendet wurde, idealerweise zum Anfügen an dieselbe geplante Aufgabe.
Function Create-ScheduledTaskEvent($TaskName,$RunAsUser,$TaskRun,$Arguments,$RunWithElevatedPermissions,$Password, $xPath, $channelName){
$cmdRunLevel = if(-Not $RunWithElevatedPermissions){""}else{"/rl HIGHEST"}
$cmdPassword = if([string]::IsNullOrEmpty($Password)){""}else{"/rp `"$Password`""}
$cmdXPath = if([string]::IsNullOrEmpty($xPath)){""}else{"/sc ONEVENT /MO `"$xPath`" "}
$cmdRunLevel = if(-Not $RunWithElevatedPermissions){""}else{"/rl HIGHEST"}
$Command = "schtasks.exe /create $cmdRunLevel /ru `"$RunAsUser`" $cmdXPath /tn `"$TaskName`" /tr `"'$($TaskRun)' $Arguments`" /ec `"$channelName`" "
echo $Command
Invoke-Expression $Command
}
Ausgabe ist, ersetzt den Schalter /create
mit /change
beendet nur die vorherige geplante Aufgabe der Trigger/Aktion clobbering auf.
Eine Idee, wie dies über schtasks.exe
in der Befehlszeile getan werden kann, um die Trigger zu einem zu kombinieren.
Es könnte durch die Schaffung eines separaten Arbeitsplan mit unterschiedlichen Aufgabenname getan werden, es ist aber nicht ideal, noch ist Aufgabe als XML exportieren und dann in den Import zurück.
ist erwähnt hat, dass exportierende/Das Importieren von XML ist nicht ideal. Trotzdem danke. – tombags
Ja, ich säe es. Aber das ist die einzige relativ einfache Implementierung, die ich gefunden habe. Sie können es erweitern und das XML bei Bedarf dynamisch ändern. Wie @Matt fragt, warum Sie den XML-Weg nicht verwenden möchten? – autosvet