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?
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.
Ich weiß, dass dies wahrscheinlich nicht die Antwort ist, nach der Sie gesucht haben, aber es ist trotzdem wie es ist!
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]
Tags und Links interop ms-word windows-server-2008 scheduled-tasks ms-office