Frage

Ich habe ein ziemlich kompliziertes Toolchain, also bereiten Sie sich auf einen längeren Beitrag auf, bis er zum Problem gelangt:

Ich habe es geschafft, PDFCreator und einen virtuellen PDF-Drucker unter Windows 7 zu erstellen, der im Servermodus als Dienst läuft. Nächster Schritt des Prozesses ist der PDFCreator, der ein VBScript anruft, nachdem das PDF erstellt wurde. Das Skript lädt das PDF auf unseren Server über Webservice hoch und städt den Server für ein resultierendes PDF. Wenn das resultierende PDF heruntergeladen wurde, muss das VBScript es an einen vertrauten Drucker drucken.

Nun zum Drucken verwendete ich das integrierte COM-Objekt von PDFCreator, das Zugriff auf Ghostscript bietet. Dies funktionierte einwandfreies Windows XP für jedes Konto, das der PDFCreator-Dienst gestartet wurde. B. als Domänenbenutzer, um den Zugriff auf freigegebene Drucker aus dem VBScript aufzunehmen, da der Benutzerkontext mit dem PDFCreator-Dienst derselbe ist.

Ich habe jetzt dasselbe für Windows 7 ausprobiert und das Konto "lokales System" wie zuvor verwendete, da mein Testdrucker ein lokales ist (und funktioniert, d. H. TestsPage). Effekt ist, dass das Wscript im Task-Manager bleibt und niemals endet. Als nächstes aktiviert ich den interaktiven Modus für den Dienst und ein SAW-Ghostscript, in dem der Drucker gefragt wurde, um den Drucker zu drucken. Der Drucker ist existiert, wenn ich überprüft habe, bevor ich GS innerhalb des VBScripts anruft, aber aus irgendeinem Grund, war GhostScript nicht, obwohl der Drucker nicht angezeigt wird, obwohl im Dialogfeld, der zum Auswählen des Druckers geöffnet wurde, der Drucker vorhanden ist.

Nach dauerhaftem Suchen und nicht erfolgreichem Versuch, selbst ein weiteres neues Administrator-Konto für den Serviv ohne Erfolg zu versuchen, kam ich endlich einen Weg, um es zu arbeiten. Ändern des Benutzers für den PDFCreator-Dienst in "Locale Service", erhielt ich zuerst einen Fehler, den die PDFCreator Com-Objekterstellung fehlgeschlagen ist. Okay, ich dachte, das ist sinnvoll, da "Locale Service" weniger Rechte an diesem Gebiets-System hat. Ich habe dieses Limit umgekehrt, indem ich den Zugriffsrecht unter comexp.msc änderte und "Locale Service" -Rechte für lokal- und Remote-COM- und Skriptzugriffe gewährt. Voilá, alles funktionierte.

Was ich nicht verstehe: Warum ist Ghostscript im Rahmen des Kontos "Locale Service", der den Drucker finden kann, obwohl das Konto weniger Rechte an diesem "Locale System" hat?

Und: Welchen Zugriffsrecht muss ich für das "Locale-System" oder ein anderes Benutzerkonto einstellen, um es zu funktionieren?

oder gibt es eine umfassende Liste detaillierter Unterschiede zwischen diesen Konten?

vielen Dank und grüßend, Ghad

War es hilfreich?

Lösung

Die Antwort finden Sie hier: kb184291

Es geht um ASP / IIS, das unter "Lokales System" -Konto ausgeführt wird, und kann nicht gedruckt werden, da die Drucker unter dem Benutzer nicht verfügbar sind.Das Kopieren von Überregistrierungseinträgen hilft.

greetz, Ghad

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top