Benutzer mit den meisten Antworten
Aus Systemprozess aus eine Meldung an den Benutzer schicken

Frage
-
Hallo, folgendes Problem: Bei uns in Firma werden Updates und Installationen Remoute über OCS Inventory ausgeführt. Nun ist bei Windows 7 das Problem, das wenn wir den Vorgang starten, das keine Rückmeldung für den Nutzer erscheint, weil die Prozesse in einer anderer Session laufen und der Nutzer kann ledeglich über einen Klick auf das Fenster mit "Meldung anzeigen", sehen was installiert wird bzw. geupdated. Ich habe mich selbst noch nicht mit C# beschäftigt und bin relativ neu auf dem Gebiet. Nun zu Frage: Besteht eine Möglichkeit eine Rückmeldung an den Nutzer zu schicken, so das auf der Userebene diese erscheint? Am besten wäre natürlich gut wenn der Nutzer es verzögern könnte, falls er zum Beispiel jetzt das Programm noch braucht. Aber zuerst braucht man eine Rückmeldung, diese dann zu varieren wäre denk ich nicht das Problem. Danke im Voraus Eugen
- Bearbeitet Eugen Helm Freitag, 5. August 2011 08:05 Formatierung wurde nicht übernommen
Antworten
-
Hallo Eugen,
Ich kann den Zusammenhang mit C# nicht ganz nachvollziehen. Vielleicht aber dennoch einige Hinweise:
Deiner Beschreibung entnehme ich, dass ihr die Service-Version von OCS Inventory ausführt. Ist das richtig? Der Vorteil davon, ist dass man Updates ausrollen kann auch wenn kein Benutzer angemeldet ist, der Nachteil (z.B. in Windows 7) besteht u.a. darin, dass keine einfache Benutzer-Interaktion möglich ist. Der Windows OCS Inventory-Dienst startet eine Agent-Anwendung und diese läuft nun einmal nicht in der interaktiven Benutzersession. Ob man den Agent über Konfiguration dennoch in der interaktiven Session eines aktuell angemeldeten Benutzers starten kann, mußt Du beim Hersteller erfragen.
Normalerweise werden solche Probleme folgendermaßen gelöst:
1. Der Windows-Dienst läuft in einer nicht-interaktiven Session und interagiert gar nicht mit dem Benutzer
2. Wenn sich der Benutzer einloggt wird ein user agent gestartet, der über named pipes, RPC oder memory mapped files mit dem Dienst kommuniziert und die Interaktion mit dem Benutzer steuertIhr könntet aber den OCS Inventory Agent standalone ausführen (über Skripting, Scheduling oder .NET-Anwendung etc.), in welchem Fall die Ausführung in der interaktiven Benutzersession erfolgen könnte.
OCS Inventory NG Agent for Windows: Bug #809417, Warning messages don't popup on windows 7
https://bugs.launchpad.net/ocsinventory-windows-agent/+bug/809417What is interactive services detection:
http://blogs.msdn.com/b/patricka/archive/2010/04/27/what-is-interactive-services-detection-and-why-is-it-blinking-at-me.aspxWeitere Hintergrundinformationen:
Application Compatibility: Session 0 Isolation:
http://msdn.microsoft.com/de-de/library/bb756986.aspxInteractive Services:
http://msdn.microsoft.com/de-de/library/ms683502(v=VS.85).aspx
Gruß
Marcel
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Dienstag, 9. August 2011 14:49
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 11. August 2011 10:42
-
Hallo Eugen,
In C# macht man das - wenn der Aufrufrufer ein Dienst ist - normal über die Option "ServiceNotification":
[MessageBoxOptions-Enumeration (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/library/system.windows.forms.messageboxoptions.aspxDazu kommt, dass man die Meldung oft auch als TopMost erscheinen lassen will.
Etwas sauberer finde ich allerdings i.A. in diesen Szenarien eine zusätzliche Anwendung (normal WCF), die im User-Prozess (Session) Medungen ausgibt.Dienste oder Systemprogramme sollten eigentlich ihre Informationen im EreignisLog ablegen.
Eine Applikation in der User-Session kann nun schauen, ob Meldungen dieser Anwendungs-Quelle im Ereignisprotokoll vorhanden sind und an die gewünschten Ziele (ggf. auch Desktop-Meldung) verteilen.__________________________
Da Du nun wohl weiterhin Euer OCS Tool benutzen willst (dann keine C# Frage), ist aber ggf. folgender Blog auch weiterführend (nebst den Hinweisen von Marcel) :
[Troubleshooting Interactive Services Detection - Pat's Application Compatibility Blog - Site Home - MSDN Blogs]
http://blogs.msdn.com/b/patricka/archive/2011/03/14/troubleshooting-interactive-services-detection.aspxhttp://forums.ocsinventory-ng.org/viewtopic.php?pid=40898
Du kannst AFAIK in den OCS Skripten auch Einstellungen treffen wie: MB_SERVICE_NOTIFICATION und MB_TOPMOST
siehe: http://msdn.microsoft.com/en-us/library/ms645505(VS.85).aspx
ciao Frank
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Dienstag, 9. August 2011 14:48
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 11. August 2011 10:42
Alle Antworten
-
Hallo Eugen,
Ich kann den Zusammenhang mit C# nicht ganz nachvollziehen. Vielleicht aber dennoch einige Hinweise:
Deiner Beschreibung entnehme ich, dass ihr die Service-Version von OCS Inventory ausführt. Ist das richtig? Der Vorteil davon, ist dass man Updates ausrollen kann auch wenn kein Benutzer angemeldet ist, der Nachteil (z.B. in Windows 7) besteht u.a. darin, dass keine einfache Benutzer-Interaktion möglich ist. Der Windows OCS Inventory-Dienst startet eine Agent-Anwendung und diese läuft nun einmal nicht in der interaktiven Benutzersession. Ob man den Agent über Konfiguration dennoch in der interaktiven Session eines aktuell angemeldeten Benutzers starten kann, mußt Du beim Hersteller erfragen.
Normalerweise werden solche Probleme folgendermaßen gelöst:
1. Der Windows-Dienst läuft in einer nicht-interaktiven Session und interagiert gar nicht mit dem Benutzer
2. Wenn sich der Benutzer einloggt wird ein user agent gestartet, der über named pipes, RPC oder memory mapped files mit dem Dienst kommuniziert und die Interaktion mit dem Benutzer steuertIhr könntet aber den OCS Inventory Agent standalone ausführen (über Skripting, Scheduling oder .NET-Anwendung etc.), in welchem Fall die Ausführung in der interaktiven Benutzersession erfolgen könnte.
OCS Inventory NG Agent for Windows: Bug #809417, Warning messages don't popup on windows 7
https://bugs.launchpad.net/ocsinventory-windows-agent/+bug/809417What is interactive services detection:
http://blogs.msdn.com/b/patricka/archive/2010/04/27/what-is-interactive-services-detection-and-why-is-it-blinking-at-me.aspxWeitere Hintergrundinformationen:
Application Compatibility: Session 0 Isolation:
http://msdn.microsoft.com/de-de/library/bb756986.aspxInteractive Services:
http://msdn.microsoft.com/de-de/library/ms683502(v=VS.85).aspx
Gruß
Marcel
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Dienstag, 9. August 2011 14:49
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 11. August 2011 10:42
-
Hallo Eugen,
In C# macht man das - wenn der Aufrufrufer ein Dienst ist - normal über die Option "ServiceNotification":
[MessageBoxOptions-Enumeration (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/library/system.windows.forms.messageboxoptions.aspxDazu kommt, dass man die Meldung oft auch als TopMost erscheinen lassen will.
Etwas sauberer finde ich allerdings i.A. in diesen Szenarien eine zusätzliche Anwendung (normal WCF), die im User-Prozess (Session) Medungen ausgibt.Dienste oder Systemprogramme sollten eigentlich ihre Informationen im EreignisLog ablegen.
Eine Applikation in der User-Session kann nun schauen, ob Meldungen dieser Anwendungs-Quelle im Ereignisprotokoll vorhanden sind und an die gewünschten Ziele (ggf. auch Desktop-Meldung) verteilen.__________________________
Da Du nun wohl weiterhin Euer OCS Tool benutzen willst (dann keine C# Frage), ist aber ggf. folgender Blog auch weiterführend (nebst den Hinweisen von Marcel) :
[Troubleshooting Interactive Services Detection - Pat's Application Compatibility Blog - Site Home - MSDN Blogs]
http://blogs.msdn.com/b/patricka/archive/2011/03/14/troubleshooting-interactive-services-detection.aspxhttp://forums.ocsinventory-ng.org/viewtopic.php?pid=40898
Du kannst AFAIK in den OCS Skripten auch Einstellungen treffen wie: MB_SERVICE_NOTIFICATION und MB_TOPMOST
siehe: http://msdn.microsoft.com/en-us/library/ms645505(VS.85).aspx
ciao Frank
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Dienstag, 9. August 2011 14:48
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 11. August 2011 10:42
-
Hallo Eugen Helm,
Haben Dir die Antworten geholfen?
Grüße,
Robert
************************************************
[Info] Neue Forum Feature: Bilder in einem Beitrag einfügen************************************************