Deaktivieren und Aktivieren der Netzwerkschnittstelle, wenn Windows 7 gesperrt ist

1413
nixda

Ausgangssituation

Ich arbeite mit mehreren Arbeitsstationen in einer Domäne, in der ich keinen Bildschirmschoner oder Energiesparmodus ändern darf, was heutzutage üblich ist. Ich muss oft zwischen PCs wechseln und sie werden nach 10 Minuten Leerlauf gesperrt. Schrecklich.

Derzeit verwende ich Koffein, um Bildschirmschoner und Systemblockade zu verhindern. Dies führt jedoch zu dem Problem, dass meine PCs ständig rund um die Uhr mit dem Netzwerk verbunden sind. Selbst in der Nacht, wenn ich alle meine Workstations manuell mit Win+ gesperrt habe L.

Was ich erreichen will

Meine Idee ist, diese vier Aufgaben mit AutoIt oder AutoHotKey zu automatisieren und die gesamte Drittanbieter-Software zu verwerfen

  1. Deaktivieren Sie eine bestimmte Netzwerkschnittstelle einmal, wenn das System gesperrt ist und die Zeit zwischen 20:00 Uhr und 6:00 Uhr liegt
  2. Aktivieren Sie eine bestimmte Netzwerkschnittstelle einmal, wenn das System entsperrt ist
  3. Pingen Sie eine bestimmte IP, wenn das System nicht gesperrt ist (dies dient dazu, eine Firewall offen zu halten)
  4. Simulieren Sie einmal pro Minute einen Tastendruck, damit das System den Bildschirm nicht sperrt oder den Bildschirmschoner aktiviert

Was ich bisher ausprobiert habe

Da es bei SU nicht darum geht, Gib mir den Code, habe ich angefangen, nach einem Weg zu suchen, einen sicheren Weg zu finden, ob Windows gesperrt ist . Es stellt sich heraus, dass die Verwendung WinExist("A")nicht zuverlässig genug ist und ich nicht weiterkomme.

Zweitens weiß ich, dass ich einen Tastendruck in einer Schleife simulieren kann, aber ich weiß nicht, welche Taste ich verwenden soll. Das öffnet oder versehentlich etwas nicht.

0
Zweitens weiß ich, dass ich einen Tastendruck in einer Schleife simulieren kann, aber ich weiß nicht, welche Taste ich verwenden sollte. Versuchen Sie, ScrollLock zu emulieren. Ich kann mir keine Windows-Software vorstellen, die sie heutzutage verwendet. Vladimir Tsuverkalov vor 10 Jahren 0
In dieser Antwort erfahren Sie, wie Sie Ihren Adapter ein- oder ausschalten können. http://superuser.com/a/526272/179299 an @nixda Lorenzo Von Matterhorn vor 10 Jahren 1
Was meinen Sie mit "Verbunden mit dem Netzwerk"? Warum ist das auch eine schlechte Sache? Selbst wenn Ihr Computer kein Koffein verwendet, ist es trotzdem mit dem Netzwerk verbunden, wenn der Computer gesperrt ist und / oder ein Bildschirmschoner ausgeführt wird. MDMoore313 vor 10 Jahren 0
@ MDMoore313 Du hast mich falsch verstanden: Koffein ist nicht für die Deaktivierung des Netzwerkadapters gedacht, sondern nur um zu verhindern, dass der Bildschirmschoner gesperrt wird. Ich möchte nur meinen Netzwerkadapter automatisch deaktivieren, während ich das System manuell gesperrt habe nixda vor 10 Jahren 0
Ich verstehe, nur neugierig, was Sie erreichen wollten? Können Sie keine Aufgaben planen? Wenn du sch. Haben Sie Berechtigungen, den Netzwerkadapter manuell zu deaktivieren? Wenn nicht, hilft keine automatisierte Lösung :-( MDMoore313 vor 10 Jahren 0
@ MDMoore313 Ich kann Aufgaben planen und den Adapter manuell deaktivieren. Sie und Lorenzo denken, dass eine geplante Aufgabe besser wäre, um diese 4 Aufgaben zu automatisieren? (Adapter beim Sperren deaktivieren, beim Entsperren aktivieren, Ping beim Entsperren / Adapter aktivieren, Taste beim Entsperren drücken) nixda vor 10 Jahren 0
Tatsächlich habe ich die Tatsache einer geplanten Aufgabe nur für Zeiten in Betracht gezogen, zu denen der QA sicher ist, dass er den Adapter zur gegebenen Zeit deaktivieren kann. (Beispiel: Nach dem Arbeitszeitplan würde der Adapter 15 Minuten vor Beginn des Arbeitszeitplans deaktiviert.) Lorenzo Von Matterhorn vor 10 Jahren 0
Ist Ihre Frage also, wie Sie einen Adapter mit einem programmatischen Prozess deaktivieren oder feststellen können, ob Windows gesperrt ist? Colyn1337 vor 10 Jahren 0
@ Colyn1337 Ich habe meine Antwort erhalten, wie man erkennt, ob Windows von [dieser SO-Antwort] gesperrt ist (http://stackoverflow.com/a/19090497/935614). Den Rest des Skripts zu bauen liegt bei mir :) nixda vor 10 Jahren 0

1 Antwort auf die Frage

1
MDMoore313

Ich würde ein Powershell-Skript verwenden, um dies zu automatisieren, und eine geplante Aufgabe verwenden, um das Skript auszuführen. Du könntest entweder haben

1) Ein separates Skript für jedes Ereignis (Anmelden / Abmelden, Sperren / Entsperren). 2) Übergeben Sie ein einzelnes Skript mit verschiedenen Parametern, die auf dem Ereignis basieren (beispielsweise auto.ps1 / unlock).

Ich persönlich mag # 2, etwas mehr Arbeit, aber einfacher zu handhaben. Sie möchten wahrscheinlich in den Ereignisprotokollen nach dem Ereignis suchen, an dem Ihre geplante Aufgabe ausgelöst werden soll. Ich glaube nicht, dass es eine Aktion in sch gibt. Task-Einstellungen für alle 4 dieser Ereignisse, obwohl ich mich irren könnte.

Stellen Sie abschließend sicher, dass Ihr Computer Powershell-Skripts direkt ausführen kann oder Powershell.exe mit den entsprechenden Parametern aufrufen kann:

powershell.exe -noprofile -executionpolicy bypass -file C:\autoping.ps1 
Ich denke, diese Antwort ist der richtige Weg. Es wären höchstens zwei Skripte. Lee Harrison vor 10 Jahren 1