Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Meldungen ausgeben als Dienst

Frage Microsoft

Mitglied: veraxel

veraxel (Level 1) - Jetzt verbinden

01.09.2011 um 09:13 Uhr, 4878 Aufrufe, 22 Kommentare

keine Anzeige vom Programm, als Dienst gestartet...

Hallo,

ich habe ein kleines Script programmiert welches ich als Dienst eingerichtet habe. Es startet auch.
Das Programm soll unter anderem für eine kurze Zeit eine Information anzeigen.
Das Problem ist nur das Meldungen, also normale System-Fenster, vor dem Anmeldefenster (Windows XP) nicht angezeigt werden.

Testweise habe ich im Script die Anzeigedauer verlängert und wenn ich mich als Administrator schnell anmelde, kann ich noch die letzten Sekunden von der Meldung sehen.

Wie lässt es sich einstellen das mein Informationsfenster schon vor dem Anmeldefenster angezeigt wird.
Im Dienst habe ich das Häkchen für "Datenaustausch zwischen Dienst und Desktop zulassen" gesetzt/aktiviert.

Bin für jede Hilfe dankbar!

Ach ja... Nein, ich kann es nicht im Autostartordner setzen, das Prg. muss vor der Benutzeranmeldung gestartet werden!
Mitglied: 99045
01.09.2011 um 13:03 Uhr
Hi,

genaue Betriebssystemangaben bitte.

Gruß
Bitte warten ..
Mitglied: veraxel
01.09.2011 um 13:17 Uhr
Hi Kaputtnick.

Windows XP Pro inkl. aller SP und Updates.
Bitte warten ..
Mitglied: 99045
01.09.2011 um 13:32 Uhr
Hi, veraxel,

ob ein selbstinstallierten Dienst in der Auflistung unter services.msc erscheint, weiß ich nicht. Wenn doch, sieh mal unter "Anmeldung" nach, ob das Aktivieren des Datenaustauschs mit dem Desktop dir Abhilfe bringt.

Ansonsten gibt es in den Gruppenrichtlinien bei Administrativen Vorgaben unter System > Scripts die Möglichkeit, Scripte sichtbar und nicht gleichzeitig ausführen zu lassen. In der Benutzerkonfiguration könnte man so z. B. über ein Startscript entsprechende Hinweise (ohne Dienst) anzeigen lassen. Vielleicht wäre das eine Möglichkeit.

Gruß
Bitte warten ..
Mitglied: DerWoWusste
01.09.2011 um 17:33 Uhr
Hi.

Beschreib mal genauer, wie Dein Text erzeugt wird.
Wenn Du bespielsweise den Befehl
msg * Test
absetzt, dann schiebt der sein Fenster auch vor den Logonscreen.
Bitte warten ..
Mitglied: veraxel
02.09.2011 um 10:58 Uhr
Es handelt sich um ein Script in Autoit programmiert.
Einfache Bildschirmausgaben lassen sich mit MsgBox erledigen.
Als Parameter kann man mit angeben dass das Fenster immer im Vordergrund erscheint.
Aber egal wie ich es anstelle, es wird nichts angezeigt. Das Script wird aber ausgeführt.
Bitte warten ..
Mitglied: DerWoWusste
02.09.2011 um 11:48 Uhr
Das wird was mit der Sitzungssicherheit zu tun haben. Vor dem Anmeldebildschirm ist nur der Benutzer "System" angemeldet. Ist es evtl. möglich, die Ausgaben an die msg.exe umzuleiten?
Bitte warten ..
Mitglied: veraxel
07.09.2011 um 12:59 Uhr
Leider verzweifel ich immer noch an dem Problem.
Vielleicht hat noch jemand eine Idee woran es liegen könnte dass Bildschirmausgaben vor der Benutzeranmeldung nicht angezeigt werden.

Mein Autoit-Testscript :

SplashTextOn("test","das ist ein Test") ; Zeige ein Fenster im Vordergrund mit dem Text
Sleep(60000) ; Warte 60 sekunden
SplashOff() ; Blende das Fenster wieder aus.



Das Fenster, welches bei Splash vorrangig dargestellt wird und nicht im Hintergrund geklickt werden kann, wird nach dem Start 60sek. lang angezeigt und das Prg. wird dann wieder beendet.
Die test.exe habe ich compiliert und nach c:\daten kopiert.

Mit dem Kommandozeiletool sc.exe habe ich den Dienst wie folgt hinzugefügt :
sc create test binPath= c:\daten\test.exe

Der Eintrag erfolgt dann in den Diensten. Dort habe ich noch in den Eigenschaften des eben erstellten Dienstes "test" das Häkchen gesetzt für "Datenaustausch zwischen Dienst und Desktop zulassen" und den Starttyp auf Automatisch gesetzt.

Nun habe ich den PC mit Windows XP SP3 und Mitglied einer Domäne neu gestartet.

Der Rechner bootet und das Anmeldefenster erscheint. Doch leider sieht man kein Fenster
Ich warte 10-20 sek. lang und melde mich dann als lokalen Administrator an und siehe da, das Fenster erscheint und blendet sich nach wenigen Sekunden aus. Das Script wurde also auch beim booten gestartet, aber das Fenster wird nur nach der Anmeldung angezeigt. Warte ich natürlich mit der Anmeldung zu lange, sieht man das Fenster nicht mehr nach einer Benutzeranmeldung.

Tja... was muss ich tun damit mein Fenster VOR der Anmeldung erscheint???
Bitte warten ..
Mitglied: DerWoWusste
07.09.2011 um 13:50 Uhr
Du bist völlig verzweifelt, quasi den Tränen nahe. Dennoch sagst Du nichts zu meinem Tipp mit der Umleitung an msg.exe, die Nachrichten an * verschicken kann, welche immer und überall sichtbar sind. Warum?
Bitte warten ..
Mitglied: veraxel
07.09.2011 um 15:40 Uhr
Hallo,

vielleicht sollte ich noch hinzufügen dass in dem oben genannten Testscript zwar nur Text dargestellt wird, das ursprüngliche Programm aber ein recht komplexes Fenster mit Grafiken und formatierten Text anzeigt.
Genauer gesagt holt sich das Programm beim booten Informationen aus dem Netzwerk und soll diese vor der Anmeldung anzeigen. Das Prg. ist auch fertig und funktioniert, nur das die Anzeige nicht als Dienst läuft.

@DerWoWusste
ich weiß nicht so ganz wie ich eine Umleitung an msg.exe im Script realisieren soll. Aber so weit ich nachlesen konnte lässt sich mit msg.exe nur reiner Text darstellen, oder? Aber ich kann es trotzdem mal versuchen. Wenn ich in der Kommandozeile "msg administrato test" eingebe, kommt auch eine Nachricht. Wenn ich "msg SYSTEM test" eingebe, kommt eine Fehlermeldung. Wie muss der Befehl aussehen im Dienst?

@99045
Die Möglichkeit kannte ich nocht nicht. Danke. Aber ich befürchte ich kann diese Möglichkeit nicht nutzen, weil sich damit nur einfacher Text darstellen lässt. Zudem weiß ich die Informationen, die angezeigt werden sollen, vorher nicht und werden vom Script abgerufen.
Bitte warten ..
Mitglied: 99045
07.09.2011 um 17:11 Uhr
@veraxel
An System kannst du nichts mit mgs schicken, und solange niemand angemeldet ist, kommt auch keine Nachricht, die mit Msg an "*" oder sonstwen geschickt wurde an.
Bitte warten ..
Mitglied: DerWoWusste
08.09.2011 um 09:14 Uhr
Moin Kaputtnick.

Auch wenn niemand angemeldet ist, kommt eine Nachricht, deshalb nenne ich doch dies als Tipp.
msg * test
in einem Startskript zeigt es.

@veraxel
Was für "nicht reinen" Text möchtest Du darstellen?
[Zum Befehl: siehe oben]
Bitte warten ..
Mitglied: 99045
08.09.2011 um 10:24 Uhr
Moin,

nee, kommt sie nicht, jedenfalls nicht unter XP, sonst hätte ich das sicher nicht geschrieben.
Bitte warten ..
Mitglied: DerWoWusste
08.09.2011 um 10:30 Uhr
Ich schreib auch nur Dinge, die ich teste. Tja, dann ist Dein xp vergurkt. Kleiner Scherz.
Bitte warten ..
Mitglied: 99045
08.09.2011 um 10:39 Uhr
Zitat von DerWoWusste:
Ich schreib auch nur Dinge, die ich teste. Tja, dann ist Dein xp vergurkt. Kleiner Scherz.

Dann müssten aber alle meine XPs vergurkt sein.
Erstell doch mal 'nen geplanten Task mit msg * irgendwas und lass den beim Systemstart ausführen, Wie du sehen wirst, wirst du nichts sehen, nur dass der Task ausgeführt wurde.
Der User NT-Autorität\System oder auch nur SYSTEM hat mit MSG nun mal nichts am Hut.
Bitte warten ..
Mitglied: DerWoWusste
08.09.2011 um 10:40 Uhr
Gut, gib mir 2 Minuten.
Bitte warten ..
Mitglied: DerWoWusste
08.09.2011 um 11:08 Uhr
Also... warum das Startskript NICHT geht, will mir nicht einleuchten, aber da komme ich evtl. noch drauf.
Was jedoch geht, ist ein MSG von außen, das schickt auch an System, siehe Bild:
http://250kb.de/u/110908/g/ypyOKVQtS8aO.gif

Ich hätte schwören können, ich habe es schonmal per Startskript probiert. Mal sehen, woran das liegt.
Bitte warten ..
Mitglied: 99045
08.09.2011 um 11:35 Uhr
Ich kann dir sagen, woran es liegt:
Bei der klassischen Benutzeranmeldung funktioniert es (erst mal nur von außen), wenn man den Willkommensbildschirm verwendet, geht es nicht.
Ein Startscript im Computerkontext bringt in beiden Fällen keine Meldung auf den Bildschirm, im Benutzerkontext funktioniert auch ein MSG-Startscript, allerdings erst nach der Anmeldung, und das wollte der TO ja nicht.
Bitte warten ..
Mitglied: veraxel
08.09.2011 um 11:43 Uhr
Ich habe es bei mir auch gerade getestet, leider wird auch mittels msg * test nichts angezeigt. Wenn es gegangen wäre, hätte ich versuchen können das Fenster mit AutoIt anzusprechen und den Inhalt ändern.

@DerWoWusste
Der Inhalt ist letztendlich eine HTML-Datei die in einem Fenster eingebettet ist.
Die HTML-Datei wird im Script zuvor mit Werten gefüllt und dann dargestellt.
Bilder und formatierter Text zum Beispiel.

Wenn es mit einem einfachen MSG-Fenster geht, dann denke ich, wird es auch mit dem richtigen Script gehen.
Gehen muss es ja irgendwie... andere Programme werden auch dargestellt, zum Beispiel unser Software-Verteilungs-System poppt auch immer vor der Anmeldung auf.
Ich hab da ja schon versucht bei diesen Dienst abzugucken, vielleicht ist ja irgendwo ein Bit anders gesetzt, als bei mir. Aber konnte nichts auffälliges entdecken.

Mir kommt gerade die Idee... ich werde mal an einem Testrechner den Dienst von der Software-Verteilung in der Registry ändern und nur den Pfad zum Programm ändern. Mal sehen ob mein Fenster dann angezeigt wird... hehehe..
Bitte warten ..
Mitglied: veraxel
08.09.2011 um 13:11 Uhr
Schade, klappt leider nicht. Ich habe den Pfad zur EXE auf mein Testprogramm geändert. Beim booten sehe ich trotzdem nichts.
Das deutet aber darauf hin dass im Script irgendwas eingebaut werden muss, damit die Darstellung funktioniert.
Bitte warten ..
Mitglied: DerWoWusste
09.09.2011 um 16:58 Uhr
So, Freunde der Sonne...

Warum das mit msg nicht so lief, wie erwartet, ist mir nicht ganz klar, weiterhin. Einen funktionierenden Umweg habe ich dennoch gefunden: Man steuert gezielt die Konsolensitzung an.
01.
msg console /time:0 Nachricht
Der Time-Switch ist notwendig, weil msg-Nachrichten default nach 60 Sekunden von alleine schließen (wieder was gelernt).

Das funktioniert schon mal. Nun musst Du mit einer for-Schleife Deine Nachricht aus einer Textdatei einlesen, etwa so:
01.
for /f %aa in (->Pfad zur Logfiledate<-) do msg console /time:0 %%a
Wie man nun aber mehr als nur Text ausgeben soll, kann ich Dir nicht sagen.
Kaputtnick, hast Du vielleicht eine Erklärung dafür, warum msg console geht, aber msg * nicht? Und zwar nur dann nicht, wenn im Startskript ausgeführt? Es liegt somit nicht am Benutzer, sondern an der Art, wie es gestartet wird.
Bitte warten ..
Mitglied: 99045
09.09.2011 um 17:05 Uhr
Hi,

eine mögliche Erklärung wäre vielleicht, dass die Meldung vor dem Willkommensbildschirm zwar ausgegeben wird, aber vom Logon-(Willkommens-)Screen überschrieben wird, der ja direkt auf den Bildschirm gezeichnet wird. Das würde auch erklären, warum die Meldung remote dann funktioniert, wenn die klassische Anmeldung verwendet wird. Aber irgendwie rausbekommen kann man das ja leider nicht so 100-prozentig. Möglich wäre auch, dass die Reihenfolge der Abarbeitung der Startumgebung auch eine Rolle spielt. Das sind aber alles nur Vermutungen.

Was ich dazu gefunden habe, ist
das und das. Passt aber alles nicht so richtig.

Edit: Gerade nochmal ausprobiert:
MSG 0 /server:computername Nachricht
funktioniert genauso wie
MSG console /server:computername Nachricht
bei einer Nachricht an einen Remote-Computer, der den Willkommensbildschirm anzeigt.

An TO: Probiere mal, ob du mit dieser Syntax wenigstens die Textmeldung ausgegeben bekommst.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Batch & Shell
gelöst Windows Update Dienst per Batch beenden (12)

Frage von Justin98 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...