Ausführen einer Windows 2008-Aufgabe über den Scheduler mit "Interagieren mit dem Desktop"

Ich habe eine kleine .NET-App, die ich unter Windows 2008 Server über den Taskplaner ausführe. Diese Anwendung muss eine Excel-Datei öffnen und dann als CSV speichern. Die Aufgabe schlägt fehl, wenn ich versuche, die Arbeitsmappe zu öffnen. Wenn ich es manuell ohne den Taskplaner ausführe, funktioniert die App einwandfrei.

Ich habe es auf "Run with highest privileges" gesetzt und "Run weather user is eingeloggt or not" angekreuzt.

Ich vermute, dass dieser Prozess mit dem Desktop in ähnlicher Weise interagieren muss, um das Flag "Interaktion mit Desktop" für einen Dienst zu aktivieren. Für geplante Aufgaben konnte ich jedoch keine ähnliche Lösung finden.

Hier ist der Code, der fehlschlägt: (schlägt beim Aufruf von workbook.open fehl)

public static void ConvertExcelToCsv(string source, string destination)
{
    if (File.Exists(destination)) File.Delete(destination);

    Application xl = new Application();

    try
    {
        Workbook workbook = xl.Workbooks.Open(source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        Worksheet ws = (Worksheet)workbook.Sheets[1];
        ws.SaveAs(destination, XlFileFormat.xlCSV, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing,true);

        Marshal.ReleaseComObject(ws);
    }
    finally
    {
        xl.DisplayAlerts = false;
        xl.Quit();

        Marshal.ReleaseComObject(xl);                
    }

}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage