mabue88
Goto Top

Windows 10: wie bei gesperrtem Rechner Webseite anzeigen?

Hallo,

vor der folgenden Thematik sitze ich gerade:

Ich habe ein Visualisierungssystem, welches in Form einer Webseite diverse "Folien"/"Slides" anzeigt. Jede Folie wird für eine bestimmte Dauer angezeigt, bevor die nächste geladen wird.
Der Betrachtet kann in dem System lediglich vor-/zurückblättern oder bestimmte Folien durch Links gezielt anwählen.
Ansonsten besteht kein Möglichkeit etwas zu machen.

Sobald ein User angemeldet ist (verwendet wird Win10 Enterprise), kann er ganz normal per Browser auf die entsprechende Webseite.

Nun soll eine Auswahl der Folien dieses System aber auch angezeigt werden, wenn an dem PC kein User angemeldet ist, oder der PC von einem User gesperrt wurde.
Zunächst habe ich an einen C#-Form-Anwendung gedacht, die im Vollbildmodus betrieben wird und mittels eingebautem CefSharp die entsprechende Webseite anzeigt.
Sobald man an der PC-Tastatur die Enter-Taste betätigt hätte, wäre man zum Windows-Anmeldefenster gekommen (so zumindest die Idee).

Bei Win10 gibt es aber den LockScreen. Sobald am PC kein User angemeldet ist, wird dieser gezeigt.
Einen Bildschirmschoner scheint es hier nicht zu geben.

Hat jemand eine Idee, wie man die Problematik lösen könnte?
Bei der Suche im Internet bin ich noch nicht wirklich weiter gekommen. Es scheint, als ob man am Lock Screen von Windows wohl lediglich die Anpassungen in den normalen Windows-Einstellungen vornehmen kann. Dazu gehört zwar auch, dass man Bilder als SlideShow durchlaufen lassen kann, aber das ist nicht das wonach ich suche.

Vielen Dank schon im Voraus
mabue

Content-ID: 593780

Url: https://administrator.de/contentid/593780

Printed on: December 13, 2024 at 02:12 o'clock

DerWoWusste
DerWoWusste Aug 05, 2020 at 14:04:07 (UTC)
Goto Top
Moin.

Das wird nicht gehen. Man kann für den Lockscreen zwar eine Slideshow aktivieren, aber diese ist nicht interaktiv bedienbar.
Um da einen Browser zu haben, musst Du dich zwangsläufig anmelden - am Lockscreen handelt nur das Systemkonto - schon aus Sicherheitsgründen ist es undenkbar, Leute mit diesem Konto einen Browser bedienen zu lassen.
Lochkartenstanzer
Lochkartenstanzer Aug 05, 2020 at 14:10:27 (UTC)
Goto Top
Moin,

Wie wäre mit einem Kiosksystem?

Da kann der "Kioskbenutzer" angemeldet bleiben.

lks
DerWoWusste
DerWoWusste Aug 05, 2020 at 14:47:13 (UTC)
Goto Top
Jou, das ist eine gute Idee. Will man dann mehr, muss man den abmelden. Dann kommt die nächste kleine Hürde, wie man dann wieder zurück ins Kiosk gelangt - aber auch das ist machbar, wenn man mit Autologon arbeitet und die Nutzer der Vollsitzung dazu bringt, sich nicht abzumelden, sondern den Rechner zu rebooten.
mabue88
mabue88 Aug 06, 2020 at 04:40:28 (UTC)
Goto Top
Hallo Zusammen,

danke für eure Hilfe.
Den Kiosk-Account bei Windows kannte ich noch gar nicht.
Aktuell sehe ich das als die einzige (vernünftige) Möglichkeit.
Damit werde ich mal ein wenig herumspielen und in dem Zuge auch das Thema anschauen, wie ein normaler User den Rechner "zu verlassen hat".

Danke euch schon mal!

Gruß
mabue
mabue88
mabue88 Aug 06, 2020 at 16:09:59 (UTC)
Goto Top
Gerade versuche ich in einem C#-Programm herauszufinden, ob an meinem Rechner aktuell ein User angemeldet ist und ihn auch entsperrt hat, also Windows bedient werden kann.
Über WMI (docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider) habe ich bislang noch nichts gefunden, mit dem ich das zuverlässig erkennen kann.

Warum versuche ich das?!?
Nehmen wir an, ich lege einen User "Kiosk" an. Diesem wird die erwähnte Webseite über Edge angezeigt.
Nach dem Bootvorgang würde dieser auch per Autologon direkt angemeldet werden.

Ich könnte mir vorstellen mit einem Dienst z.B. jede Minute zu prüfen, ob der User "Kiosk" gerade angemeldet ist.
Wurde Windows von einem anderen User benutzt und ist z.B. seit 5 Minuten von diesem gesperrt, könnte man einen Neustart erzwingen und somit wieder den User "Kiosk" anmelden.
Solange ein User angemeldet ist, würde man keinen Neustart durchführen.
Die automatische Abmeldung wird übrigens bei 5 Minütiger Inaktivität durchgeführt. Das müsste für den User "Kiosk" natürlich deaktiviert sein.

Vielleicht kennt jemand eine zuverlässige Möglichkeit hierfür.

Danke!
DerWoWusste
DerWoWusste Aug 06, 2020 at 19:36:12 (UTC)
Goto Top
Schau dir die Ausgaben des eingebauten Befehls
qwinsta
an für die verschiedenen Zustände. Damit kommst Du vermutlich weiter.
mabue88
mabue88 Aug 07, 2020 updated at 05:27:45 (UTC)
Goto Top
Guten Morgen,

in der Konsole sieht das zunächst ganz gut aus.
Wenn ich den Befehl dann aber in C# wie folgt ausführe:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "qwinsta";  
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

bleibt das Programm bei Ausführen der Zeile "p.Start()" mit der Meldung "Das System kann die angegebene Datei nicht finden" stehen.
Daran ändert sich auch nichts, wenn ich den absoluten Pfad zur Exe angeben.
Das ganze Teste ich in einer .NET Framework 4.7.2 Konsolenanwendung.


Allerdings konnte ich auch anderweitig einen Schritt weiterkommen.
Mit SessionSwitch innerhalb der SystemEvents bekomme ich mit, wenn sich an dem PC jemand anmeldet, abmeldet, den Bildschirm sperrt und entsperrt.

SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;

private static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
            Console.WriteLine("SystemEvents: " + DateTime.Now.ToString() + " - " + e.Reason.ToString());  
}

Ich denke dass ich damit schon mal ein gutes Stück weiter komme.
mabue88
mabue88 Aug 07, 2020 at 05:33:30 (UTC)
Goto Top
Update bzgl. dem Ausführen von qwinsta:
Wenn ich die qwinsta.exe in den Ordner legen, in dem auch meine "C#-Exe" liegt, funktioniert das ganze mit dem Aufruf.

Allerdings ändert sich der Status meines Accounts nicht, wenn ich den Bildschirm sperre...
DerWoWusste
DerWoWusste Aug 07, 2020 at 07:24:22 (UTC)
Goto Top
Nimm einen geplanten Task, der von einem Trigger "Im Leerlauf seit 5 Minuten" gestartet wird und so aussieht (Batch):
qwinsta | findstr /i UsernameDerKiosksitzung || shutdown -f -r -t 0