
Problem
Da der Support für Windows Server 2003 am 14. Juli endet, verschieben wir alle unsere geplanten Aufgaben auf einen Windows 2008 R2-Server.
Wir verwenden eine Microsoft (MS) Access 2003 (mdb)-Datenbank zur Abwicklung verschiedener Backend-Prozesse, die die Interaktion von Benutzern und Kunden mit unserem System ergänzen.
Einer der Backend-Prozesse in MS Access, der diese Frage verursacht, verweigert den Druck, wenn ein Benutzer nicht angemeldet ist.
Der Backend-Prozess füllt eine temporäre Tabelle, die später zum Ausfüllen des Berichts verwendet wird, der ausgedruckt werden soll. Dieser Bericht enthält eine eingebettete Abfrage, verknüpfte Bilder und einen gespeicherten Standarddrucker.
Der Benutzer, der die geplanten Aufgaben ausführt, ist ein Domänenbenutzer.
Was wir vermuten könnten
Sitzung 0 Isolierung- Access hat ein sehr kleines Druckfenster, das anzeigt, dass Sie sich auf Seite X von N befinden. Mit diesem Fenster kann nicht interagiert werden. Ich glaube, das könnte der Übeltäter sein, aber alles, was wir versucht haben, hat nicht geholfen, es zu stoppen.
Was wir versucht haben
- Desktop-Ordner unter Systemprofil erstellt
- Stellen Sie sicher, dass der Benutzer ein lokaler Administrator mit erhöhten Rechten ist.
- Manuelles Ausführen während der Anmeldung (das funktioniert)
- Erstellen einer Miniaturversion der Anwendung, die eine kleine Probe des Druckauftrags ausführt.
- Festlegen, ob die geplante Aufgabe ausgeführt wird, unabhängig davon, ob der Benutzer angemeldet ist oder nicht. Unabhängig davon werden die anderen Prozesse in der MS Access-Datenbank weiterhin ausgeführt und wir erhalten den leeren Bericht für den Prozess, der nicht gedruckt wird.
Aktuelle Problemumgehung
Wir lassen den Domänenbenutzer angemeldet.
Antwort1
Dieses Problem kann leicht auftreten, wenn Sie auf einem Sitzungsdrucker drucken.
HKEY_Current_User\Printers\Connections (Sitzungsdrucker)
Gegen
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers (lokale Drucker)
Jeder Drucker, der über eine Netzwerkfreigabe installiert ist, fällt in diese Kategorie. Bitte versuchen Sie es erneut mit einem Drucker, der mit einer lokalen TCP/IP-Warteschlange installiert ist. Dieser Drucker ist dann systemweit verfügbar.
Antwort2
Elias, hast du dir die geplante Aufgabe angesehen und das Kontrollkästchen „Ausführen, unabhängig davon, ob der Benutzer angemeldet ist oder nicht“ aktiviert? Dein Problem klingt so, als wäre es nicht aktiviert, sodass die Aufgabe nicht ausgeführt werden kann, wenn sie versucht wird.
Antwort3
Es klingt, als würden die Drucker selbst nicht erkannt, wenn der Prozess ausgeführt wird. Haben Sie versucht, Debugcode zur Ausgabe in eine Datei hinzuzufügen und zu sehen, wo er hängen bleibt? Ich habe festgestellt, dass Prozesse, die in VBA hängen bleiben, nicht viele Informationen in der Ereignisanzeige generieren und normalerweise mehr Fehlersuche im Code erfordern.
Ich habe das Problem der Sitzungsisolierung 0 gesehen und es gibt Problemumgehungen, aber alle Beispiele, die ich gefunden habe, bezogen sich auf Excel.
Hier finden Sie eine Erklärung dazu, was von Sitzung 0 betroffen ist.
https://msdn.microsoft.com/en-us/library/windows/hardware/dn653293%28v=vs.85%29.aspx
Antwort4
Wenn Sie UAC auf die niedrigste Einstellung setzen, verbessert das die Situation? Klicken Sie dazu auf „Start“ und dann auf „Ausführen“. Geben Sie „msconfig“ in das Ausführen-Feld/die Eingabeaufforderung ein und klicken Sie auf „OK“. Klicken Sie auf die Registerkarte „Tools“. Klicken Sie auf „UAC-Einstellungen ändern“ und dann auf „Starten“. Ziehen Sie den Schieberegler nach unten. Bestätigen Sie Windows und starten Sie den Server neu.
Haben Sie die Aufgabe beim Migrieren neu erstellt? Eine gute Möglichkeit zum Migrieren von Aufgaben zwischen 2003 und 2008 besteht darin, den Aufgabenplaner in 2008 zu öffnen, eine Verbindung zum 2003-Server herzustellen und dann die Aufgaben zu exportieren. Sie können den Aufgabenplaner dann wieder auf den 2008-Server verweisen und die Aufgaben importieren. Wenn die Aufgabe mit einem 0x0-Ergebnis ausgeführt wird, würde ich sagen, dass das Problem außerhalb der geplanten Aufgabe selbst liegt.
Können Sie bestätigen, dass der Drucker druckt, wenn eine Testseite gesendet wird? Es wäre vielleicht eine gute Idee, die Einstellungen des Druckers auf dem alten und dem neuen Server zu vergleichen, falls Sie dies nicht bereits getan haben.