Windows 7/8/10 Tastenkombination der Sprachausgabe deativieren (Win+Enter)

Problem

Sprachausgabe deaktivierenDie Windows-Sprachausgabe ist manchmal etwas lästig, vor allem wenn diese ungefragt aufpoppt. Das passiert bei einem falschen Hotkeys beim Programmieren oder Administrieren und schon quasselt die Stimme los. Besonders auf den an sich schon ungeschickt designten Macbook/MB-Air Tastaturen wo ein Apple-Spezialgehirn die CMD-Taste so dämlich plaziert hat nervt das beim Verwalten mehrere Maschinen häufiger.

Mi Win+Enter beendet man das Tool zwar (fast) schnell wieder, aber eigentlich wäre das ja nicht notwendig.

Lösung

Die Sprachausgabe befindet sich in %SystemRoot%\System32 und heisst „narrator.exe“. Nach einer beherzten Besitzübernhame der EXE kann man diese umbenennen (z.B. „narrator_nervig.exe“) und das Hotkey ist ab diesem Zeitpunkt tot.

Windows 10 VPN TCP/IP-Einstellungen funktionieren nicht („Remotegateway als Standartgateway verwenden“)

Problem

windows10-vpn-tcp-eigenschaften-funktionieren-nichtUnter Windows 10 funktioniert der „Eigenschaften“ Dialog der TCP/IP-Einstellungen nicht. Egal ob man v4 oder v6 auswählt, es erscheint kein neues Fenster, es lassen sich keine Einstellungen machen.

Das ist besonders ärgerlich, weil der Administrator den Haken unter „Erweitert“ bei „Standardgateway für das Remotenetzwerk verwenden“ nicht mehr setzen kann. Ist der Haken gesetzt (Standard), sorgt die Einstellung dafür, das jeglicher WAN-Traffic über das Remotenetzwerk abgewickelt wird. Auch der Youtube-Traffic läuft dann über das Remotenetzwerk.

Lösung

Der Dialog funktioniert schlicht nicht, das Problem ist bekannt („Microsoft has confirmed this to be a Problem“). Die Einstellungen lassen sich glücklicherweise an der PowerShell vornehmen.

# Anzeigen der Verbindungen (mit Einwählpunkten)
Get-VpnConnection | Select-Object name,serveraddress
# Setzen der Einstellung (pro Verbindung)
Set-VpnConnection "NAME DER VERBINDUNG" -SplitTunneling $true

PowerShell: Gruppen aus dem ActiveDirectory mit ihren Mitgliedern auflisten

Problem

Eine Management-Anforderung:

Bitte erstellen sie mal eben eine Liste alle Gruppen aus unserem ActiveDirectory mit allen Mitgliedern darin. Oh, am besten sowohl der DisplayName und auch der ganze LDAP-Pfad – und wenn es verschachtelte Gruppen, gibt nur den Gruppennamen.

Lösung

Der finde Admin weiss: So eine Liste ist, einmal erstellt, recht statisch und daher über die Zeit mehr und mehr realitätsfern, aber das zu erstellen ist natürlich ein Problem. Die Ausgabe ist natürlich ein schneller Hack, der erfahrene Admin baut selbstverständlich besser erst ein Objekt zusammen und wendet auf dessen Eigentschaften eine ausgabemethode an.

$Groups = Get-ADGroup -Properties * -Filter *
Foreach($G In $Groups) {
    $G.Name         | Out-File -Append .\gruppenliste.txt
    "---------------------" | Out-File -Append .\gruppenliste.txt
    $G.Members      | Out-File -Append .\gruppenliste.txt
    }

Die Gruppenliste liße sich selbstverständlich auch Filtern, zum Beispiel „Nur Gruppen die ‚rothaarig‘ im Namen haben“:

# $Groups = Get-ADGroup -Properties * -Filter {name -like "*rothaarig*"}

psexec „Das System kann die angegebene Datei nicht finden.“

Problem

Warum funktioniert PSEXEC (aus den Sysinternal tools) scheinbar sporadisch nicht? Zum Beispiel funktioniert der Befehl:

psexec \\SERVER net start <FOOBAR>

fehlerfrei, aber dieser Befehl hingegen

psexec \\SERVER rd /Q /S <C:\FOOBAR>

funktioniert nicht und gibt die scheinbar sinnlose Fehlermeldung „Das System kann die angegebene Datei nicht finden.“ zurück.

Lösung

PSEXEC führt im Standardfall nur Prozesse aus. „net“ ist ein normales Programm (net.exe), also ein Startbarer Prozess. „rd“ hingegen, wie auch „dir“, „type“, „find“ und so weiter sind keine externen Programme, sondern Befehle der Shell, also Kommandos des Prozesses CMD. Um diese auszuführen, muss man also eine CMD-Shell via PSEXEC starten und dieser Shell dann die Kommandos übergeben.

Das Beispiel funktioniert fehlerfrei so:

psexec \\SERVER cmd /c rd /Q /S <C:\FOOBAR>

Der Parameter „/c“ für CMD.EXE Führt den Befehl in der Eingabe einfach aus und endet dann.