bheleu21
Goto Top

Powershell bzw Windows Taskscheduler Fehler ?

Grüß euch

Ich habe einige Wochen gebraucht bis ich ein Skript "reparieren" konnte. Ich wollte euch fragen ob die ihr euch das erklären könnt ?

Erklärung:
Ich frage zu beginn das Datum ab (Get-Date -Format yyyyMMdd) und speichere dieses in der Variable $date ab.

Mit dieser wird dann in den folgenden Zeilen jeweils eine .csv Datei erstellt die jeden Tag einen neuen Namen hat. (eben $date + XYZ)

Problem:

Wenn ich das Skript unter ISE oder einfach in Powershell laufen lasse funktioniert es einwandfrei.
(Sieht dann als Ergebnis z.B. so aus: 20180315-client.csv)


Wenn ich im Taskscheduler von Windows einen Task einrichte und das Skript von dort ausführe kommt dann nur noch

-Client.csv

Daher, der Taskscheduler "schluckt" mir das Datum weg. Der Taskscheduler braucht auch 2-3 Minuten um den Teil auszuführen (fast so als würde er in ein Timeout laufen)

Nach ewigen herumprobieren habe ich als Lösung nun gefunden die Variable $Datum unter einer neuen zu speichern und dann diese zu verwenden - auf einmal funktioniert es....

Kann sich das jemand erklären warum der Taskscheduler Probleme mit der Variable $Date hat, das ist eigentlich nur eine 8 stellige Zahlenfolge... ??

$ErrorActionpreference = "silentlycontinue"  

$date = (Get-Date -Format yyyyMMdd)

$datenew = $date #mit diesem Teil geht es auf einmal ....

New-Item -Path "\\.......\06 SkriptExporte\AWSInventory\Client\" -ItemType File -Name "$datenew-client.csv"  
New-Item -Path "\\.......\06 SkriptExporte\AWSInventory\Monitor\" -ItemType File -Name "$datenew-Monitor.csv"  
New-Item -Path "\\.......\06 SkriptExporte\AWSInventory\Software\" -ItemType File -Name "$datenew-Software.csv"  
New-Item -Path "\\.......\06 SkriptExporte\AWSInventory\Offline\" -ItemType File -Name "$datenew-Offline.csv"  
New-Item -Path "\\.......\06 SkriptExporte\AWSInventory\Bitlocker\" -ItemType File -Name "$datenew-Bitlocker.csv"  
New-Item -Path "\\.......\06 SkriptExporte\AWSInventory\NIC\" -ItemType File -Name "$datenew-NIC.csv"  

...Skript geht hier lange weiter.....

P.s. Ich habe den Task im Scheduler mehrfach neu angelegt um zu schauen ob das ein Problem beim anlegen des Jobs war.


Danke für euren Imput sollte euch etwas auffallen .

LG.Sven

Content-ID: 368348

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

Ausgedruckt am: 22.11.2024 um 07:11 Uhr

colinardo
colinardo 16.03.2018 aktualisiert um 13:04:54 Uhr
Goto Top
Hallo Sven,
wie immer bei sowas über den Taskplaner, den Code mit Start-Transcript und Stop-Transcript kapseln um alle Meldungen in eine Log-Datei ausgeben zu lassen.

Start-Transcript -Path 'C:\Ordner\debug.log'  
$date = get-date -F yyyyMMdd
"$date-Client.csv"  
Stop-Transcript
Der auf die Variable folgende Bindestrich ist hier zwar jetzt direkt kein Bestandteil der Variable, aber er könnte es sein denn generell ist er erlaubt. Trotzdem sollte bei deiner Variante das gewünschte Ergebnis herauskommen denn Variablen bei denen Bindestiche vorkommen müsste man dann so in einen String schreiben "${var-test}-Client.csv".

Also analysieren erst mal das Transcript auf Fehler, da wir hier ja nicht das ganze Script sehen.

Und vor allem erst mal das
$ErrorActionpreference = "silentlycontinue"
entfernen damit das Skript auch Fehler auswirft.

Grüße Uwe
Bheleu21
Bheleu21 16.03.2018 um 14:21:49 Uhr
Goto Top
Hallo Uwe, danke für deine schnelle Antwort. Ich werde es nächste Woche einbauen und feedback geben ob hier etwas zu sehen ist.

Lg. und schönes WE!