记笔记本开机不能自动联网的问题

Published on
Updated on
9 14~18 min

记录一下笔记本开机不能自动联网的问题,防止后面换电脑再次碰到类似的问题

问题描述

笔记本不定期出现开机不能自动联网的问题,无WLAN选项,无法选择Wi-Fi。

问题原因

经过排查,开机无网的原因是WLAN AutoConfig服务项自动启动失败,手动启动这个服务项目即可

这个服务项的启动类型默认是自动启动,不知道是什么原因导致自动启动失败。每次开机都要手动启动一次,实在是太麻烦了,于是让AI帮忙写了个脚本,往任务计划执行库插入一个开机定时任务,用来执行这个服务项的开机延时自动启动。

用于执行WLAN AutoConfig服务项

@echo off
chcp 65001 >nul
REM 启动WLAN AutoConfig服务的脚本
echo 正在启动WLAN AutoConfig服务...

REM 检查是否以管理员权限运行
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 错误: 此脚本需要管理员权限运行
    echo 请右键点击脚本,选择"以管理员身份运行"
    pause
    exit /b 1
)

REM 启动WLAN AutoConfig服务
net start "WLAN AutoConfig" >nul 2>&1

REM 检查服务启动结果
sc query "WlanSvc" | find "RUNNING" >nul
if %errorLevel% equ 0 (
    echo WLAN AutoConfig服务已成功启动
) else (
    echo WLAN AutoConfig服务启动失败,正在尝试重新启动...
    sc start "WlanSvc"
    timeout /t 3 >nul
    sc query "WlanSvc" | find "RUNNING" >nul
    if %errorLevel% equ 0 (
        echo WLAN AutoConfig服务已成功启动
    ) else (
        echo 服务启动失败,请检查系统设置
        pause
        exit /b 1
    )
)

echo 操作完成
exit /b 0

用于检测WLAN AutoConfig服务项是否启动,未启动则调用脚本1

@echo off
chcp 65001 >nul
REM 开机自动检测并启动WLAN AutoConfig服务的脚本
REM 此脚本应该通过任务计划程序在开机时自动运行

REM 设置日志文件路径
set LOG_FILE=%~dp0wlan-autostart.log
set START_SCRIPT=%~dp0start-wlan-service.bat

REM 等待系统完全启动(延迟10秒)
timeout /t 10 /nobreak >nul

REM 记录检测时间
echo [%date% %time%] 开始检测WLAN AutoConfig服务... >> "%LOG_FILE%"

REM 检查是否以管理员权限运行
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo [%date% %time%] 错误: 脚本未以管理员权限运行 >> "%LOG_FILE%"
    exit /b 1
)

REM 检查WLAN AutoConfig服务状态
sc query "WlanSvc" | find "RUNNING" >nul

if %errorLevel% equ 0 (
    REM 服务已经在运行
    echo [%date% %time%] WLAN AutoConfig服务已在运行,无需启动 >> "%LOG_FILE%"
) else (
    REM 服务未运行,需要启动
    echo [%date% %time%] 检测到WLAN AutoConfig服务未运行,正在启动... >> "%LOG_FILE%"
    
    REM 检查启动脚本是否存在
    if exist "%START_SCRIPT%" (
        REM 调用启动脚本
        call "%START_SCRIPT%"
        
        REM 再次检查服务状态
        timeout /t 3 >nul
        sc query "WlanSvc" | find "RUNNING" >nul
        if %errorLevel% equ 0 (
            echo [%date% %time%] WLAN AutoConfig服务启动成功 >> "%LOG_FILE%"
        ) else (
            echo [%date% %time%] WLAN AutoConfig服务启动失败 >> "%LOG_FILE%"
        )
    ) else (
        echo [%date% %time%] 错误: 找不到启动脚本 %START_SCRIPT% >> "%LOG_FILE%"
        exit /b 1
    )
)

echo [%date% %time%] 检测完成 >> "%LOG_FILE%"
exit /b 0

用于将脚本2注册到Windows任务计划程序中

@echo off
chcp 65001 >nul
REM 创建Windows任务计划程序,使脚本在开机时自动运行
echo 正在创建开机自动启动任务...

REM 检查是否以管理员权限运行
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 错误: 此脚本需要管理员权限运行
    echo 请右键点击脚本,选择"以管理员身份运行"
    pause
    exit /b 1
)

REM 设置脚本路径
set SCRIPT_PATH=%~dp0auto-check-wlan-service.bat

REM 检查脚本是否存在
if not exist "%SCRIPT_PATH%" (
    echo 错误: 找不到自动检测脚本 %SCRIPT_PATH%
    pause
    exit /b 1
)

REM 删除已存在的同名任务(如果有)
schtasks /query /tn "AutoStartWLAN" >nul 2>&1
if %errorLevel% equ 0 (
    echo 检测到已存在的任务,正在删除...
    schtasks /delete /tn "AutoStartWLAN" /f >nul
)

REM 创建新的计划任务
echo 正在创建计划任务...
schtasks /create /tn "AutoStartWLAN" /tr "\"%SCRIPT_PATH%\"" /sc onstart /ru "SYSTEM" /rl highest /f

if %errorLevel% equ 0 (
    echo.
    echo ========================================
    echo 任务创建成功!
    echo ========================================
    echo.
    echo 任务名称: AutoStartWLAN
    echo 触发时机: 系统启动时
    echo 运行权限: 系统管理员
    echo 脚本路径: %SCRIPT_PATH%
    echo.
    echo 下次开机时,系统将自动检测并启动WLAN AutoConfig服务
    echo 日志文件将保存在: %~dp0wlan-autostart.log
    echo.
) else (
    echo 任务创建失败,请检查系统设置
    pause
    exit /b 1
)

pause

脚本使用方法

将三个脚本放在同一个目录下,同时运行脚本3:setup-task-scheduler.bat即可。

检验是否运行成功

在win+R快捷键输入:taskschd.msc进入任务计划程序,可以看到已经创建了AutoStartWLAN计划项。重启电脑后,可以看到计划任务已经执行,笔记本已经自动开启了WLAN选项,可以自动联网了。


Next Post 关于我换掉2060S这件事:一些不成熟的显卡选购碎碎念