Windows Desktop zwischen Auto-Login und Applikations-Start absichern

Hallo! 
Ich suche nach einer Möglichkeit, unsere Clients schon während des Hochlaufens abzusichern.
Momentan sind die Rechner so konfiguriert, dass Windows einen Auto-Login durchführt und danach automatisch eine Anwendung startet. Diese Anwendung ist ein HMI System (WinCC), wo sämtliche Zugriff auf den lokalen Desktop gesperrt sind.
Aber bevor diese Anwendung vollständig geladen ist, haben die Anlagenbediener ca. 2 Minuten lang vollen Zugriff auf den Desktop und können dort Blödsinn treiben. 
Kennt jemand eine Möglichkeit, in der Zeit zwischen Auto Login und fertig geladener Anwendung sämtliche Manipulationen/Eingaben zu verhindern? 

Vielen Dank im Voraus!
Matthias

Hi …

mir fallen zwei Möglöichkeiten ein:

  • Disable den Tastatur- und den Maustreiber per Systemstart-Script bzw. Policy.

  • oder -

schau ob Du WinCC als „alternative Shell“ starten kannst. Anleitung gibt es z.B. hier:

http://www.winfaq.de/faq_html/Content/tip2000/online…

je nachdem wie der Rechner benützt wird könnte das eine interessante Alternative sein - ohne WIndows Explorer hat man keine Möglichkeit mehr, das System zu manipulieren, außer dem task-Manager, und den kann man per Policy ebenfalls ausknipsen --> danach ist der PC auf das beschränkt was die Shell, also WinCC, bietet. Inwiefern WinCC selber Schlupflöcher audweist musst Du selber testen.

Ich habe mal versucht, „sichere Office Terminals“ zu bauen, und das war eine irre Aufgabe, weil ich immer wieder neue Möglichkeiten gefunden habe, Office Programme dazu zu bringen, mir einen Explorer oder eine Kommandozeile in die Hand zu geben. Das gibt über VBA, über die WIndows Hilfe, und sogar über den WIndows Standarddialog für das Laden und Speichern von Dateien. Winwiefern WinCC solche Löcher aufreißt mkann ich Dir nicht sagen.

Gruss Armin.

Hallo,

neben der schon angesprochenen Shell-Lösung kann man als ultima ratio mit erträglichem Aufwand auch die GINA, also die Anmeldekomponente von Windows entsprechend ändern (wenn man dafür das nötige Knowhow im Hause hat oder sich einkauft), dass diese direkt dein Programm aufruft. Das haben wir in meiner letzten Firma mal für einen Kunden gemacht, der aus alten Fat-Clients so genannte Lean-Clients gemacht hat, die dann lokal gar nicht mehr nutzbar sein sollten. Da haben wir dann durch die GINA gleich den Client für die Terminalserver-Lösung gestartet. D.h. da gibt es dann gar kein „zwischen Anmeldung und Programmstart“ mehr, weil die Anwendung dann ja eine Komponente der Anmeldung selbst ist.

Gruß vom Wiz

danke für die Antwort, aber das übersteigt wohl unsere Kompetenzen :wink:

Viele Grüße!
Ottifant

Vielen Dank für Deine beiden Vorschläge!

WinCC als Standard-Shell einzutragen wurde wohl schon ohne Erfolg versucht. Das Problem dabei war, dass gewisse Teile von WinCC schon gestartet wurden, bevor alle Dienste von Windows (vor allem Netzwerk) liefen.

Aber das Deaktivieren von Tastatur und Maus per Skript klingt gut. Denn das könnte man nach dem vollständigen Start der WinCC Runtime wieder rückgängig machen.
Früher gab es dazu ein Tool namens DevCon (http://support.microsoft.com/en-us/kb/311272), welches man an der command Line oder per Batch aufrufen kontne. Ist das unter Windows 7 noch empfehlenswert oder gibt es dafür fertige Powershell Skripts?

Viele Grüße!
Ottifant

Hi …

Vielen Dank für Deine beiden Vorschläge!

WinCC als Standard-Shell einzutragen wurde wohl schon ohne
Erfolg versucht. Das Problem dabei war, dass gewisse Teile von
WinCC schon gestartet wurden, bevor alle Dienste von Windows
(vor allem Netzwerk) liefen.

Daran sollte man aber nicht scheitern. Packt man eben einen kleinen Loader davor, der WinCC erst startet, wenn die Dienste die man braucht da sind. Mir scheint das der einfachere Weg, den Du mit beherrschbarem Aufwand vermutlich selber umsetzen kannst.

Aber das Deaktivieren von Tastatur und Maus per Skript klingt
gut. Denn das könnte man nach dem vollständigen Start der
WinCC Runtime wieder rückgängig machen.

Ganz so einfach ist es nicht. Bei der Maus klappt das, Du kannst den Maustreiber (mouhid) per Geräte-Manager stoppen, und die Maus ist sofort tot. Du kannst ihn starten (per Tastaturbefehl), und die Maus geht wieder. Der „mouhid“ Treiber von Microsoft kann das, also kannst Du das relativ einfach scripten.

Jetzt ist die Gretchenfrage - und die kann ich nicht aus dem Stand beantworten, Der Tastaturtreiber „kbdhid“ kann den disable/enable nicht. Warum ist mir unklar, es könnte irgendwelche abstrusen technischen Gründe haben, es könnte ein Microsoft Versuch sein, den dümmsten anzunehmenden User vor sich selbst zu schützen. Man kann ihm den enable/disable möglicherweise per Registry beibringen, aber die Forschungsarbeiten dazu überlasse ich Dir.

Früher gab es dazu ein Tool namens DevCon
(http://support.microsoft.com/en-us/kb/311272), welches man an
der command Line oder per Batch aufrufen kontne. Ist das unter
Windows 7 noch empfehlenswert oder gibt es dafür fertige
Powershell Skripts?

Das ist ein absolut nachrangiges Problem. Die Frage ist eher: wie kommst Du - ohne Tastatur und Maus - an der UAC vorbei! Natürlich gibt es Tricks, ein Lieblingstrick führt über den Task Scheduler. Du müsstest einen „Enable Konsole“ Task mit Adminrechten hinterlegen, und dem User das Recht geben, ihn zu starten. Nach dem Laden von WinCC schubst Du den Task an (schtasks Befehl).

Und die Frage ob Tool, Powershell oder WSH oder sonstwas - das ist wirklich völlig egal.

Armin.