Sie machen das zu kompliziert.
Zeitplanaufgaben sind nur XML-Dateien. Erstellen Sie eine Aufgabe manuell, exportieren Sie sie und importieren Sie sie mithilfe der geplanten Task-Cmdlets auf andere Server.
Get-Command -Name '*scheduled*' | ft -a CommandType Name Version Source ----------- ---- ------- ------ Function Disable-ScheduledTask 1.0.0.0 ScheduledTasks Function Enable-ScheduledTask 1.0.0.0 ScheduledTasks Function Export-ScheduledTask 1.0.0.0 ScheduledTasks Function Get-ClusteredScheduledTask 1.0.0.0 ScheduledTasks Function Get-ScheduledTask 1.0.0.0 ScheduledTasks Function Get-ScheduledTaskInfo 1.0.0.0 ScheduledTasks ...
Beispiel:
# Create your task $A = New-ScheduledTaskAction –Execute 'powershell' -Argument 'Hello, from task scheduler' $T = New-ScheduledTaskTrigger -Weekly -WeeksInterval 1 -DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -At 8am $S = New-ScheduledTaskSettingsSet $D = New-ScheduledTask -Action $A -Trigger $T -Settings $S $Task = Register-ScheduledTask 'TestTask' -InputObject $D # View the created task XML Get-Content -Path 'C:\Windows\System32\Tasks\TestTask' | Out-GridView Get-ChildItem -Path 'C:\Windows\System32\Tasks' Export-ScheduledTask 'TestTask' | out-file '\\TargetServer\c$\public\TestTask.xml' Invoke-Command -ComputerName 'TargetServer' -ScriptBlock { Register-ScheduledTask -Xml (Get-Content 'C:\Users\public\TestTask.xml' | out-string) -TaskName 'TestTask' }
Verwenden Sie einfach eine Liste von Servern in einer Schleife der Registrierung