web-dev-qa-db-ja.com

cmd / batch / powershellでWin10インビルドホットスポットを有効にする

タイトルにあるように、コマンドPrompt/powershell/a batch fileを使用して、Win10でホットスポットインビルドを有効/無効にする方法を探しています。 GUIでは、ネットワークパネルの3番目のボタン(下の画像を参照)で簡単に実行できますが、自動化したいと思います。

私はすでに数百のチュートリアルを見つけました新しいホットスポットをnetsh経由で作成しますが、私が理解しているように、これは別の異なるホットスポットを作成します。代わりに、すでに構成されているものを使用したいと思います。または、Win10は同じで、毎回新しいホットスポットを作成しますが、メモリの間に設定のみが作成されますか?

前もって感謝します、

セバスチャン


編集:

私は少し遊んで、次のことを発見しました:

  1. 私の現在のWiFiドライバーはホストされたネットワークをサポートしていません。 netsh wlan show driversと入力すると、hosted network supprt: noと表示されます。したがって、「一般的な」ソリューションの場合、ドライバーを更新する必要がありました。
  2. それでも、組み込みソリューションを使用してHotSpotを作成できます(画像を参照)。
  3. このHotSpotウィンドウをアクティブにすると、追加のMicrosoft Wi-Fi Direct Virtual Adapter #xが作成されるようです。 HotSpotを非アクティブ化するとすぐに、アダプターが消えます。

したがって、MSは組み込みホットスポットにnetshバリアントとは非常に異なる手法を使用しているようです。これは私に再び質問をもたらします:このホットスポットの有効化/無効化を(スクリプトによって)自動化するにはどうすればよいですか?

7
casiosmu

ホスト型ネットワーク(netsh wlan set hostednetwork ...コマンドを使用して構成できます)と「新しい」モバイルホットスポットは、内部で異なるテクノロジーを使用します。

参照している「新しい」モバイルホットスポットを制御および構成するためのWinRTAPIがあります。 PowerShellから呼び出すことができます。

次のコードスニペットには Ben N.のPowerShellでのIAsyncOperationおよびIAsyncActionの待機関数。ここにあります が必要です。

$connectionProfile = [Windows.Networking.Connectivity.NetworkInformation,Windows.Networking.Connectivity,ContentType=WindowsRuntime]::GetInternetConnectionProfile()
$tetheringManager = [Windows.Networking.NetworkOperators.NetworkOperatorTetheringManager,Windows.Networking.NetworkOperators,ContentType=WindowsRuntime]::CreateFromConnectionProfile($connectionProfile)

# Be sure to include Ben N.'s await for IAsyncOperation:
# https://superuser.com/questions/1341997/using-a-uwp-api-namespace-in-powershell

# Check whether Mobile Hotspot is enabled
$tetheringManager.TetheringOperationalState

# Start Mobile Hotspot
Await ($tetheringManager.StartTetheringAsync()) ([Windows.Networking.NetworkOperators.NetworkOperatorTetheringOperationResult])

# Stop Mobile Hotspot
Await ($tetheringManager.StopTetheringAsync()) ([Windows.Networking.NetworkOperators.NetworkOperatorTetheringOperationResult])

NetworkOperatorTetheringManager クラスを使用すると、ホットスポットのSSIDとパスフレーズをプログラムで設定することもできます。

7
Julius Hardt

CMDを使用する。 PCをホットスポットに変えるのは簡単すぎます。ただし、PCでホスト型ネットワークがサポートされている必要があります。チェックアウトするには、このコマンドを試してください。

    @echo off
REM    Copyright (C) 2013  
REM    user49828
REM
REM    Batch file for creating Wifi Hotspot
if _%1_==_payload_  goto :payload

:getadmin
    echo %~nx0: elevating self
    set vbs=%temp%\getadmin.vbs
    echo Set UAC = CreateObject^("Shell.Application"^)                >> "%vbs%"
    echo UAC.ShellExecute "%~s0", "payload %~sdp0 %*", "", "runas", 1 >> "%vbs%"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
goto :eof

:payload
    echo %~nx0: running payload with parameters:
    echo %*
    echo ---------------------------------------------------
    cd /d %2
    shift
    shift
    rem put your code here
    rem e.g.: Perl myscript.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
    :start
@ECHO off
ECHO  Pleae select one of the options Programmed By Overflown.com  "user49828"
ECHO  --------------------------------------------------------------------------------------------------------------------------
ECHO  1 Hotspot settings
ECHO  2 Start Hotspot
ECHO  3 Stop  Hotspot
ECHO  --------------------------------------------------------------------------------------------------------------------------

SET /p option=Please enter one of the options:

if %option%==1  ( goto setup )      else set /a er=1
if %option%==2  ( goto start1 )      else set /a er=er+1
if %option%==3  ( goto stop )       else set /a er=er+1

:noOption
if %er% GEQ 3 ( 
Echo Error!
Echo Please enter a correct option
@pause
cls  
goto start
)

:setup
SET /p ssid=Please enter the Hotspot name:
SET /p key=Please enter the Hotspot password greater the 8 digits:
netsh wlan set hostednetwork mode=allow ssid=%ssid% key=%key% 
if %errorlevel%==0 (
ECHO Setup complete
)
@pause
cls  
goto start

:start1
netsh wlan start hostednetwork
@pause
cls  
goto start

:stop
netsh wlan stop hostednetwork
@pause
cls  
goto start
goto :eof
0
user49828

現時点での唯一の解決策は、起動時にボタンをクリックする自動ホットキースクリプトを設定することだと思います。 Windows + A、Shiftタブ、下矢印など...ヘッドレスPCでwifiリモートデスクトップを使用できるようにするためにこれが必要です。

0
MartinP

上記のPowerShellコメント に基づく、

他のツールなどに依存せずにC++を使用してWiFiDirect 2.0 HotSpotアクティビティの上記のタスクを実行するためのミックス/マッチのWinRTコードコンポーネントは次のとおりです(IoTコアなどで動作します)。

  • プログラムで[〜#〜] ssid [〜#〜]および/またはPassPhraseを設定します
  • プログラムで現在のWiFiDirect 2.0HotSpotをクエリしますステータス
  • プログラムでオンにするオン/オフ WiFi Direct 2.0 HotSpot
#include <winrt/Windows.Networking.Connectivity.h>
#include <winrt/Windows.Networking.NetworkOperators.h>
namespace winrt { // /ZW embed in :<winrt> when `Windows` is ambiguously defined
  static void af_winrt_wifi_hotspot_test() {
    // start ms-settings:network-mobilehotspot
    init_apartment(); // apartment_type::multi_threaded
    auto connectionProfile { Windows::Networking::Connectivity::NetworkInformation::GetInternetConnectionProfile() };
    auto tetheringManager = Windows::Networking::NetworkOperators::NetworkOperatorTetheringManager::CreateFromConnectionProfile(connectionProfile);
    switch(tetheringManager.TetheringOperationalState()) {
      case Windows::Networking::NetworkOperators::TetheringOperationalState::Off: {
          auto ioAsync = tetheringManager.StartTetheringAsync();
          auto fResult = ioAsync.get();
        }
        break;
      case Windows::Networking::NetworkOperators::TetheringOperationalState::On: {
          auto ioAsync = tetheringManager.StopTetheringAsync();
          auto fResult = ioAsync.get();
        }
        break;
      case Windows::Networking::NetworkOperators::TetheringOperationalState::InTransition:
      default:
        break;
    }
    clear_factory_cache();
    uninit_apartment();
  }
}
0
smallscript

Windows 10モバイルホットスポットは、Windowsモバイルホットスポットサービス(icssvc)によって開始されます。 Powershellの使用:

サービスの現在の状態を取得します。

get-service "icssvc"

サービスを開始します。

start-service "icssvc"

サービスを停止します。

stop-service "icssvc"

ホットスポットを構成したい場合は、それは別のことです。 Googleの「PowerShellを使用したインターネット接続の共有の構成」で開始できます。

0
Takslak