Service ruft PsExec auf, Remoteservice wird abgelehnt
Server 2008 (in 2003er AD) als Printserver
PDFCreator "Serverinstallation", startet als Dienst
Über die Aktionen nach dem Druck startet PDFCreator eine Batch in welcher ein PsExec-Aufruf hinterlegt ist.
Konkret wird auf einem Server 2008 PDFCreator als Service betrieben - über Instsrv und srvany aus dem Reskit angelegt. Die PDFCreator Serveranwendung wurde so eingerichtet, dass eingehende Drucke automatisch abgespeichert werden, und als Aktion nach dem Druck ein kleines Script aufgerufen wird, welches auf dem Client einen Mailentwurf mit diversen Vorgaben und dem soeben erzeugten Dokument als Anhang erstellt.
Das ganze läuft über einen PsExec-Aufruf, und funktioniert:
a) wenn ich die PDFCreator-Anwendung manuell auf dem Server starte
b) wenn ich den Aufruf aus dem Batchfile selbst in einem CMD abschicke
Dabei habe ich sowohl die Anwendung als auch die CMD unter verschiedensten Kontexten gestartet (Admin-User, lokaler Admin, alternativer Netzwerkadminuser, auch schon als Benutzer). Da im PsExec-Befehl der Benutzer mitgegeben wird, funktionierte es in jedem Fall einwandfrei und der/mein Client führte den Befehl wie gewünscht aus.
Sobald jedoch der PDF-Creator als Dienst läuft, wird die Batch zwar ausgeführt, aber der PsExec-Befehl fällt mit einem Fehler auf die Nase:
Ich hatte dann vermutet, dass es mit dem LSA zu tun hätte, und den Dienst unter (diversen) anderen Benutzern/Admins gestartet - unter welchen es wie oben erwähnt MANUELL tadellos funktionierte - aber auch da bleibt's beim PsExec-Aufruf hängen.
An der Eula-bestätigung von PsExec liegts übrigens nicht, der RegKey wurde auch unter dem LocalService erzeugt.
Was kann mir denn hier überhaupt noch den Zugriff verweigern? Was läuft anders als beim manuellen Programmaufruf?
Arbeitet PsExec beim Aufruf aus einem Service in irgend einer Weise anders???
PDFCreator "Serverinstallation", startet als Dienst
Über die Aktionen nach dem Druck startet PDFCreator eine Batch in welcher ein PsExec-Aufruf hinterlegt ist.
Konkret wird auf einem Server 2008 PDFCreator als Service betrieben - über Instsrv und srvany aus dem Reskit angelegt. Die PDFCreator Serveranwendung wurde so eingerichtet, dass eingehende Drucke automatisch abgespeichert werden, und als Aktion nach dem Druck ein kleines Script aufgerufen wird, welches auf dem Client einen Mailentwurf mit diversen Vorgaben und dem soeben erzeugten Dokument als Anhang erstellt.
Das ganze läuft über einen PsExec-Aufruf, und funktioniert:
a) wenn ich die PDFCreator-Anwendung manuell auf dem Server starte
b) wenn ich den Aufruf aus dem Batchfile selbst in einem CMD abschicke
Dabei habe ich sowohl die Anwendung als auch die CMD unter verschiedensten Kontexten gestartet (Admin-User, lokaler Admin, alternativer Netzwerkadminuser, auch schon als Benutzer). Da im PsExec-Befehl der Benutzer mitgegeben wird, funktionierte es in jedem Fall einwandfrei und der/mein Client führte den Befehl wie gewünscht aus.
Sobald jedoch der PDF-Creator als Dienst läuft, wird die Batch zwar ausgeführt, aber der PsExec-Befehl fällt mit einem Fehler auf die Nase:
Could not start PsExec service on CLIENTNAME:Zugriff verweigert
Ich hatte dann vermutet, dass es mit dem LSA zu tun hätte, und den Dienst unter (diversen) anderen Benutzern/Admins gestartet - unter welchen es wie oben erwähnt MANUELL tadellos funktionierte - aber auch da bleibt's beim PsExec-Aufruf hängen.
An der Eula-bestätigung von PsExec liegts übrigens nicht, der RegKey wurde auch unter dem LocalService erzeugt.
Was kann mir denn hier überhaupt noch den Zugriff verweigern? Was läuft anders als beim manuellen Programmaufruf?
Arbeitet PsExec beim Aufruf aus einem Service in irgend einer Weise anders???
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 177325
Url: https://administrator.de/contentid/177325
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
9 Kommentare
Neuester Kommentar
Moin.
Aber was anderes: warum ein Service über srvany? Hat pdfcreator nicht einen lauffähigen Serverdienst ohne Eigenbau schon dabei? Was leistet Deiner mehr?
An der Eula-bestätigung von PsExec liegts übrigens nicht, der RegKey wurde auch unter dem LocalService erzeugt.
Genauer bitte. Wo wurde er erzeugt? Im Zweifelsfall bitte den psexec-Switch /accepteula ranhängen.Aber was anderes: warum ein Service über srvany? Hat pdfcreator nicht einen lauffähigen Serverdienst ohne Eigenbau schon dabei? Was leistet Deiner mehr?
Moinsen.
Hab es nachgestellt. Richtig ist: man muss pdfcreator als Dienst installieren, das stimmt.
Aber es geht alles nach Plan. Mein Server (2008 R1 SP2) schickt als Aktion nach Autospeicherung eine Nachricht per psexec-Kommando an meinen Client (Win7 SP1) und die kommt an.
Verwendeter Befehl: psexec \\win7 -u win7\user -p Kennwort /accepteula msg * Testnachricht
PDFCreator-Dienst wird als local system gestartet. Erzeugt habe ich den Dienst mit http://www.pirmasoft.de/runassvc.php
Hab es nachgestellt. Richtig ist: man muss pdfcreator als Dienst installieren, das stimmt.
Aber es geht alles nach Plan. Mein Server (2008 R1 SP2) schickt als Aktion nach Autospeicherung eine Nachricht per psexec-Kommando an meinen Client (Win7 SP1) und die kommt an.
Verwendeter Befehl: psexec \\win7 -u win7\user -p Kennwort /accepteula msg * Testnachricht
PDFCreator-Dienst wird als local system gestartet. Erzeugt habe ich den Dienst mit http://www.pirmasoft.de/runassvc.php
Pass mal auf. Du musst jetzt erst mal meins nachstellen. Nimm die selben OS und das selbe psexec (v 1.98 hatte ich genutzt) und den selben Befehl und erstell den Dienst mal auf die selbe Weise. Erst wenn Du das hinbekommst, sehen wir weiter. Es muss gehen, win7 und der Server haben keine Konfigurationsänderungen.
Ich glaube nicht, dass es die UAC ist, diese greift doch gar nicht für das Account "system". Aber bitte, schalt sie testhalber ab - bei mir ist sie an.
Stell bitte sicher, dass das Kennwort korrekt übergeben wird, indem Du den Dienst einstellst auf "allow service to interact with the desktop" und im Skript eine Zeile mit
pause
ans Ende stellst. Nun wird angezeigt, ob das Kennwort klappt. Ich hatte selbst zunächst Schwierigkeiten, da mein Kennwort ein "%" enthielt.
Stell bitte sicher, dass das Kennwort korrekt übergeben wird, indem Du den Dienst einstellst auf "allow service to interact with the desktop" und im Skript eine Zeile mit
pause
ans Ende stellst. Nun wird angezeigt, ob das Kennwort klappt. Ich hatte selbst zunächst Schwierigkeiten, da mein Kennwort ein "%" enthielt.