marabunta
Goto Top

Mit Powershell einen Task erstellen

Hallo,

ich habe diese Funktion fast komplett aus dem Internet.
Powershell kenne ich schon ne weile aber mit dieser Funktion komme ich nicht zurecht =/.
ComObjecte sind soweit ich weiß in Powershell nicht besonders gesprächig was Hilfe angeht.

Was soll es eigentlich tun?
Auf vielen Rechnern mit unterschiedlichen Benutzern(es gibt nicht den Benutzer der überall verwendbar wäre) eine Aufgabe erzeugen und ein Skript mit Adminrechten starten.
Alles was nicht nötig ist kann bei der Antwort gekürzt werden.

Das Problem: Wie startet es mit dem Computerstart und nicht täglich?

  1. EDIT: LÖSUNG : $Trigger = $triggers.Create(8) statt 2

Es muss mit PS 2.0 funktionieren

Function Create-ScheduledTask()
{
$Service = New-Object -ComObject("Schedule.Service")
$Service.Connect("localhost") # Der Ort wo es ausgeführt wird?! Was könnte da ggf. sonst hin?
$RootFolder = $Service.GetFolder("\")
$TaskDefinition = $Service.NewTask(0) # ist die 0 eine Indexnummer und überschreibt evtl. einen anderen Task?!
$RegistrationInfo = $TaskDefinition.RegistrationInfo
$RegistrationInfo.Date = '2011-03-02T08:00:00.000000'
$RegistrationInfo.Description = "Run a powershell script through a scheduled task"
$TaskPrincipal = $TaskDefinition.Principal
$TaskPrincipal.RunLevel = 1 # was ist das?
$Settings = $TaskDefinition.Settings
$Settings.Enabled = $True
$Settings.StartWhenAvailable = $True
$Settings.Hidden = $True
$Settings.ExecutionTimeLimit = "PT1H"
          1. MultipleInstances values: * Parallel = 0
          2. * Queue = 1
          3. * IgnoreNew = 2
          4. * StopExisting = 3
$Settings.MultipleInstances = 3
$Settings.DisallowStartIfOnBatteries = $False
$Settings.StopIfGoingOnBatteries = $False
$Settings.AllowHardTerminate = $False
$Settings.StartWhenAvailable = $True
$Settings.IdleSettings.StopOnIdleEnd = $False
$Settings.IdleSettings.RestartOnIdle = $False
$Settings.IdleSettings.WaitTimeOut = $Null
$Settings.IdleSettings.IdleDuration = $Null
$Settings.ExecutionTimeLimit = "PT1H"
#Can't find these properties in Schedule.Service
#$Settings.DisallowStartOnRemoteAppSession = $False
#$Settings.UseUnifiedSchedulingEngine = $False
$Triggers = $TaskDefinition.Triggers
$Trigger = $triggers.Create(2) # 2 = ?
$Trigger.StartBoundary = "2011-03-29T23:00:10"
$Trigger.DaysInterval = 1
$Trigger.Id = "DailyTriggerId"
$Trigger.Enabled = $True
$Trigger.ExecutionTimeLimit = "PT4H"
$Action = $TaskDefinition.Actions.Create(0) # 0 = ?
$Command = '%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe'
$CommandArguments = "& 'Z:\Test\Test.ps1'"
$Action.Path = $Command
$Action.Arguments = $CommandArguments
#Syntax: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381365%28v=vs ...
$Rootfolder.RegisterTaskDefinition('Run a powershell script through a scheduled task', $TaskDefinition, 6, "System", $null , 5)
}
Create-ScheduledTask

Content-Key: 253810

Url: https://administrator.de/contentid/253810

Printed on: April 19, 2024 at 02:04 o'clock

Mitglied: 114757
114757 Nov 04, 2014 updated at 20:06:02 (UTC)
Goto Top
Moin,
die einzelnen Eigenschaften des Com-Objekts sind hier alle schön dokumentiert:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383607(v=vs.8 ...
Dort findest du für alle deine Fragen die entsprechenden Antworten.

Gruß jodel32
Member: Marabunta
Marabunta Nov 04, 2014 at 20:35:27 (UTC)
Goto Top
der link steht auch in der funktion, den hab ich mir angesehen und weiß was ich brauch aber nicht wo ich es wie anwende.
Mitglied: 114757
114757 Nov 04, 2014 updated at 20:37:45 (UTC)
Goto Top
Zitat von @Marabunta:
der link steht auch in der funktion, den hab ich mir angesehen und weiß was ich brauch aber nicht wo ich es wie anwende.
stimmt nicht, das ist ein anderer und dort findest du 200% alles, hab ich doch gerade nachgesehen !!
Mitglied: 114757
Solution 114757 Nov 04, 2014 updated at 21:43:11 (UTC)
Goto Top
Beispiel:
$TaskDefinition = $Service.NewTask(0) # ist die 0 eine Indexnummer und überschreibt evtl. einen anderen Task?!
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383470(v=vs.8 ...
This parameter is reserved for future use and must be set to 0.

Beispiel 2
$TaskPrincipal.RunLevel = 1 # was ist das?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa382076(v=vs.8 ...
1 = Tasks will be run with the highest privileges.

Beispiel 3
$Trigger = $triggers.Create(2) # 2 = ?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383898(v=vs.8 ...

2 = Triggers the task on a daily schedule. For example, the task starts at a specific time every day, every-other day, every third day, and so on.

du bist nur zu faul etwas zu lesen ...sorry
Member: Marabunta
Marabunta Nov 04, 2014 at 21:29:03 (UTC)
Goto Top
nein ich hatte nur verständnisprobleme bei der anwendung. jetzt weiß ich genug. danke