Ich versuche, eine Powershell-Skriptdatei als geplante Aufgabe in Windows Server 2012 auszuführen. Das Skript wählt Ereignisse in der Ereignisanzeige mithilfe eines XML-Filters aus und speichert sie in einer Textdatei. Die Skriptdatei heißt Sugar2SvcNowLog.ps1 und enthält diesen Text:
Get-WinEvent -FilterXml ([xml] (Get-Content "Desktop\Sugar2SvcNow.xml")) | format-table ProviderName, TimeCreated, Id, LevelDisplayName, message -wrap -autosize | Out-File -FilePath "C:\Users\yvoloshin_pdadmin\Desktop\Sugar2SvcNowLog $(get-date -f yyyy-MM-dd_HHmmss).txt"
Dieses Skript erstellt genau wie beabsichtigt eine Textdatei, wenn ich es in der Windows-Eingabeaufforderung wie folgt ausführe:
powershell -file "C:\Users\yvoloshin_pdadmin\Desktop\Sugar2SvcNowLog.ps1"
Dann habe ich einen Taskplaner-Job eingerichtet, bei dem das auszuführende Programm wie folgt festgelegt wurde "powershell"
:
-file "C:\Users\yvoloshin_pdadmin\Desktop\Sugar2SvcNowLog.ps1"
Wenn der Auftrag ausgeführt wird, wird der Status als „Vorgang erfolgreich abgeschlossen“ angezeigt. Es wird jedoch keine Textdatei generiert. Wie kann der Vorgang erfolgreich abgeschlossen werden, wenn die Datei nicht generiert wird? Was muss ich anders machen?
Antwort1
Ihr Skript bezieht sich auf Desktop
.
Beim Ausführen über den Taskplaner gibt es jedoch keine Benutzeranmeldung und keinen Desktop.
Ich schlage vor, die Datei Sugar2SvcNow.xml
in einem Ordner abzulegen und ihren vollständigen Pfad im Skript anzugeben.