Skip to content

Instantly share code, notes, and snippets.

@datio
Last active June 21, 2025 22:08
Show Gist options
  • Save datio/e78649083f238b779f0a68526c191dda to your computer and use it in GitHub Desktop.
Save datio/e78649083f238b779f0a68526c191dda to your computer and use it in GitHub Desktop.
Enable Windows 10 & 11 WiFi Hotspot - Powershell Script
# https://stackoverflow.com/questions/45833873/enable-win10-inbuild-hotspot-by-cmd-batch-powershell/60444585#answer-60444585
[Windows.System.UserProfile.LockScreen,Windows.System.UserProfile,ContentType=WindowsRuntime] | Out-Null
Add-Type -AssemblyName System.Runtime.WindowsRuntime
$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]
Function Await($WinRtTask, $ResultType) {
$asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
$netTask = $asTask.Invoke($null, @($WinRtTask))
$netTask.Wait(-1) | Out-Null
$netTask.Result
}
# https://stackoverflow.com/a/55563418
$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])
@fast-blender-add-ons-dot-com

Thanks I really appreciate it I just made a batch file that automatically keeps my wifi and my hotspot enabled out of it it checks every 5 seconds and I run it at startup with task scheduler.. So all my devices now have strong Internet my T V my iphone everything... You probably don't need it but if you want it I'll send it you could even put it up here so everybody can grab that too so they have strong Internet for all their devices...

@fast-blender-add-ons-dot-com

Isn't GPT 4 awesome I just made all this in fifteen minutes

@Yoda49
Copy link

Yoda49 commented Mar 23, 2024

Not work.
Exeption in call "CreateFromConnectionProfile"

@alan23273850
Copy link

Many thanks to your script! I've modified the script to restart the Hotspot every 5 seconds if it is not turned on. It is very helpful for sharing the Ethernet to my smartphone. The periodic check is due to my poor constantly disconnecting Ethernet.

@alan23273850
Copy link

alan23273850 commented Jun 21, 2025

Not work. Exeption in call "CreateFromConnectionProfile"

@Yoda49
Is it due to the administrator privilege?

@fast-blender-add-ons-dot-com
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment