web-dev-qa-db-ja.com

CLIを使用してWindows7でポリシーベースのQoSを作成するにはどうすればよいですか?

ToS(QoS)サポートをSIPクライアント(オープンソースのLinphoneから取得)に次のように追加しようとしています:

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

しかし、Windows 7では、ToSを追加する試みはすべて失敗しました。 (Wiresharkで見られるように)ゼロを設定し続けます。これはWindowsの「機能」(バグを読む)だと誰かが言った。

このページ QoSポリシーの作成方法を読んだので、GUIを使用して手動で作成しました。

Screenshot of Policy Editor showing QoS configuration

次の手順を試しました。

  1. HKLM\System\CurrentControlSet\Services\Tcpip\QoSに移動します
  2. QoSキーが存在しない場合は、作成します
  3. REG-SZという名前のDo not use NLAパラメータを追加し、値1を指定します
  4. リブート

希望どおりに機能しますが、私の質問は、そのようなポリシーの作成を自動化するにはどうすればよいですか(たとえば、プログラムのインストール中に実行できるようにするため)?

[編集]

私のコードは純粋なCであり、minGW環境と./configure && make && make installのツールを使用しているため、C#ソースコードを使用するのは少し問題があります。

3
Maxim Shoustin

記事 Windowsでローカルポリシーをプログラムで更新する は、この問題を支援できる.NETライブラリについて説明しています。

.netプログラムを作成したくない場合、最も簡単な解決策は、そのグループポリシーを作成するGUI操作を実行する AutoHotkey マクロを作成することです。これはおそらく.exeにコンパイルされます。

Windows8またはServer2012を使用している場合、PowerShellを介してQoSの構成が可能です。
Windows PowerShellのネットワークサービス品質(QoS)コマンドレット

1
harrymc