タイトルにあるように、コマンドPrompt/powershell/a batch fileを使用して、Win10でホットスポットインビルドを有効/無効にする方法を探しています。 GUIでは、ネットワークパネルの3番目のボタン(下の画像を参照)で簡単に実行できますが、自動化したいと思います。
私はすでに数百のチュートリアルを見つけました新しいホットスポットをnetsh経由で作成しますが、私が理解しているように、これは別の異なるホットスポットを作成します。代わりに、すでに構成されているものを使用したいと思います。または、Win10は同じで、毎回新しいホットスポットを作成しますが、メモリの間に設定のみが作成されますか?
前もって感謝します、
セバスチャン
編集:
私は少し遊んで、次のことを発見しました:
netsh wlan show drivers
と入力すると、hosted network supprt: no
と表示されます。したがって、「一般的な」ソリューションの場合、ドライバーを更新する必要がありました。Microsoft Wi-Fi Direct Virtual Adapter #x
が作成されるようです。 HotSpotを非アクティブ化するとすぐに、アダプターが消えます。したがって、MSは組み込みホットスポットにnetshバリアントとは非常に異なる手法を使用しているようです。これは私に再び質問をもたらします:このホットスポットの有効化/無効化を(スクリプトによって)自動化するにはどうすればよいですか?
ホスト型ネットワーク(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とパスフレーズをプログラムで設定することもできます。
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
現時点での唯一の解決策は、起動時にボタンをクリックする自動ホットキースクリプトを設定することだと思います。 Windows + A、Shiftタブ、下矢印など...ヘッドレスPCでwifiリモートデスクトップを使用できるようにするためにこれが必要です。
上記のPowerShellコメント に基づく、
他のツールなどに依存せずにC++を使用してWiFiDirect 2.0 HotSpotアクティビティの上記のタスクを実行するためのミックス/マッチのWinRTコードコンポーネントは次のとおりです(IoTコアなどで動作します)。
#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();
}
}
Windows 10モバイルホットスポットは、Windowsモバイルホットスポットサービス(icssvc)によって開始されます。 Powershellの使用:
サービスの現在の状態を取得します。
get-service "icssvc"
サービスを開始します。
start-service "icssvc"
サービスを停止します。
stop-service "icssvc"
ホットスポットを構成したい場合は、それは別のことです。 Googleの「PowerShellを使用したインターネット接続の共有の構成」で開始できます。