Windows Form über Windows Login Screen anzeigen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Windows Form über Windows Login Screen anzeigen

    Ich würde gerne nach dem Start von Windows eine eigene Applikation starten. Es ist eine Windows Forms Anwendung, und ich möchte die Form gerne über die Windows Anmeldung legen und die Windows Anmeldung sperren.
    Ich habe aber keine Ahnung wie ich das anstellen könnte.. Hat jemand eine Idee?

    LG Luca
    @0luca0 Was ist so wichtig, dass Du den Anmeldebildschirm abblocken willst?
    Das könnte was schädliches sein.
    Würdest Du uns bitte mal aufklären?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Klar :)
    Kennst du OPSI? Falls nein: OPSI ist ein Tools zur Verwaltung von Workstations: Update Patching, Softwareverteilung etc. Mit zentralisierter Verwaltung.
    Ich möchte mich nun selbst an so etwas wagen. Viele Dinge werden mit Vorteil vor der Useranmeldung gemacht. Damit der User aber nun nicht die ganze Zeit vor dem Bildschirm sitzt und die Anmeldung blockiert ist, wäre es noch schön wenn ich ein UI hätte, was dem User den Fortschritt anzeigt.

    Aus reiner Neugier: Was für einen Sinn hätte es bei einer Schadsoftware eine Sichtbare GUI zu schreiben?
    @0luca0 OPSI kenn ich nicht.
    Schadsoftware - falls es länger dauert, um den User zu beruhigen. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    www.opsi.org Ist relativ bekannt in der Systemadministration. Die machen unter anderem das von mir gewünschte.
    Aber wie kriege ich das hin?

    ​Schadsoftware - falls es länger dauert, um den User zu beruhigen.

    "Bitte warten Sie einen kleinen Augenblick. Ihre Schadsoftware wird gerade installiert. :D "

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „0luca0“ ()

    Windows kennt bereits Mechanismem für Patch Management und Softwareverteilung. Ersteres geht per Windows Update (WSUS), letzteres per Gruppenrichtlinie. Du kennst sicher die "Bitte Warten"-Meldung, bevor der Loginscreen kommt. In beiden Fällen läuft im Hintergrund der Windows Installer, der irgendwas am System ändert. Falls du einen Windows Server hast, musst du den nur konfigurieren; siehe z.B. support.microsoft.com/en-us/kb/816102. Falls nicht, musst du die bei der Softwareverteilung gesetzten Gruppenrichtlinien (sind letztlich nur Registrywerte) rausfinden und entsprechend manuell setzen. Ich sehe keine andere Möglichkeit, den Loginprozess anderweitig aufzuhalten. Natürlich könnte man irgendein Programm in die Logon-Session setzen, aber das ist alles andere als schön. Schau dir ansonsten mal den Windows Installer selbst an - vielleicht kannst du den so instruieren, dass er das beschriebene Verhalten zeigt.
    Gruß
    hal2000
    Ich meinte mit Patchen eigentlich das Updaten der Software und nicht das Einspielen von Windows-Updates... Dafür ist bei uns schon WSUS im Einsatz.

    Softwareverteilung via GPO: Das ist um es einfach auszudrücken scheisse... Es gibt keine Reporting Möglichkeit, keine Rückmeldung/Fehlermeldung für die Installation der Softwarepakete.. Und die Software kann nur in Form eines MSIs ausgeliefert werden.. Was ist mit .exe oder Pakete die nochmals anders installiert werden müssen? Oder mti manuell anpassbaren Installationen? Ich könnte sehr lange so weiter machen..

    hal2000 schrieb:

    Ich sehe keine andere Möglichkeit, den Loginprozess anderweitig aufzuhalten. Natürlich könnte man irgendein Programm in die Logon-Session setzen, aber das ist alles andere als schön. Schau dir ansonsten mal den Windows Installer selbst an - vielleicht kannst du den so instruieren, dass er das beschriebene Verhalten zeigt.

    WIe gesagt kann das z.B. OPSI: download.uib.de/press-infos/sc…-windows7_opsiclientd.jpg Und es ist auch noch sehr sauber gelöst.

    Was meinst du mit "ein Programm in die Logon-Session setzen? Und was meinst du mit dem Windows Installer? Bei dem Problem hilft er mir nicht wirklich weiter...

    An dem Ort wo die GPOs abgearbeitet (Bild) werden kann ich mich wahrscheinlich noch weniger (also gar nicht) einklinken, also muss ich es über meine ursprünglich geplante Lösung machen..

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „0luca0“ ()

    Mit "Programm in die Logon-Session setzen" meine ich genau das, was du von OPSI auf dem ersten von dir verlinkten Bild siehst. OPSI ist Open Source - der für das Bild verantwortliche Code ist daher in endlicher Zeit auffindbar :) . Offenbar läuft das Ganze über einen sogenannten "Credential Provider" (msdn.microsoft.com/en-us/libra…op/bb648647(v=vs.85).aspx). Schau dir dazu im SVN die Datei trunk/CLIENT_DATA/files/opsi/OpsiLoginBlocker.reg und die dort referenzierte DLL an.

    Edit: In diesem Forenbeitrag (forum.opsi.org/viewtopic.php?t=1849) von 2010 steht, dass der opsi-client-agent "kofinanziert" ist und dessen Quellcode daher noch nicht veröffentlicht werden kann. Die DLL ist Teil des client agent - da gehts wohl nur mit reverse engineering weiter.

    Eine "ursprünglich geplante Lösung" kann ich in den vorherigen Posts nicht erkennen - ich lese da nur die Aussage "Ich möchte mich nun selbst an so etwas [wie OPSI] wagen". Du möchtest also OPSI neu implementieren (warum?) und auf dem Anmeldebildschirm einen Fortschrittsbalken anzeigen lassen, wenn das neue Tool vor der Anmeldung irgendwas tut. Sehe ich das richtig? Falls ja, andere Idee: Erweitere OPSI um einen Fortschrittsbalken und stelle die Änderung den anderen OPSI-Nutzern zur Verfügung.

    Die Sache mit dem Windows Installer wird irrelevant, wenn deine zu installierende Software in anderen Formaten als MSI vorliegt, was bei dir offenbar der Fall ist.
    Gruß
    hal2000

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    hal2000 schrieb:

    Du möchtest also OPSI neu implementieren (warum?) und auf dem Anmeldebildschirm einen Fortschrittsbalken anzeigen lassen, wenn das neue Tool vor der Anmeldung irgendwas tut. Sehe ich das richtig? Falls ja, andere Idee: Erweitere OPSI um einen Fortschrittsbalken und stelle die Änderung den anderen OPSI-Nutzern zur Verfügung.

    Mir passen viele Dinge nicht.. Die Rekationszeiten im Backend sind furchtbar. Eine WebGui wäre auch schön.. eine API wäre evtl. auch noch schön.. uws. Anstatt dass ich alles bemängle dachte ich machs einfach selber besser. Ausserdem ist OPIS in Java (wenn ich mich recht erinnere) geschrieben -> nicht meine Sprache. Mitlerweile hat mich aber auch der Ehrgeiz gepackt sowas selber zu realisieren.

    Nach kurzem überfliegen würde ich sagen, ich kriege es da sperren des Logins Screens irgendwie hin. Aber wie kriege ich es hin über dem Login Screen eine Windows Form anzuzeigen?
    Ich habe mir mal angeschaut, wie OPSI die Login-Sperre realisiert. Sie besteht aus 3 Komponenten: Einem Credential Provider, einem Dienst und dem Fenster, das der Benutzer sieht. Der CP ist eine COM-Library und dient dazu, dem Dienst über eine RPC-Pipe ein Ereignis zu senden, wenn der Login-Bildschirm auftaucht. Der Dienst ermittelt daraufhin die Parameter der Login-Session und startet ein Programm darin. Das gestartete Programm zeigt dann sein Fenster einfach über dem Login selbst an und greift sich vermutlich den Tastaturfokus. Die COM-DLL ist in C++ geschrieben, der Dienst und das Anzeigeprogramm in Python.
    Gruß
    hal2000