johnny-cgn
Goto Top

Dateidownload via Powershell und Taskplaner funktioniert nicht

Liebe Administratoren,

ich kam zu meinem Win2012R2 Server ein bisschen wie die Jungfrau zum Kinde, aber jetzt ist er nunmal da und muss laufen.
Jedoch bitte ich von vorn herrein um Nachsicht bei eventueller Torheit... Der Server, Powershell und ich lernen uns noch kennen.

Im Grunde habe ich einen recht bescheidenen Wunsch: Ich möchte Zeitgesteuert Textdateien von Drittservern via http herunterladen und diese auf der Platte ablegen.

Das funktioniert soweit auch wunderbar, sofern ich das angelegte PS1 direkt öffne, oder mir den Inhalt in die Powershell kopiere.
Sobald ich das ganze via Taskplaner automatisieren möchte, passier schlicht nichts mehr.
Kein Öffnen der Powershell und erst recht kein Download.

Sofern von Relevanz.. Habe inzwischen mehrer Downloadskripte durch, aber bei allen blieb es bei dem Problem

$url = "http://test.de/test.csv"  
$output = "c:\test1.csv"  
$start_time = Get-Date
Import-Module BitsTransfer  
Start-BitsTransfer -Source $url -Destination $output  
Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"  

object system.net.webclient
$cl.DownloadFile(“http://test.de/test.csv”, “c:\test1.csv“)

$url = "http://test.de/test.csv"  
$target = "c:\test1.csv"  
[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')  
$vbnt = New-Object Microsoft.VisualBasic.Devices.Network
$vbnt.DownloadFile($url, $target,"","",$true, 40, $true, 'throwexception')  

Im Taskplaner ist folgendes hinterlegt:
Ausführen als Administrator, unabhängig von der Benutzeranmeldung mit höchster Berechtigung.

Programm/Skript:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Argument:
-command "C:\MySkript.ps1"


Das ganze blieb auch im folgenden Fall erfolglos:

# Import the module (not necessary due to the new module autoloading in PowerShell 3.0)
Import-Module PSScheduledJob
# Add a job option
$joboption = New-ScheduledJobOption -HideInTaskScheduler
# Add a trigger
$trigger = New-JobTrigger -Daily -At "23:38"  
# Register the job
Register-ScheduledJob -Name "Test PowerShell - MyScript.ps1" -Trigger $trigger -FilePath C:MyScript.ps1 -ScheduledJobOption $joboption  

Langsam gehen mir die Ideen, sowie die Suchbegriffe für Google aus, daher bitte ich an dieser Stelle um eure Hilfe und Erfahrung.

Content-Key: 297385

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

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

Member: AndreasHoster
AndreasHoster Feb 26, 2016 updated at 07:44:39 (UTC)
Goto Top
powershell.exe /? ist Dein Freund.
Die Hilfe sagt:
-Command
Führt die angegebenen Befehle (und alle Parameter) so aus, als wären sie
an der Windows PowerShell-Eingabeaufforderung eingegeben worden,
und wird dann beendet, sofern nicht "NoExit" angegeben wurde.

Du übergibst aber keine Befehle, sondern eine Datei.
Dafür gibt's -File:
-File
Führt das angegebene Skript im lokalen Gültigkeitsbereich aus (Eingabe eines
Punkts vor dem Befehl), sodass die
vom Skript erstellten Funktionen und Variablen in der aktuellen Sitzung
verfügbar sind. Geben Sie den Skriptdateipfad und mögliche Parameter ein.
"File" muss der letzte Parameter im Befehl sein, da alle Zeichen, die
nach dem File-Parameternamen eingegeben sind, als Skriptdateipfad gefolgt
von den Skriptparametern interpretiert werden.

Also probiers mal mit:
-File C:\MySkript.ps1 aus

Und möglicherweise muß man die ExecutionPolicy mit dem Argument -ExecutionPolicy ByPass ausschalten, falls die zu streng eingeschaltet ist.

EDIT:
Gerade getestet, -command akzeptiert auch eine Skript-Datei. Dann tippe ich auf die ExecutionPolicy.
Oder, alternativ, wenn es ein anderer User ausführt, hat der die richtigen Proxy Einstellungen, wenn ein Proxy verwendet wird?
Member: TlBERlUS
Solution TlBERlUS Feb 26, 2016, updated at Feb 27, 2016 at 10:47:22 (UTC)
Goto Top
Hi,

etwaig invoke-webrequest verwenden?