Gruppenrichtlinien-Filterung

windows-ad-gpo-wmi-filter-intro-bannerDie Anweundung von Active Directory Gruppenrichtlinien lässt eine Filterung und Steuerung über verschiedene Techniken zu:

  • Verknüpfung mit OUs (die Voraussetzung ist gewissermaßen die erste Filterebene), Verknüpfungen aktivieren/deaktivieren
  • Sicherheitsfilterung mit Gruppen und Rechten
  • WMI-Filterung

Die ersten beiden sind gewissermaßen schon die Voraussetzung für das Erstellen und Anwenden einer Gruppenrichtlinie. Mit einer guten OU- und Gruppenstrukturen lassen sich bereits viele „Filter“ realisieren. Allerdings sind Rechte, Gruppen und OUs oftmals auch aufwändig in der Pflege.

Negativbeispiel: Mit einer „Windows10Clients“-Gruppe kann eine Filterung auf Sicherheitsebene vollzogen werden. Dazu muss die „Windows10Clients“-Gruppe jedoch händisch von den Admins gepflegt werden – neue Clients rein, alte Clients raus. Ebenso eine „SalesPCs“-Gruppe. In größeren Strukturen ist das nicht umsetzbar und geht auch einfacher.

Erweiterte Gruppenrichtlinienfilterung mit WMI

Hier kommen WMI-Filter ins Spiel. WMI, Windows Management Instrumentation, ist praktisch eine Schnittstelle zum Windows System, welches über Abfragen in einer Art SQL (WQL genannt) bedient wird und Informationen über das abgefragte System liefert. Solche Abfragen können ebenfalls für die Filterung von GPOs verwendet werden.

Beispiel: Wenn eine GPO nun also nur für Windows 10 Clients oder nur für Clients älter als Windows 10 übernommen werden soll, lassen sich die Clients super easy über WMI herausfiltern. Keine OU, keine Gruppen, nur 1 WMI-Objekt, im Endeffekt nur eine Zeile Code.

Mit Google oder Tools wie dem WMI Code Creator von Microsoft lassen sich somit schnell die benötigten Abfragen erstellen:
windows-ad-gpo-wmi-filter-code-creator-classes-processor-executewindows-ad-gpo-wmi-filter-code-creator-classes

Codebeispiele

Die Möglichkeiten sind vielseitig, hier ein paar Beispiele:

/* 32bit / 64bit */
SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture = '32-Bit'
SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture = '64-Bit'
/* Computername beginnt mit "vpc-" */
SELECT * FROM Win32_ComputerSystem WHERE Name LIKE 'vpc-%'
/* Sprache des Betriebssystems ist Deutsch */
SELECT * FROM Win32_OperatingSystem WHERE CountryCode = '49'
/* Internetexplorer ist in Version 8 installiert */
SELECT * FROM CIM_DataFile WHERE Filename = 'iexplore' AND version > '8.0' AND (path = '\\programme\\Internet Explorer\\' OR path = '\\program files\\Internet Explorer\\' )

via

Vorsicht: Betriebssystemversion und BuildNumber

Etwas nerviger ist die Abfrage der Windows Version anhand der BuildNumber, da diese nicht als Zahl sondern als String im System steht und somit einfache BuildNumber >= X Abfragen nicht funktionieren. Microsoft thematisiert das hier und wählt den Regex-ähnlichen Ansatz über die Anzahl der Ziffern in Kombination mit der BuildNumber. Auch Marc von gruppenrichtlinien.de verwendet WHERE BuildNumber > '5000' – das alles lief bei mir nicht zuverlässig. BuildNumber scheint mir ein schlechtes Werkzeug zu sein und ich gehe daher über die Betriebssystem Caption, die sehr standardisiert ist:

/* Windows 10 Clients */
SELECT * FROM Win32_OperatingSystem WHERE Caption LIKE '%10%' AND BuildNumber LIKE '[123456789][0123456789][0123456789][0123456789][0123456789]'
/* Alle Clients vor Windows 10 */
SELECT * FROM Win32_OperatingSystem WHERE NOT Caption LIKE '%10%' AND BuildNumber LIKE '[123456789][0123456789][0123456789][0123456789]'

Das hat bei Win7 und Win10 funktioniert wie erwünscht.
windows-ad-gpo-wmi-filter-in-use-os-version-buildnumber

Was? Warum?

Ich hatte letztens das Problem an einem Windows 10 Client, das nach einem Feature Update (auf 1709 glaube ich) plötzlich die Sprache des Betriebssystems auf Englisch war. Jedoch nur die Anzeigesprache, Tastaturlayout, Datum & Uhrzeit sowie Regionale Einstellungen waren alle noch auf Deutsch. Deutsch war als primäre Sprache noch eingestellt, aber ein zugehöriges Sprachpaket für die Anzeigensprache war nicht mehr verfügbar:
windows-10-anzeigesprache-manuell-installieren-language-pack-display-settings1windows-10-anzeigesprache-manuell-installieren-language-pack-display-settings2

Und obwohl auf etlichen Microsoft Seiten steht, dass man über diese Einstellungsdialoge einfach Sprachen mitsam Anzeigepaket herunterladen kann, funktioniert das in diesem Zustand nicht mehr. Auch das Löschen und erneute Einstellen der Deutschen Sprache bringt die Anzeigesprache nicht zurück.

Anzeigesprache mit .cab Sprachpaket installieren

So seltsam der Fehler auch ist, so selten wird er vermutlich sein. Aber dennoch, hier die Lösung:
Im Internet findet man nach einer kurzen Suche Sprachpakete als .cab Downloads, zum Beispiel bei Tobias Hartmann. Diese .cab Dateien könnt ihr dann manuell installieren in: Start -> Ausführen -> lpksetup – der Vorgang wird einige Minuten brauchen:
windows-10-anzeigesprache-manuell-installieren-language-pack-display-install1windows-10-anzeigesprache-manuell-installieren-language-pack-display-install2

Anschließend müsste bei der installierten Sprache auch wieder die Anzeigesprache in den Regionaleinstellungen angezeigt werden und nach einem kurzen Relogin ist das Betriebssystem auch schon auf die neue Sprache eingestellt.
windows-10-anzeigesprache-manuell-installieren-language-pack-display-install-complete

Microsoft, das geht doch bestimmt auch einfacher.

In manchen Fällen kann es hilfreich sein, die Audiowiedergabe bestimmter Tabs oder Domains zu manuell oder auch automatisch zu blocken. Automatisch startende Werbung, unerwünschte Soundeffects oder Ähnliches. 3 Möglichkeiten möchte ich euch hier zeigen:

Manuell: Kontextmenüeintrag

chrome-audiowiedergabe-blocken-tab-kontexteintragDas ist kein Geheimnis: Chrome hat im Rechtsklick-Kontextmenü der Tabs die Möglichkeit, diese stummzuschalten:
Per Klick auf den Menüpunkt lässt sich zwischen Stummschalten und Audiowiedergabe wechseln.

Besser wäre es natürlich, wenn man dafür nicht zwei Klicks (Rechtsklick und Linksklick) sondern nur einen Klick bräuchte:

Manuell: One-Click Lösung

chrome-audiowiedergabe-blocken-tab-single-click-resultWenn Chrome in einem Tab Audio wiedergibt, wird dies durch ein kleines Lautsprechericon im Tab angezeigt:
Es ist auch möglich, per einfachen Linksklick auf dieses Icon den Tab stummzuschalten.
Dazu muss vorher allerdings eine Chrome-Einstellung aktiviert werden, die ihr über folgende „URL“ erhaltet:
chrome-audiowiedergabe-blocken-tab-single-clickchrome://flags/#enable-tab-audio-muting
(Ihr müsst die URL kopieren und selbstständig in eure Adressleiste einfügen)

Nun möchte man vielleicht nicht nur einen Tab muten, oder es nicht immer manuell per Klick machen, sondern eine ganze Domain generell und automatisch stummschalten.

Automatisch: Alle Tabs einer Domain stummschalten

chrome-audiowiedergabe-blocken-domain-settingGanz neu, mit Chrome Version 62, kommt eine Einstellung namens „Sound content setting“, welche die Steuerung von Audiowiedergabe auf Domainebene ermöglicht. Nach dem Aktivieren der Funktion und einem Chrome Neustart, könnt ihr im Protokoll-Infobutton (links von der Adresszeile) nun „Ton“ aktivieren oder deaktivieren.
Einmal z.B. auf Youtube eingestellt, sind alle Tabs, auch zukünftige, stummgeschaltet.
Folgende Einstellung muss dafür aktiviert werden:
chrome://flags/#sound-content-setting
Bitte den Text in die Adresszeile kopieren. Wenn dann die Einstellung nicht direkt hervorgehoben wird, prüft bitte, ob ihr Chrome 62 installiert habt.

Offtopic: Chrome leise, restlicher Sound laut

Hängt nicht direkt mit Stummschalten zusammen aber ich höre öfter, dass manche diese System-Funktion noch nicht kennen:
Windows ermöglicht über einen Lautstärkemixer, die Lautstärke einzelner Programme getrennt voneinander zu verstellen:
chrome-audiowiedergabe-blocken-windows-mixer
Ihr findet diesen z.B. bei Windows 10 über das Kontextmenü eures System-Lautstärke-Icons -> „Lautstärkemixer öffnen“. Hier könnt ihr zum Beispiel Chrome insgesamt etwas leiser schrauben, Systemsounds runter, das Softphone aber auf Maximum. Das kann in manchen Situationen sehr hilfreich sein.

Billionen Fotos werden heutzutage in einem Jahr gemacht und zig Milliarden Bilder täglich im Internet verteilt. Fotos kommen und gehen, sie versickern in den Ordnerstrukturen technischer Geräte oder den digitalen Weiten Terabyte-großer Festplatten. Nur die Wenigstens schauen sich die alten Foto-Ordner auf dem PC überhaupt noch einmal an und um sich alle seine Fotos noch einmal anzusehen, bräuchten wir sowieso viel mehr Zeit, als wir haben. Sie existieren digital so daher, für den seltenen Fall der Fälle.

Zeit aus den Fotos wieder etwas Wertvolleres zu machen, sie wieder wertzuschätzen, mit ihnen Erinnerungen wiederzuerleben, sie in den Händen zu halten! Und Letzteres geht selbstverständlich nur (wobei diese Aussage in der heutigen Zeit schon fast wieder falsch ist) in einer physischen Form. Beispielsweise mit den Fotogeschenken von CEWE – bin ich ganz ehrlich ein Fan von. Bei mir und meiner Freundin ist es so, dass der größte und schönste Urlaub des Jahres als Foto-Memory bestellt wird. Die 25 besten Fotos können wir dann spielend einfach wieder und wieder „erleben“.
foto-geschenke-von-cewe-fotoprint-memory-22 foto-geschenke-von-cewe-fotoprint-memory-2

foto-geschenke-von-cewe-fotoprint-memory-3Mindestens ein Set haben wir auf Reisen immer dabei. Eine Runde Memory geht schnell, macht Spaß, weckt Erinnerungen und hält fit im Kopf. Wer die Hürde übersteht, die 25 besten Bilder einer Sammlung auszuwählen (das kann komplizierter sein als es klingt), wird mit einem wirklich schönen, persönlichen und qualitativen Geschenk beglückt.
Alternativ gibt es viele andere Angebote bei Cewe, da ist für Jeden etwas dabei und auch ich habe schon einige Produkte durch. Die Druckqualität ist immer top, am Service und der Lieferzeit gibt es auch nichts zu Meckern. Ich empfehle die PC-Software zur Gestaltung, vor allem beim Memory, die ist praktischer.

Außerdem bietet cewe-print.de auch eine riesige Auswahl an Businessprodukten; von A wie Aufklebern über Messeaufsteller bis hin zu Z wie bedruckte Zelte. In aktuell 81 Kategorien bleiben nicht viele Druckwünsche offen.

Insgesamt möchte ich vor allem die Empfehlung geben: Nehmt euch die Zeit und macht aus euren wichtigsten Fotos und euren wertvollsten und bedeutendsten Momenten etwas „Echtes“, holt sie aus dem PC heraus in irgendeine schöne Form, die euren Alltag verschönert und auch beachtet wird. Memory ist da mit 25 Fotos, die man verwenden kann, schon echt praktisch.

Skript als Admin via Kontextmenü

Powershell Skripte haben in der Handhabung einen kleinen Nachteil gegenüber Batch-Skripten: Sie lassen sich nicht einfach über das (Rechtsklick-)Kontextmenü als Administrator starten.
powershell-skripte-run-as-admin-standard-before

Kontextmenüeintrag für ein bestimmtes Skript

Erstellt von der Skriptdatei eine Verknüpfung via Rechtsklick -> Senden an -> Desktop und öffnet die Eigenschaften dieser Verknüpfung. Unter Ziel wird der Pfad zur .ps1 Datei angegeben. Verändert das Ziel folgendermaßen:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -NoExit "[Pfad]"

Optional kann über „Anderes Symbol…“ -> C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -> das Powershell-Icon mit UAC-Icon eingestellt werden. Somit ist die Verknüpfung visuell als eine Admin-fähige Verküpfung gekennzeichnet:
powershell-skripte-run-as-admin-shortcut-after-context-menu

Kontextmenüeintrag für jedes Skript

Noch besser: Der Kontextmenü-Eintrag „Als Administrator ausführen“ bei jeder Powershell-Datei, ohne Verknüpfung. Hierzu müssen in der Registry Änderungen gemacht werden, die sich am einfachsten über Batch Skripte ausführen lassen:

Kontextmenüeintrag hinzufügen:

:: Add value for UAC shield icon:
REG ADD "HKCR\Microsoft.PowerShellScript.1\Shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
:: Add value to create context menu item:
REG ADD "HKCR\Microsoft.PowerShellScript.1\Shell\runas\command" /ve /t REG_EXPAND_SZ /d "\"%%SYSTEMROOT%%\System32\WindowsPowerShell\v1.0\powershell.exe\" -executionpolicy bypass -nologo -file \"%%1\"" /f

(Hinweise: Der Code MUSS mit Adminrechten in der CMD ausgeführt werden – entweder von Hand oder in einem .bat Skript zwischenlagern.)
powershell-skripte-run-as-admin-regedit-batch-commands
powershell-skripte-run-as-admin-regedit-after-context-menu

Kontextmenüeintrag wieder entfernen:

REG DELETE "HKCR\Microsoft.PowerShellScript.1\Shell\runas" /f

via