Wie schreibe ich diesen Powershell 2.0-Befehl, der eine geplante Aufgabe erstellt, um einen anderen Powershell-Befehl auszuführen?

In jeder Hinsicht bin ich ein Anfänger mit PS.

Der Befehl, den ich ausführen möchte (er funktioniert, wenn er manuell ausgeführt wird), lautet:

(mir ist klar, dass Teile wahrscheinlich redundant sind)

Start-Process -WindowStyle hidden "$psHome\powershell.exe "- verb runas-ArgumentList "- Datei c:\distributedfiles\source.ps1 -ErrorAction SilentlyContinue "

Ich möchte, dass dieser ^ Befehl von einer geplanten Aufgabe ausgeführt wird, die über erstellt werden muss powershell.

Ich habe solche Dinge ausprobiert wie:

Schtasks.exe /create /"backuptest / tr "c:\distributedfiles "" Powershell.exe `-executionpolicy unrestricted-file c:\distributedfiles\source.ps1 -verb runas -erroraction silentlycontinue`" /d Mo /sc once /st 12:33 /rl {/f / z

Ohne Erfolg. Ich weiß, dass ich mit meiner Syntax weit von der Marke entfernt bin. Hilfe wäre willkommen!

Bearbeiten: In diesem Fall wäre es einfacher, nur 2. ps1-Dateien mit mein Start-Process-Befehl, es würde von einer geplanten Aufgabe aufgerufen - dann mein Hauptquellskript aufrufen? Ich stelle mir das irgendwie am einfachsten vor.

Author: Will, 2020-01-27

1 answers

Dies ist nicht neu und wurde mit Beispielen im Web dokumentiert.

Versuchen Sie dieses Q&A

Erstellen einer neuen geplanten Aufgabe mit Powershell v2 aus XML

$task_path = "c:\Temp\tasks\*.xml"
$task_user = "Administrator"
$task_pass = "mypass"

$sch = New-Object -ComObject("Schedule.Service")
$sch.connect("localhost")
$folder = $sch.GetFolder("\")

Get-Item $task_path | %{
    $task_name = $_.Name.Replace('.xml', '')
    $task_xml = Get-Content $_.FullName

    $task = $sch.NewTask($null)

    $task.XmlText = $task_xml

    $folder.RegisterTaskDefinition($task_name, $task, 6, $task_user, $task_pass, 1, $null)
}

schtasks.exe /Create /XML C:\task.xml /tn taskname

, Oder hier: so Erstellen Sie eine Geplante Aufgabe, PowerShell 2.0 -

In Powershell 2.0 (Windows 7, Windows Server 2008 R2), um eine wiederholte Aufgabe (ScheduledJob) in PowerShell können Sie verwenden Zeitplan.Service-COM-Schnittstelle. In diesem Beispiel erstellen wir eine geplante aufgabe, die wird führen Sie die spezifische Datei aus, die das PowerShell-Skript enthält während des Starts. Die Aufgabe wird mit den Systemberechtigungen ausgeführt.

$TaskName = "NewPsTask"
$TaskDescription = "Running PowerShell script from Task Scheduler"
$TaskCommand = "c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe"
$TaskScript = "C:\PS\StartupScript.ps1"
$TaskArg = "-WindowStyle Hidden -NonInteractive -Executionpolicy unrestricted -file $TaskScript"
$TaskStartTime = [datetime]::Now.AddMinutes(1)
$service = new-object -ComObject("Schedule.Service")
$service.Connect()
$rootFolder = $service.GetFolder("\")
$TaskDefinition = $service.NewTask(0)
$TaskDefinition.RegistrationInfo.Description = "$TaskDescription"
$TaskDefinition.Settings.Enabled = $true
$TaskDefinition.Settings.AllowDemandStart = $true
$triggers = $TaskDefinition.Triggers
#http://msdn.microsoft.com/en-us/library/windows/desktop/aa383915(v=vs.85).aspx
$trigger = $triggers.Create(8)
 1
Author: postanote,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-01-27 19:12:01