问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Windows 11系统设置开机自启动移动热点的详细步骤

创作时间:
作者:
@小白创作中心

Windows 11系统设置开机自启动移动热点的详细步骤

引用
CSDN
1.
https://m.blog.csdn.net/m0_48369496/article/details/144324780

本文将详细介绍如何在Windows 11系统中设置开机自启动移动热点。通过解除PowerShell的安全限制、编写检测和开启移动热点的脚本,以及设置脚本开机自动运行,你可以实现移动热点的自动开启。

第一步:解除PowerShell的安全限制

要使用PowerShell脚本执行复杂的系统操作,首先需要解除PowerShell的安全限制。按照以下步骤操作:

  1. Win键 + X,在弹出的列表中选择【终端管理员】
  2. 输入并执行命令:
Set-ExecutionPolicy RemoteSigned

如果要恢复PowerShell的默认安全限制,可以使用以下命令:

Set-ExecutionPolicy Restricted

这条命令会将PowerShell的执行策略设置为默认的Restricted模式,阻止执行任何脚本文件。

第二步:编写PowerShell脚本

接下来,我们需要准备一个PowerShell脚本来检测移动热点的状态,并在必要时开启它。

  1. 在以下目录中新建一个PowerShell脚本文件:
%appdata%\Microsoft\Windows\Start Menu\Programs

建议直接在当前文件夹中右键单击,然后选择【在终端中打开】。如果没有这个选项,可以按住Shift键再右键单击。

在终端或命令提示符中输入以下命令并按回车键执行:

echo 1 > checkMobileHotspot.ps1

这条命令会在当前目录下创建一个名为checkMobileHotspot.ps1的文件。

  1. 找到创建的checkMobileHotspot.ps1文件,右键单击并选择【编辑】。在Windows 11系统中,默认会使用Windows PowerShell ISE编辑器打开。

将以下代码复制粘贴到脚本文件中:

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
}
Function AwaitAction($WinRtAction) {
    $asTask = (
        [System.WindowsRuntimeSystemExtensions].GetMethods() |
        ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and !$_.IsGenericMethod }
    )[0]
    $netTask = $asTask.Invoke($null, @($WinRtAction))
    $netTask.Wait(-1) | Out-Null
}
$connectionProfile = [Windows.Networking.Connectivity.NetworkInformation,Windows.Networking.Connectivity,ContentType=WindowsRuntime]::GetInternetConnectionProfile()
$tetheringManager = [Windows.Networking.NetworkOperators.NetworkOperatorTetheringManager,Windows.Networking.NetworkOperators,ContentType=WindowsRuntime]::CreateFromConnectionProfile($connectionProfile)
if ($tetheringManager.TetheringOperationalState -eq 1) {
    "Hotspot is already On!"
} else {
    "Hotspot is off! Turning it on"
    Await ($tetheringManager.StartTetheringAsync()) ([Windows.Networking.NetworkOperators.NetworkOperatorTetheringOperationResult])
}

这段代码首先添加了System.Runtime.WindowsRuntime程序集,然后定义了两个函数用于处理异步操作。接着获取当前设备的网络连接配置文件,并创建一个NetworkOperatorTetheringManager对象来控制热点。最后,根据热点状态判断是否需要开启热点。

第三步:设置脚本开机自动运行

为了让PowerShell脚本在开机时自动运行,我们需要将其添加到系统的启动目录中。

  1. 打开以下目录:
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
  1. 在该目录中创建一个批处理文件(bat文件):
echo 1 > startCheckMobileHotspot.bat
  1. 右键单击创建的bat文件,选择【编辑】。将内容修改为以下代码:
powershell -executionpolicy remotesigned -file "%appdata%\Microsoft\Windows\Start Menu\Programs\checkMobileHotspot.ps1" exit

注意:代码必须在同一行,不能换行。

这段代码的作用是在Windows系统启动时,使用PowerShell执行指定的脚本文件。其中-executionpolicy remotesigned参数允许执行本地未签名的脚本。

注意事项

  • 确保bat文件的编码格式为UTF-8,如果不是,需要另存为UTF-8格式。
  • 如果在执行过程中遇到权限问题,可能需要以管理员身份运行相关命令。

通过以上步骤,你就可以在Windows 11系统中实现移动热点的开机自启动了。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号