derwowusste
Goto Top

Wer hat Lust, ein selbstgebautes Website-Blacklisting zu testen?

Grüß' Euch!

Abseits der vielen Möglichkeiten, die manche Router, Browseraddons, Firewalls und weitere Software bieten, habe ich nach einem Weg gesucht, mit einem simplen Skript in Form einer Blacklist einzuschränken, welche Websites bestimmte Nutzer nutzen dürfen. Es ist mir mit wenig Aufwand recht gut gelungen, wie ich finde. Möchte das mal jemand testen?

Die Idee ist, regelmäßig einen geplanten Task zu starten, der im Namen des Nutzers läuft, dessen Fenstertitel ausliest und den Browser schließt, wenn bestimmte Sitenamen gefunden werden.

Zuvor müssen noch zwei Skripte unter c:\windows unter folgenden Namen abgespeichert werden. Erstens "stopper.ps1":
Get-Process | where  {$_.MainWindowTitle -like "*YouTube*" -or $_.MainWindowTitle -like "*EineZweiteSite*"} | stop-process -force  
Und zweitens "HidePS.vbs":
Set objShell = CreateObject("Wscript.Shell")  
Set args = Wscript.Arguments
For Each arg In args
	objShell.Run("powershell -windowstyle hidden -executionpolicy bypass -noninteractive ""&"" ""'" & arg & "'"""),0  
Next
Danach kann man den Task als Admin über Import einer xml-Datei erstellen. Hierbei müsst Ihr PCName\admin zunächst anpassen auf Eure Werte, die Zeit 2019-12-29T19:08:00 auch per Search and Replace auf eine neue Startzeit ändern (z.B. in einer Minute von jetzt an) und speichern (z.B. als BlockSites.xml) und dann im Taskplaner importieren:
<?xml version="1.0" encoding="UTF-16"?>  
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">  
  <RegistrationInfo>
    <Date>2019-08-29T16:32:12.4927192</Date>
    <Author>PCName\admin</Author>
    <URI>\CloseBadSites</URI>
  </RegistrationInfo>
  <Triggers>
    <TimeTrigger>
      <Repetition>
        <Interval>PT1M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2019-12-29T19:08:00</StartBoundary>
      <Enabled>true</Enabled>
      <RandomDelay>PT1M</RandomDelay>
    </TimeTrigger>
    <TimeTrigger>
      <Repetition>
        <Interval>PT1M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2019-12-28T19:08:00</StartBoundary>
      <Enabled>true</Enabled>
      <RandomDelay>PT1M</RandomDelay>
    </TimeTrigger>
    <TimeTrigger>
      <Repetition>
        <Interval>PT1M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2019-12-28T19:08:00</StartBoundary>
      <Enabled>true</Enabled>
      <RandomDelay>PT1M</RandomDelay>
    </TimeTrigger>
    <TimeTrigger>
      <Repetition>
        <Interval>PT1M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2019-12-28T19:08:00</StartBoundary>
      <Enabled>true</Enabled>
      <RandomDelay>PT1M</RandomDelay>
    </TimeTrigger>
    <TimeTrigger>
      <Repetition>
        <Interval>PT1M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2019-12-28T19:08:00</StartBoundary>
      <Enabled>true</Enabled>
      <RandomDelay>PT1M</RandomDelay>
    </TimeTrigger>
    <TimeTrigger>
      <Repetition>
        <Interval>PT1M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2019-12-28T19:08:00</StartBoundary>
      <Enabled>true</Enabled>
      <RandomDelay>PT1M</RandomDelay>
    </TimeTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">  
      <UserId>PCName\admin</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">  
    <Exec>
      <Command>wscript.exe</Command>
      <Arguments>C:\windows\hidePS.vbs C:\windows\stopper.ps1</Arguments>
    </Exec>
  </Actions>
</Task>

Danach manuell den Task bearbeiten und das ausführendes Konto ändern auf das Konto des Nichtadmins, den Ihr beschränken wollt.

Das war's. In diesem Beispiel wird die Site YouTube genommen und es wird ca. alle 10 Sekunden geschaut, ob der User YouTube offen hat (egal in welchem Browser) - wenn der Fenstertitel YouTube enthält, wird der gesamte Browser geschlossen. Dies geschieht nur für den Benutzer, unter dem man den Task laufen lässt. Der Nutzer sieht von den Mechanismen nichts und auch im Taskscheduler kann er den Task weder sehen, noch beeinflussen. Das Spielchen mit den mehreren Triggern ist nötg, da man andernfalls den Task dauerhaft loopen müsste und das führt zu sichtbaren Prozessen, die der Nutzer im Taskmanager einfach killen könnte!

Getestet habe ich auf Windows 10 v1909 englisch.
Ich würde mich über Feedback freuen.

Edits vom 31.12.19 fett gedruckt

Content-ID: 529954

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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

BassFishFox
BassFishFox 29.12.2019 aktualisiert um 01:14:28 Uhr
Goto Top
Hi,

Aus blanker Neugier hab ich 1 x Chrome, 1 x Edge und 1 x Word 2010 geoeffnet.
Die Browser haben Youtube.com am rennen, Word hat ein Dokument mit dem Namen youtube.docx in Bearbeitung.

Der eingekuerzte Powershell-Script wirft erwartungsgemaess das hier.

2019-12-28 18_45_53-window

Der vollstaendige Script schliesst Word, Edge und Chrome.
Aber Chrome nur, wenn z.B. youtube der aktive Tab ist.
Wird ein Tab mit Youtube nach aussen (neues Browserfenster) gezogen schliesst der Script Chrome nicht wenn das aktive Browserfenster nicht das Youtube-Fenster ist.

Der Script findet hier kein Youtube obwohl offen. Ebenso offen ist ein zweites Browserfenster mit Anministratr.de wo ich gerade tippe.

2019-12-28 18_59_35-the ford f-650 is a $150,000 super truck - youtube

Anyway.
Das was Du vorstellst hier hat eine Menge Spassfaktor. 👍
Das mit dem vbs und Task zieh ich mir spaeter mal rein.

BFF

P.S.
W10 1909 (18363.535) englisch
DerWoWusste
DerWoWusste 29.12.2019 um 08:24:33 Uhr
Goto Top
Moin. Danke!

Ja, nur der aktive Tab. Für mehr haben meine "Künste" noch nicht gereicht.
TecBuddy
TecBuddy 29.12.2019 um 11:52:51 Uhr
Goto Top
Hättest du auch bedacht, dass ich die Seiten in meinem Browser anpassen kann? Ich könnte YouTube öffnen und ebenfalls über ein Script oder manuell den Titel auf irgendwas nichtssagenden ändern.
Spirit-of-Eli
Spirit-of-Eli 29.12.2019 um 13:13:42 Uhr
Goto Top
Zitat von @TecBuddy:

Hättest du auch bedacht, dass ich die Seiten in meinem Browser anpassen kann? Ich könnte YouTube öffnen und ebenfalls über ein Script oder manuell den Titel auf irgendwas nichtssagenden ändern.

Ich denke die Mechanik zielt eher auf den normalen user. Da ist das schließen vom Browser schon Aussage kräftig.
DerWoWusste
DerWoWusste 29.12.2019 um 13:33:57 Uhr
Goto Top
Hi.

Und die Titeländerung ist simpel?
TecBuddy
Lösung TecBuddy 29.12.2019 um 14:03:44 Uhr
Goto Top
Ja sind nur wenige Klicks. Siehe rote Bereiche im Screenshot.

Und ich denke, dass jeder unter dreißig in der Schule schon das ein oder andere in HTML gecodet hat, daher würde ich es diesem Publikum ebenfalls zutrauen dein Script auszuhebeln
qwert
DerWoWusste
DerWoWusste 29.12.2019 um 14:31:03 Uhr
Goto Top
Ok. Man kann die Frequenz des Schließens beliebig erhöhen, so dass das Ändern zumindest von Hand nicht mehr klappt.
em-pie
em-pie 29.12.2019 um 15:11:45 Uhr
Goto Top
Moin,

gute Idee, die du da hast/ hattest und Danke fürs Teilen/ Teilhaben lassen face-smile

Mir erschließt sich gerade nur nicht der UseCase - zumindest nicht in unternehmerischen Gefilden.
Dort würde ich einen zentralen Proxy-Server einsetzen, und den dann per AD-Gruppen reglementieren.
Höchstens für Devices, die mobil genutzt werden und mehr unterwegs als im Office sind - die könnten im Hotel dann natürlich YouPxxxTube laufen lassen.


Für die (Enkel-)Kinder Dahoam: da müsste man ja alle Gäste ins AD aufnehmen!?

Kläre mich/ uns daher einmal auf - vielleicht ergeben sich dadurch ja neue Ideen. face-smile


Ferner - als Verbesserungspotenzial - eine zentral abgelegte Liste wäre sicherlich auch ganz gut, aus der sich das PS-Script dann bedient.

Gruß
em-pie
DerWoWusste
DerWoWusste 29.12.2019 um 16:36:43 Uhr
Goto Top
@em-pie
Ist für zu Haus gedacht, klassische simple Sperre für die Computer der Kinder. Domain ist nicht erforderlich.

Wer keinen geeigneten Router hat und keine externe Softwarelösung will, hätte so eine einfache, recht wirksame Alternative.
TecBuddy
TecBuddy 29.12.2019 um 16:55:44 Uhr
Goto Top
Ein Raspi Zero/Pihole kostet auch nur ein paar Euronen. Und du musst nichts basteln face-smile
Und waaay easyer
emeriks
emeriks 29.12.2019 um 18:57:18 Uhr
Goto Top
Hi,
die lokale HOSTS kann man auch bearbeiten. Alle nicht gewollten FQDN dort mit 127.0.0.1 eintragen und gut ist.

E.
DerWoWusste
DerWoWusste 29.12.2019 um 21:40:59 Uhr
Goto Top
Hi emeriks.

Irgendwie befremdlich, dass Du mir zutraust, das nicht zu wissen face-smile
Diese Modifikation soll ja pro User einsetzbar sein, und nicht etwa systemweit. Ja, man könnte auch zum Logon des Nutzers einfach die Hosts-Datei ändern und beim Logoff wieder zurück, aber von diesen Spielen wollte ich absehen, da dann auch eingebettete youtube-Filme auf erwünschten Sites nicht gehen würden.
DerWoWusste
DerWoWusste 29.12.2019 aktualisiert um 22:02:34 Uhr
Goto Top
@BassFishFox
Wird ein Tab mit Youtube nach aussen (neues Browserfenster) gezogen schliesst der Script Chrome nicht wenn das aktive Browserfenster nicht das Youtube-Fenster ist. Der Script findet hier kein Youtube obwohl offen.
Sehe deinen Screenshot, kann es aber nicht nachvollziehen - hier geht es. Das einzige, was nicht geht, ist, wenn Chrome mit zwei Tabs offen ist, und YouTube nicht der aktive (sichtbare) ist - sprich, man könnte, wenn man den schnell ist, zumindest ein Video anschalten und den Ton (z.B. eines Musikvideos) hören. Keine Ahnung, was Du da anders machst. Vielleicht hast Du nur nicht lkange genug gewartet - der Task arbeitet ja mit mehreren Triggern (6 Stück, die random arbeiten - da kann es schon mal 20 Sekunden dauern, wenn man großes Pech hat) deshalb: mehr Trigger einstellen, einfach im xml ein paar mit copy-paste hinzufügen. Ich schätze, dass man, wenn man dem User maximal 3 Sekunden zubilligen will und das hinreichend sicher sein soll, man 30 Tasktrigger braucht, aber die Rechnung überlasse ich den Stochastikern.
BassFishFox
BassFishFox 30.12.2019 aktualisiert um 01:07:32 Uhr
Goto Top
Das ist so.

Linker Monitor ein Chrome offen mit administrator.de.
Rechter Monitor ein Chrome (Tab raus gezogen auf rechten Bildschirm) offen mit Youtube.
Zusaetzlich offen eine Powershell fuer Deinen Script.

Ich schreibe hier bei Administrator.de, klicke mit der Maus in die Powershell, lasse Script rennen.
Chrome im rechten Monitor mit Youtube geht nicht zu. Der Script findet ja einfach nichts von Chrome ausser das aktive Fenster bzw. den aktiven Tab.

2019-12-29 18_54_47-microsoft edge

Hier im o.g. Bild nix zu sehen von Youtube als Ergebnis obwohl ich gerade das hier ansehe.

https://www.youtube.com/watch?v=fNzyfIKnOug

Hier ist es zu sehen, aber nur weil ich da mal angeklickt habe. Dafuer ist der Chrome mit Administrator.de weg.

2019-12-29 18_59_40-window

An die xml bin nicht noch garnicht ran. Bin nur beim Powershell.

Recht hast Du, dass ein offenes Youtube durch "Zufall" erwischt werden koennte, wenn zur Laufzeit des Task der Browser durch Klick aktiv wird/ist.

Rein aus Interesse ackere ich das Thema (chrome) nebenbei ueber die freien Tage durch, allerdings nicht per powershell.
Das moegen die Gurus hier machen. 😁

BFF
DerWoWusste
DerWoWusste 30.12.2019 um 11:38:42 Uhr
Goto Top
Hm, es wird doch nichts mit der Anzahl an Monitoren zu tun haben? Hier habe ich einen.
Vielleicht mag ja @TecBuddy das Selbe gegenprüfen?
emeriks
emeriks 30.12.2019 um 11:50:33 Uhr
Goto Top
Zitat von @DerWoWusste:
Irgendwie befremdlich, dass Du mir zutraust, das nicht zu wissen face-smile
He he .. face-smile
emeriks
emeriks 30.12.2019 aktualisiert um 12:18:37 Uhr
Goto Top
Noch ne Idee dazu.
Statt dieses Script immer wieder neu über den Scheduler zu starten, und das bei möglichen mehreren Benutzern auch noch für jeden dann auch einrichten zu müssen, könnte man auch noch folgendes versuchen.

Das Script unter Benutzer "SYSTEM" und "bei Systemstart" einmalig ausführen lassen.
Abfrage der Prozesse mit
Get-Process -IncludeUserName
Filtern auf die betreffenden Benutzernamen und die betreffenden Fenstertitel.
Abschließend ein
Start-Sleep 5
o.ä.
Das Ganze in einem Endlos-Loop laufen lassen.

In etwa so
Do { Get-Process -IncludeUserName | where  { ($_.UserName  -like "*\user1" -or $_.UserName -like "*\user2" ) -and ( $_.MainWindowTitle -like "*YouTube*" -or $_.MainWindowTitle -like "*EineZweiteSite*" ) } | stop-process -force ; Start-Sleep 5 } While($True)  
DerWoWusste
DerWoWusste 30.12.2019 um 14:19:10 Uhr
Goto Top
Dürfte nicht klappen, da System nicht die Fenstertitel anderer Sitzungen lesen kann, wenn als Task ausgeführt.
BassFishFox
BassFishFox 30.12.2019 aktualisiert um 16:05:12 Uhr
Goto Top
Hi,

Dann sollte es aber dennoch so sein, dass mehr als ein Chrome(fenster) gefunden wird, wenn sich die alle auf einem Monitor befinden, oder? Macht es aber auch nicht.

2019-12-30 10_04_18-clipboard

Was ich so lese ueber Chrome wegen gezieltem Schliessen von Tab/Fenster, ist das wohl so einfach nicht wenn der Tab/Fenster nicht im Fokus ist.

BFF
DerWoWusste
DerWoWusste 31.12.2019 aktualisiert um 15:16:09 Uhr
Goto Top
Ich werde zum Jahresende passed nochmal zusammenfassen:

Manuelle Aktionen, um der Schließung zu entkommen, wie z.B. die von TecBuddy beschriebene, sind möglich, aber schwierig bis unmöglich, sobald man die Zahl der Trigger erhöht. Ich habe noch keine Leistungstests gemacht, ab wann es häufiges Getriggere überhaupt ins Gewicht fällt - bei 20 Triggern jedenfalls nicht.

Was BFF rausgefunden hat, kann ich hier weder nachvollziehen noch nachstellen - an keinem Rechner. Bei BFF funktioniert der Schutz nicht wirklich, da schon in seiner Powershell keine Fenstertitel mehr gelesen werden, sobald er die Tabs in ein neues Fenster zieht, und er ein anderes Fenster per Klick aktiviert. Rätselhaft! Wer das nachvollziehen kann, bitte melden.

Die Idee von emeriks, doch das Systemkonto zu nutzen und dann einfach ein Skript zu nutzen, das loopt, klappt leider nicht, da Nutzer (in diesem Fall das Systemkonto) keine Fenstertitel anderer Nutzer auslesen können (belehrt mich eines besseren - hier gelingt das nicht). Wer jedoch eine schönere Idee für eine Loop hat, als das über einen Haufen Trigger zu machen, der trage sie bitte bei, sodern er das getestet hat.

PS: ich werde gleich noch einen Edit im Originalbeitrag machen wegen der Trigger bezüglich Uhrzeitanpassung.

So, dann mal auf ins neue Jahr, wünsche gute Parties!
emeriks
emeriks 01.01.2020 um 18:13:02 Uhr
Goto Top
Ich habe das mal mit einem Admin-Konto statt SYSTEM getestet. Damit kann man offenbar die Fenstertitel auslesen. Man könnte den Task also auch mit einem dedizierten Admin-Konto laufen lassen.
DerWoWusste
DerWoWusste 01.01.2020 um 18:14:16 Uhr
Goto Top
Frohes Neues! Als Task getestet? Ich meine, das hatte ich längst erfolglos versucht.
emeriks
emeriks 01.01.2020 um 18:18:15 Uhr
Goto Top
Zitat von @DerWoWusste:
Frohes Neues!
Ja, Dir auch!
Als Task getestet?
Mit SYSTEM ja, das weiß ich noch. Aber da kamen, wie Du schon sagtest, keine Fenstertitel.
Mit Admin-Konto getestet, ja, ob als Task, kann ich jetzt nicht mehr schwören. Habe den Rechner, wo ich das getestet hatte, jetzt nicht in Reichweite.
BassFishFox
BassFishFox 01.01.2020 um 19:26:17 Uhr
Goto Top
So.

Jetzt nochmal von einer niegelnagelneuen W10-Insider-VM (19536) mit gerade installiertem Chrome.
Der ist gestartet und hat 3 Tabs. Je nachdem welcher Tab angeklickt ist wird genau dieser Tab vom PS-Script angezeigt. Die anderen beiden sind quasi unsichtbar fuer Powershell.

2020-01-01 13_05_46-w10 pro eng ins - vmware workstation

Irgendwas muss bei Dir anders sein am System, wenn Du immer alle offenen Tabs/Fenster von Chrome angezeigt bekommst.

Der Edge-Beta ist uebrigens genauso zickig. Ja klar, ist ja die gleiche Quelle.

2020-01-01 13_18_41-w10 pro eng ins - vmware workstation


Gesundes Neues!

BFF
DerWoWusste
DerWoWusste 01.01.2020 um 20:51:05 Uhr
Goto Top
@emeriks: Als Task funktioniert das genau so wenig. Fenstertitel können nur ausgelesen warden, wenn das Skript auf dem selben Desktop läuft, also entweder als User selbst, in einer vom User mit anderen Credentials gestarteten Powershell - nicht als Task.
@bff Nun missverstehst Du. Ich habe selbst geschrieben, dass nur aktive Tabs erwischt werden, wenn mehrere Tabs in einem Browserfenster offen sind
Was ich anzweifle, war doch die zitierte Ansage "Wird ein Tab mit Youtube nach aussen (neues Browserfenster) gezogen schliesst der Script Chrome nicht wenn das aktive Browserfenster nicht das Youtube-Fenster ist. Der Script findet hier kein Youtube obwohl offen." Belegt mit deinem Screenshot
40132575b697685ab6ba4a38250afb56
Und das kann ich in keiner leeren VM nachvollziehen. Sprich, wenn da was komisch läuft, dann wohl eher bei Dir. Noch mal: das was Du zuletzt schreibst und abbildest, ist vollkommen nachvollziehbar und bewusst.
BassFishFox
Lösung BassFishFox 01.01.2020 um 21:18:57 Uhr
Goto Top
Achso.
Na dann das Rausziehen des Youtube-Tabs nochmal in einer VM mit nur einem Display.

2020-01-01 15_06_29-w10 pro eng ins - vmware workstation

"Wird ein Tab mit Youtube nach aussen (neues Browserfenster) gezogen schliesst der Script Chrome nicht wenn das aktive Browserfenster nicht das Youtube-Fenster ist. Der Script findet hier kein Youtube obwohl offen."

Der Script findet das offene Browserfenster mit Youtube nicht, weil es nicht das Aktive ist.

Heisst fuer mich, dass sehr wohl moeglich ist per Chrome Youtube zu schauen. Der Task wird es nur erwischen, wenn es (das Fenster) gerade aktiv ist.


BFF
DerWoWusste
DerWoWusste 01.01.2020 aktualisiert um 22:24:05 Uhr
Goto Top
@bff
Ich zweifele gerade an mir selbst… Ich meine, ich hatte es mehrfach exakt so gemacht, wie Du und jetzt mache ich es ein weiteres Mal, und muss dir Recht geben! Hm...LOL!

Naja… mittlerweile habe ich auch gemerkt, dass Tasks nicht mehr als 48 Trigger haben dürfen, in sofern wird es eh keine Methode mit echter Sicherheit sein können, da die zeitlichen "Lücken" die Methode von BFF ja erst möglich machen. Eine Loop ist auch kein Weg,... tja, dann eben nicht face-smile Reicht eben nur als Alternative für nicht sonderlich findige Kinder face-smile
BassFishFox
BassFishFox 02.01.2020 aktualisiert um 01:39:20 Uhr
Goto Top
Das kommt von der vielen Feierei. 😁

Anyway.
Ich glaube fast, Powershell ist nicht in der Lage (ohne grossen Aufwand) ueberhaupt die Tabs und Fenster zu finden die nicht "aktiv" sind. Hatte ich mehrfach irgendwo gelesen und die die das verneinten sind die Beweise schuldig geblieben.
Powershell werde ich mir nicht mehr reinziehen. Brauch es einfach nicht.
Vielleicht findet sich ja hier ein Powershell-Guru der Aufklaerung leisten kann. 😎

Rein aus Interesse sitze ich gerade mit meinem ollen Autoit daran. Momentaner Stand. Es geht fuer jeden Browser. Ausser Chrome. 🤮
Ich glaub so langsam das ein Pi-Hole mit eigener Liste einfacher wird. 😁

Schoene RestWoche!
BFF
colinardo
Lösung colinardo 02.01.2020, aktualisiert am 03.01.2020 um 12:06:39 Uhr
Goto Top
Servus,
Ich glaube fast, Powershell ist nicht in der Lage (ohne grossen Aufwand) ueberhaupt die Tabs und Fenster zu finden die nicht "aktiv" sind.
Doch ist es, aber jeder Browser hat da so seine Eigenheiten, wie z.B. das Aushängen der Tabs aus der Fensterliste wenn ein Fenster beispielsweise minimiert oder nicht aktiv ist usw,. Dazu bedarf es ein paar Tricks für jeden Browser also sein Rezept welche man sich mit GUI-Tools wie "Inspect.exe" usw zusammenfrickelt face-wink.

Hatte das vor einiger Zeit als c# EXE geschrieben (Inkludierte Browser: IE, Edge, Firefox und Chrome).

Hier die aktuelle praktische Anwendung des Commandline-Tools unter Windows 10 das einfach nur alle Browser-Tab-Titel ausliest:

screenshot

Und alles was du mit c# so machen kannst dank .NET ist auch zu 99% in die Powershell übertragbar.
Dass Ding als PS umschreiben mach ich jetzt aber nicht auch noch.
Wer will darf das Kommandozeilen-Tool gerne hier herunterladen BrowserTabs_529954.zip .(Ohne Gewähr für zukünftige Browser-Versionen)

Ich glaub so langsam das ein Pi-Hole mit eigener Liste einfacher wird. 😁
Würde ich auch empfehlen. Auch gerade weil eure Skripte oben ja einfach *alles* abschießen was im Titel ein bestimmtes Wort hat, nicht nur Browser, da müsste dann schon ein weiteres where-object oder Bedingung in die Pipe, und nur auf Fenstertitel würde ich mich da nicht verlassen.
Wenn, dann schon ein Winsock-Treiber der sich in die DNS-Abfragen des OS einspleist und manipuliert zurückgibt.

So denn ... frohes Neues noch nachträglich.

Grüße Uwe
DerWoWusste
DerWoWusste 03.01.2020 um 08:46:11 Uhr
Goto Top
Moin Uwe, dir auch ein frohes Neues!

Das schließt die Sache dann für mich ab. Wenn man auf Eigenheiten von Browsern eingehen muss, um alle Tabs zu erfassen, dann wird das kompliziert - und das sollte es gerade nicht sein. Somit bleibt dies ein gut gemeinter Versuch, eine Alternative zu bieten, welche aber umgangen werden kann, sobald der Eingeschränkte ein bißchen rumprobiert. Wird aber immer noch langen, um bei der Party ein paar Spaß### die Möglichkeit zu erschweren, mal einen "dänischen Western" auf dem Beamer anzuwerfen. Wer's dennoch täglich nutzen will, muss sich dann noch ausdenken, wie er die Trigger zuverlässig startet.

Viele Home-Router wie die Fritzbox haben ja eh ein eingebautes Black- und Whitelisting, welches man zumindest pro verbundenes Gerät aktivieren kann. Für weitere Möglichkeiten kann man auch reichlich Anleitungen finden

Danke für alle Anregungen!