Ich möchte nur eine URL mit dem Aufgabenplaner unter Windows Server 2008 und einem Powershell-Skript aufrufen.Rufen Sie eine URL mit geplantem Powershell-Skript an
So entwickelte ich das folgende Skript:
$url = "http://example.com"
$log_file = "${Env:USERPROFILE}\Desktop\Planification.log"
$date = get-date -UFormat "%d/%m/%Y %R"
"$date [INFO] Exécution de $url" >> $log_file
$request = [System.Net.WebRequest]::Create($url)
$response = $request.GetResponse()
$response.Close()
Das Skript ohne Problem funktioniert, wenn ich es aus der Powershell ISE ausführen, die Konsole Powershell oder mit dem Befehl:
powershell PATH_TO_MY_SCRIPT.ps1
Aber es funktioniert nicht, wenn ich es von den Scheduler-Tasks aus ausführe, gibt es den Code 0xFFFD0000 zurück. Ich habe folgendes gefunden: http://www.briantist.com/errors/scheduled-task-powershell-0xfffd0000/ So kann es ein Berechtigungsproblem sein, also habe ich versucht viele andere Profile und Optionen (einschließlich "Ausführen mit allen Berechtigungen") zu testen, ohne Erfolg.
Ich führe auch ein anderes Powershell-Skript, das nur ein Netzlaufwerk mountet und zwei Dateien kopiert, und ich habe kein Problem mit diesem Skript. Also denke ich, dass das Problem von der Verwendung des .NET-Objekts zum Aufruf meiner URL herrührt.
Ich sah, dass ich möglicherweise Module in mein Skript vor anderen Befehlen enthalten muss, aber ich weiß nicht genau, was ich zu tun habe. (Ich kenne Powershell nicht, ich versuche es nur zu benutzen, um meine Probleme zu lösen).
Vielen Dank für Ihre Hilfe.
Ich denke, es wahrscheinlicher ist, dass das Problem mit dem Zugriff auf das 'USERPROFILE' Verzeichnis ist - es kann nicht sein, was Sie es erwarten. Es könnte auch ein Problem mit Ihrer Proxy-Einstellung (oder deren Fehlen) sein, wenn es sich um eine externe URL handelt. Mit welchem Benutzerkonto wird die geplante Aufgabe ausgeführt? – alroc
Kann nicht mehr mit @alroc auf dem 'USERPROFILE' Teil zustimmen. Wenn Sie es manuell (oder interaktiv) ausführen, ist es derjenige, der sich am System anmeldet und die Sitzung öffnet (zB wenn Sie sich als "Peter" anmelden, erhalten Sie das "Peter" Profil). Wenn es den Zeitplan-Task durchläuft, ist es standardmäßig das Profil von "SYSTEM", was "$ {Env: USERPROFILE} \ Desktop \ Planification.log" sinnlos machen könnte. Aber "SYSTEM" -Konto kann geändert werden: In "Geplante Aufgabe" Systemsteuerung mit der rechten Maustaste darauf und dann gehen Eigenschaften, Sie können das Benutzerkonto ändern, unter dem die Aufgabe ausgeführt wird. – Peter