1

Windows 10 でコマンド プロンプトまたは PowerShell から WPS クライアントを起動する方法が見つかりません。Linux を使用していたときは、wla_supplicant (wpa_cli wps_pbc) を使用すると、すべてが非常に簡単になりました。Windowsに似たようなものはありますか?

Windowsで人間の入力なしでWi-Fiネットワーク(WPS経由)キーを設定する方法を知っている人はいますか?

また、WPS 機能を実装している Microsoft のWCN ( Windows Connect Now ) も試しました。WCN で Windows SDK のサンプルも取得しましたが、WPS でキーを取得できませんでした (失敗しました)。しかし、Windows ユーザー インターフェイスを使用して PIN を使用せずに接続すると、すべてがうまくいくようです。

それを行う可能性があると確信しています。人間の介入や入力なしで、コマンド プロンプトまたはアプリ (C++/C#) からボタン スタートで Wifi Protected Setup を実行することが非常に重要です (WPS がオンエアされると、Windows は自動的にネットワークキーを入力してから接続します)。

4

3 に答える 3

0

@アレックス・ウェイ

このソリューションは構築できますが、実行時に例外がスローされます

static private async Task ConnectWifiAsync(int connection_timeout, string SSID, string BSSID)
    {
        DeviceInformationCollection dic = await DeviceInformation.FindAllAsync(WiFiAdapter.GetDeviceSelector());
        if (dic.Count > 0){
            var adapter = await WiFiAdapter.FromIdAsync(dic[0].Id);
            foreach (var an in adapter.NetworkReport.AvailableNetworks){
                if (an.Ssid == SSID && an.Bssid == BSSID){
                    var ConnectTask = adapter.ConnectAsync(an, WiFiReconnectionKind.Manual, null, "", WiFiConnectionMethod.WpsPushButton);
                    if (await Task.WhenAny((Task)ConnectTask, Task.Delay(connection_timeout)) == ConnectTask){
                        Console.WriteLine("Connection completed within timeout");
}}}}}

Task.WhenAny(): Unhandled Exception: System.InvalidCastException: タイプ 'System.__ComObject' の COM オブジェクトをクラス タイプ 'System.Threading.Tasks.Task' にキャストできません。COM コンポーネントを表す型のインスタンスは、COM コンポーネントを表さない型にキャストできません。ただし、基になる COM コンポーネントがインターフェイスの IID に対する QueryInterface 呼び出しをサポートしている限り、インターフェイスにキャストできます。ConsoleApp2.Program.d__1.MoveNext() で

于 2022-01-27T05:37:44.753 に答える