Word-Interop funktioniert nicht in einer geplanten Aufgabe

8

Ich entwickle gerade ein Skript, das ein Word-Dokument aufnimmt, es in Word öffnet und dann die Word-Datei als PDF ausgibt. Alles funktioniert gut, wenn Sie manuell auf meinem Rechner oder dem Server laufen. Das Problem tritt auf, wenn ich versuche, es als geplante Aufgabe auszuführen.

Eine der Anforderungen ist, dass dies jeden Abend ohne jegliche Intervention geschehen sollte. Wenn ich eine Zeitplanaufgabe für diese Aufgabe einstelle und die Sicherheitsoptionen auf "Nur ausführen, wenn der Benutzer angemeldet ist" einstellt, funktioniert alles einwandfrei. Problem ist, dass dies mit oder ohne jemanden ausgeführt werden muss. Wenn ich die Aufgabe auf "Ausführen, ob Benutzer angemeldet ist oder nicht" setzt, schlägt das Skript in der folgenden Zeile fehl:

%Vor%

MSWord.Documents.Open() funktioniert, gibt aber null zurück.

Diese Aufgabe wird unter Windows Server 2008 mit Office 2007 ausgeführt.

Gibt es eine andere Herangehensweise, die ich dafür nehmen sollte?

    
Steve Platz 24.07.2009, 14:15
quelle

2 Antworten

3

Ich glaube, dass viele Menschen versucht haben, etwas zu tun, was dem, was Sie versuchen und gescheitert sind, nahe kommt. Es gibt eine Menge Geplapper darüber, keine Office-Interop-basierten Lösungen in einem Server-ähnlichen Modus (unbeaufsichtigt usw.) ausführen zu können.

Siehe hier und hier

Ich weiß, dass dies wahrscheinlich nicht die Antwort ist, nach der Sie gesucht haben, aber es ist trotzdem wie es ist!

    
fnCzar 24.07.2009, 14:22
quelle
21

Ich hatte Probleme mit der Automatisierung von Office von einem Windows-Dienst unter Windows Server 2008, obwohl das unter Windows Server 2003 einwandfrei funktioniert. Das Problem tritt auch beim Open-Aufruf auf, obwohl es tatsächlich eine Ausnahme auslöst und nicht einfach null zurückgibt. Wie auch immer, du solltest das vielleicht versuchen ...

Ich habe versucht, dem Ratschlag von H Ogawa in dieser MSDN-Thread , und es schien zu funktionieren. Es ist bizarr, aber ein Lob an Mr. Ogawa, dass er es entdeckt hat.

Zusammenfassung des 'Ogawa Hack': Erstellen Sie einen Desktop-Ordner für das Systemprofil, entweder als

C:\Windows\SysWOW64\config\systemprofile\Desktop oder

C:\Windows\System32\config\systemprofile\Desktop

... abhängig davon, ob Sie 64-Bit Windows haben.

Außerdem benötigt der Ordner Schreibrechte für jeden Benutzer, der Office "fährt".

[Bearbeiten: korrigierte Link-URL]

    
Gary McGill 05.11.2009 12:24
quelle