Ab Windows Server 2008 hat Microsoft die Architektur geändert. Dienste
laufen nun in einer "Schicht", die keine Ausgabemöglichkeiten mehr auf
die Console hat.
Das gilt für Remote Consolen (MSTSC), für VMware-Consolen und auch für
ILO-Boards und sogar auch für den direkt am Server physikalisch
angeschlossenen Monitor.
Wie haben das exemplarisch mit einem SrvAny-Dienst, der lediglich
notepad.exe startet überprüft. Trotz gestartetem Dienst und laufendem
Notepad.exe Prozess, gibt es keine Konsole, die ein Notepad Fenster
anzeigt.
Das Problem hier ist die 0-Session Isolation, die sämtlich Interaktionen
mit den Sessions normaler Uer verhindert. Dies ist so gewollt, da es
unter W2k3 verschiedene Security Probleme mit genau dieser Funktion gab.
Deshalb wurde es in W2k8 umgestellt, siehe White-Paper aus der 1. Mail.
Aber es gibt ein Möglichkeit an diesen Output zu kommen, dafür gibt es
einen Dienst der sich "Interaction Services Detection" nennt.
Dazu muß man den eigenen Dienst wie folgt konfigurieren (hier am Notepad
Beispiel):
C:\>sc qc MyNotepadService
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: MyNotepadService
TYPE : 110 WIN32_OWN_PROCESS (interactive)
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\System32\notepad.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : MyNotepadService
DEPENDENCIES : UI0Detect ---> dies ist der benötigte verweiß für den Interaction Services Detection Service, dass er den Dienst überwachen soll!!
SERVICE_START_NAME : LocalSystem
mit:
sc config MyNotepadService depend= UI0Detect --> damit setzt man die Abhängigkeit für den UIDetect-Service
Leerzeichen nach “=” !
Der Service UIDetect prüft im Hintergrund ob irgendwelche Fenster in der 0-Session offen sind und benachrigtigt die angemeldeten User, der sich dann via "View Message" auf die 0-Session verbinden kann. Das sollte sogar via. RDP funktionieren.
Mit Start --> Run --> control userpasswords2 --> advanced --> manage Passwords --> Add a generic credential.