Benutzer mit den meisten Antworten
Power Shell Script in Aufgabenplanung in Windows 7

Frage
-
Hallo.
Also ich habe ein Shell Script geschrieben, was eine E-Mail schickt wenn der Speicherplatz einer Festplatte unter xxx GB beträgt.
Manuell gestartet klappt es auch einwandfrei.
Ich möchte dieses Script aber in die Aufgabenplanung einfügen.
Habe dies auch gemacht, aber es klappt nicht. Es erscheinen zwar keine Fehler, aber es wird diese E-Mails nicht gesendet. Habe mich damit jetzt knapp 3 Std. beschäftigt. Im Anhang ist ein Bild der Einstellungen
Habe es mit ca. 100 verschiedenen Einstellungen versucht
Habe es auch mit folgender Anleitung versucht:
http://www.elasticsky.de/2011/11/powershell-skript-als-geplanten-task-auf-server-2008-r2-starten/
trotzdem kein Erfolg!Unter "Argumente" ist der Pfad des Scriptes angegeben.
http://www.pic-upload.de/view-13726248/Unbenannt.jpg.html- Bearbeitet pakito1992 Mittwoch, 11. April 2012 12:23
- Typ geändert Alex Pitulice Mittwoch, 18. April 2012 15:02 Warten auf Feedback
- Typ geändert Denniver ReiningMVP, Moderator Freitag, 20. April 2012 09:36
Antworten
-
So, ich finde 33 Posts reichen um ein relativ einfaches Problem zu bearbeiten. Pakito92, ich denke wir sind nun an einem Punkt angelangt wo -wenn du es bis jetzt nicht lösen konntest- die Hilfsmöglichkeiten in einem Forum an ihre Grenze kommen. Ich möchte aber noch darauf Hinweisen, das ich den -von dir bisher ignorierten- Vorschlag von Peter für sehr sinnvoll halte.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".- Als Antwort markiert Alex Pitulice Freitag, 20. April 2012 10:07
-
Ich glaube nicht dass man dein Problem auf diese Art debuggen kann!
Programme (auch Skripts) die mit dem Tasksheduler gestartet werden können ja keine Fehlermeldungen in Form eines Fensters Anzeigen. Deshalb MUSS dein Skript möglichst jede Aktion in ein Logfile schreiben!
Als allererste Aktion schreibt dein Skript natürlich in das Logfile das es gestarted wurde (Datum, Uhrzeit, Sekunden!).
Somit entfällt auch das Ratespiel, ob die Kommandozeile im Tasksheduler richtig ist oder nicht!
http://jdhitsolutions.com/blog/2011/03/powershell-automatic-logging/
http://poshcode.org/2566Nach dem Start deines Skripts mit dem Tasksheduler läuft dies wie gesagt als Dienst (in der Windows Session 0)! Ich vermute mal dass der Mail-Aufruf dann einfach nicht mehr durchkommt!
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
- Bearbeitet Peter Kriegel Freitag, 13. April 2012 12:06
- Als Antwort vorgeschlagen Alex Pitulice Mittwoch, 18. April 2012 06:36
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 20. April 2012 09:44
-
Ciao Pakito
Versuch es mal so:
Wenn das nicht funktioniert, schreibe diesen Befehl ( start /wait %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden "C:\Users\mein benutzername\monitor-drivespace.ps1" ) mal in eine Batch-File (.bat oder .cmd) und führ sie mal aus. Mal schauen ob das ginge. Sollte das dann funktionieren, binde einfach die Batch-File in deinen Task ein.
Wenn das auch nicht funktioniert, dann prüfe bitte nochmal was du eingegeben hast.
Wenn auch das nicht funktioniert, prüf es nochmal und frag dann jemanden, der dir an deinem PC zeigen kann wie das funktioniert.
- Als Antwort vorgeschlagen Alex Pitulice Mittwoch, 18. April 2012 06:37
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 20. April 2012 09:37
Alle Antworten
-
Hallo,
versuche es mal so:
Program/script: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Add arguments (optional): -NoProfil -Command "& { & "[Pfad Powershellskript]" -[Parametername] [Parameterwert] }"
Mfg
- Bearbeitet Schlieng Mittwoch, 11. April 2012 13:05
-
>Muss ich "Parametername" und "Parameterwert" durch ingendetwas ersetzen? Wenn ja wo finde ich diese Infos? Wenn nein, klappt es nicht :)
Das setzt Du das ein, was Dein Script gerne als Parameter hätte. Wenn das keine haben will, entfallen die beiden Parameter einfach.
Grüße aus Berlin schickt Robert
MVP Exchange Server -
>habs die zwei Sachen ausgelassen bzw. entfernt, klappt leider immer noch nicht
Das ist schade....
.
.
.
.
.
.
.
.
.
.
.
Was meinst Du, wieviele Leute Dir ohne eine Fehlerbeschreibung und genauer Information, was Du da eingetragen hast, helfen können oder wollen? ;)
Grüße aus Berlin schickt Robert
MVP Exchange Server -
Also unter Programm/Skript steht:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Unter Argumente:
-NoProfil -Command "&[C:\Users\mein benutzername\monitor-drivespace.ps1]"
oder auch mit:
NoProfil -Command "& { & "[C:\Users\mein benutzername\monitor-drivespace.ps1]" -[Parametername] [Parameterwert] }"
ausprobiert.
-
-
Moin,
-NoProfil -Command & "C:\Users\mein benutzername\monitor-drivespace.ps1"
das &-Zeichen muss mit in die Anführungszeichen (hat Schlieng aber auch so geschrieben):
-Command "& 'C:\Users\mein benutzername\monitor-drivespace.ps1'"
Achte GANZ GENAU auf die Anführungszeichen, das ist:
"
&
Space
'
Befehl
'
"
Grüße aus Berlin schickt Robert
MVP Exchange Server -
>geht auch nicht :(
Du machst es nicht leicht, Dir helfen zu wollen, wenn Du so viel Informationen lieferst. ;)
Was geht denn nicht? Fehlermeldung?
Ist sicher gestellt, dass das Scriptz ÜBERHAUPT funktioniert?
Bei mir sehen gänige Taskplaner-Einträge so aus - und die funktionieren!
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -WindowStyle Hidden -nologo -command "& 'c:\scripts\migration.ps1'"
Grüße aus Berlin schickt Robert
MVP Exchange Server- Als Antwort vorgeschlagen birgberg Donnerstag, 14. Juni 2012 15:15
-
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2012-04-11T10:23:11.7208508</Date>
<Author>XXXX\XXX</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2012-04-11T11:10:32</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>XXXX\XXX</UserId>
<LogonType>Password</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>true</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT1M</Interval>
<Count>3</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
<Arguments>-Command "& 'C:\Users\XXX\monitor-drivespace.ps1'"</Arguments>
</Exec>
</Actions>
</Task> -
Ich glaube nicht dass man dein Problem auf diese Art debuggen kann!
Programme (auch Skripts) die mit dem Tasksheduler gestartet werden können ja keine Fehlermeldungen in Form eines Fensters Anzeigen. Deshalb MUSS dein Skript möglichst jede Aktion in ein Logfile schreiben!
Als allererste Aktion schreibt dein Skript natürlich in das Logfile das es gestarted wurde (Datum, Uhrzeit, Sekunden!).
Somit entfällt auch das Ratespiel, ob die Kommandozeile im Tasksheduler richtig ist oder nicht!
http://jdhitsolutions.com/blog/2011/03/powershell-automatic-logging/
http://poshcode.org/2566Nach dem Start deines Skripts mit dem Tasksheduler läuft dies wie gesagt als Dienst (in der Windows Session 0)! Ich vermute mal dass der Mail-Aufruf dann einfach nicht mehr durchkommt!
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
- Bearbeitet Peter Kriegel Freitag, 13. April 2012 12:06
- Als Antwort vorgeschlagen Alex Pitulice Mittwoch, 18. April 2012 06:36
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 20. April 2012 09:44
-
Geht es denn jetzt? Hast du Peters Rat mal befolgt?
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort". -
Ciao Pakito
Versuch es mal so:
Wenn das nicht funktioniert, schreibe diesen Befehl ( start /wait %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden "C:\Users\mein benutzername\monitor-drivespace.ps1" ) mal in eine Batch-File (.bat oder .cmd) und führ sie mal aus. Mal schauen ob das ginge. Sollte das dann funktionieren, binde einfach die Batch-File in deinen Task ein.
Wenn das auch nicht funktioniert, dann prüfe bitte nochmal was du eingegeben hast.
Wenn auch das nicht funktioniert, prüf es nochmal und frag dann jemanden, der dir an deinem PC zeigen kann wie das funktioniert.
- Als Antwort vorgeschlagen Alex Pitulice Mittwoch, 18. April 2012 06:37
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 20. April 2012 09:37
-
Hallo Pakito,
bist Du hier weitergekommen? Hast Du die weiteren Tipps ausprobiert?
Gruss,
Alex
Alex Pitulice, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Wenn ich den Pfad von Powershell wie in den Screens von toexelchen umänder erscheinen Fehler.
Habe die Argumente so "eingestellt", leider klappts auch nicht. Und mit der Batch File klappts auch nicht. Es öffnet sich Power Shell und alles aber die E-Mail wird nicht versendet.
-
Hab jetzt die Batch Datei so erstellt dass sie funktioniert.
Jedoch klappt es wieder nicht in der Aufgabeplanung.
Kann mir jemand sagen was ich in der Aufgabeplanung falsch eingegeben habe?
Programm/Skript: C:\Windows\System32\cmd.exe
Argumente: C: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
funktioniert auch nicht mit nur: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
Starten in: C:\Users\Mein Benutzername\PC-DT
Auch ohne den Eintrag in "Starten in" gehts nicht.
-
Programm/Skript: C:\Windows\System32\cmd.exe
Argumente: C: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
funktioniert auch nicht mit nur: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
Starten in: C:\Users\Mein Benutzername\PC-DT
Auch ohne den Eintrag in "Starten in" gehts nicht.
Programm/Script: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
Starten in: "C:\Users\Mein Benutzername\PC-DT"
So muss es sein und so wird es auch laufen, wenn der Rest richtig eingestellt ist.
Hast du auch die anderen Einstellungen überprüft die ich dir geschrieben habe? Hast du ein Administratorkonto ausgesucht, welches auch die Rechte hat die Abfragen zu starten. Hast du den Haken für "Mit höchsten Privilegien" gesetzt und den Haken bei "Unabhängig von der Benutzeranmeldung" gesetzt?
Wenn es noch immer nicht läuft, kopier doch bitte mal Verlauf, bzw die Fehlermeldungen im Verlauf hier rein, so kann man dir dann auch helfen.
-
Programm/Skript: C:\Windows\System32\cmd.exe
Argumente: C: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
funktioniert auch nicht mit nur: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
Starten in: C:\Users\Mein Benutzername\PC-DT
Auch ohne den Eintrag in "Starten in" gehts nicht.
Programm/Script: "C:\Users\Mein Benutzername\PC-DT\MD.bat"
Starten in: "C:\Users\Mein Benutzername\PC-DT"
So muss es sein und so wird es auch laufen, wenn der Rest richtig eingestellt ist.
Hast du auch die anderen Einstellungen überprüft die ich dir geschrieben habe? Hast du ein Administratorkonto ausgesucht, welches auch die Rechte hat die Abfragen zu starten. Hast du den Haken für "Mit höchsten Privilegien" gesetzt und den Haken bei "Unabhängig von der Benutzeranmeldung" gesetzt?
Wenn es noch immer nicht läuft, kopier doch bitte mal Verlauf, bzw die Fehlermeldungen im Verlauf hier rein, so kann man dir dann auch helfen.
Fehlermeldungen jetzt:
Die Aufgabenplanung konnte die Aktion "C:\Windows\System32\cmd.exe" in der Instanz "{db9e5016-7ea3-4f73-b515-779c0c3e1bc2}" der Aufgabe "\Monitor Drive Space" nicht starten. Zusätzliche Daten: Fehlerwert: 2147942667
Die Aufgabenplanung konnte die Instanz "{db9e5016-7ea3-4f73-b515-779c0c3e1bc2}" der Aufgabe "\Monitor Drive Space" für den Benutzer "DOMAIN\Mein Benutzername" nicht starten. Zusätzliche Daten: Fehlerwert: 2147942667
Die Aufgabenplanung konnte die Aufgabe "\Monitor Drive Space" nicht ausführen. Ein Neustart wird ausgeführt. Zusätzliche Daten: Fehlerwert: 2147942667
So wie ich es vorhin eingestellt hatte erschienen keine Fehlermeldungen aber auch kein Erfolg.- Bearbeitet Pakito92 Donnerstag, 19. April 2012 13:54
-
Wie ich oben schon gesagt habe, glaube ich nicht, dass man mit diesem unkoordinierten herumgestocherte einen Fehler finden kann!
Wenn, dann wäre das Zufall(Hurra ein 6er im Lotto ;-))
(Wie viele TaskSheduler Zeilen willst du noch ausprobieren ? Bis zu Rente?)
Bei der Fehlersuche sollte man systematisch vorgehen:
Wenn dein Script im Tasksheduler keine Fehlermeldung und keine Erfolgsmeldung liefert warum gehst du dann davon aus das dein Skript nicht gestartet wurde?
Meist liegt es dann daran das das Skript hängt!
Dir kann einzig nur Logging helfen!
Das heißt: Erstelle ein Skript das jede Aktion in eine Textdatei schreibt und die erste Meldung ist das das Skript gestartet wurde!
1. Erstelle ein Skript das ganz einfach und nur eine Zeile hat (Ausgabe in eine Textdatei, das das Skript gestartet wurde. Und starte es mit dem TaskSheduler.
Danach weißt du dass deine Startzeile im Tasksheduler richtig ist!
2. Kopiere deine Code von deinem Skript mit deiner eigentlichen Aufgabe in das Skript das eben Funktioniert hat
3. Wenn dann wieder nichts kommt dann hilft nur Logging, Logging, Loging ……
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '- Bearbeitet Peter Kriegel Freitag, 20. April 2012 05:40
-
So, ich finde 33 Posts reichen um ein relativ einfaches Problem zu bearbeiten. Pakito92, ich denke wir sind nun an einem Punkt angelangt wo -wenn du es bis jetzt nicht lösen konntest- die Hilfsmöglichkeiten in einem Forum an ihre Grenze kommen. Ich möchte aber noch darauf Hinweisen, das ich den -von dir bisher ignorierten- Vorschlag von Peter für sehr sinnvoll halte.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".- Als Antwort markiert Alex Pitulice Freitag, 20. April 2012 10:07