Wie erstelle ich über die CLI eine richtlinienbasierte QoS unter Windows 7?

Wie erstelle ich über die CLI eine richtlinienbasierte QoS unter Windows 7?

Ich versuche, einem SIP-Client (vom Open-Source-Programm Linphone übernommen) ToS-Unterstützung (QoS) wie folgt hinzuzufügen:

retval = setsockopt(session->rtp.socket, proto, value_type, (SOCKET_OPTION_VALUE)&tos, sizeof(tos));

Aber in Windows 7 schlugen alle meine Versuche, ToS hinzuzufügen, fehl; es werden weiterhin Nullen gesetzt (wie in Wireshark zu sehen). Jemand sagte, es sei ein „Feature“ (sprich: Bug) in Windows.

Ich lese indiese Seitewie man eine QoS-Richtlinie erstellt, also habe ich manuell eine mithilfe der GUI erstellt:

Screenshot des Richtlinien-Editors mit der QoS-Konfiguration

Ich habe die folgenden Schritte versucht:

  1. Gehe zuHKLM\System\CurrentControlSet\Services\Tcpip\QoS
  2. Erstellen Sie den QoSSchlüssel, falls er nicht existiert
  3. Fügen Sie einen REG-SZParameter mit dem Namen hinzu Do not use NLAund geben Sie ihm den Wert1
  4. Neustart

Es funktioniert wie gewünscht, aber jetzt ist meine Frage, wie ich die Erstellung einer solchen Richtlinie automatisieren kann (z. B. so, dass dies während einer Programminstallation erfolgen kann)?

[BEARBEITEN]

Mein Code ist reines C und die Verwendung von C#-Quellcode wäre etwas problematisch, da ich die minGWUmgebung und Tools mit verwende ./configure && make && make install.

Antwort1

Der ArtikelProgrammgesteuertes Aktualisieren lokaler Richtlinien in Windowsbeschreibt eine .NET-Bibliothek, die bei diesem Problem helfen kann.

Wenn Sie kein .net-Programm schreiben möchten, besteht die einfachste Lösung darin, ein AutoHotkeyMakro, möglicherweise zu einer EXE-Datei kompiliert, das die GUI-Manipulationen durchführt, die diese Gruppenrichtlinie erstellen.

Wenn Sie Windows 8 oder Server 2012 verwenden, ist die Konfiguration von QoS über PowerShell möglich:
Netzwerk-QoS-Cmdlets (Quality of Service) in Windows PowerShell.

verwandte Informationen