标题: [网络连接] 求教批处理识别网络名称并设置属性 [打印本页]
作者: szlghyx 时间: 2023-9-15 10:48 标题: 求教批处理识别网络名称并设置属性
各位技术大咖,求教一个批处理:有几十台电脑,其中有Win7、Win10、Win11,服务器是server2022,为了提升window系统工作电脑访问服务器server2022文件夹的速度,想把所有工作电脑网卡属性里面的“大量传送减负v2(IPv4和IPv6)”设置为“关闭”,但由于电脑数量大,而且每台电脑的网络名称不一样,如何写一个批处理文件能自动识别网络名称并设置“大量传送减负v2(IPv4和IPv6)”为“关闭”?请各位技术大咖帮忙写一下这个批处理,感谢感谢!!!
作者: Batcher 时间: 2023-9-15 11:54
回复 1# szlghyx
请发个截图看看你想修改什么地方?
如果需要上传文件,可以用阿里云盘或百度网盘。
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: buyiyang 时间: 2023-9-15 14:28
- @echo off
- set "DriverDesc=xxxxx"
- for /f "skip=1 delims=" %%i in ('REG QUERY HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318} /s /f "%DriverDesc%" /d') do (
- echo,%%i
- reg add "%%i" /v "*LsoV2IPv4" /t REG_SZ /f /d 0
- reg add "%%i" /v "*LsoV2IPv6" /t REG_SZ /f /d 0
- if errorlevel 1 echo,失败
- pause>nul
- goto :eof
- )
复制代码
作者: szlghyx 时间: 2023-9-15 15:12
回复 3# buyiyang
完全没用呢,不起作用哦
作者: buyiyang 时间: 2023-9-15 20:17
- %1powershell -c "Start -File '%~f0' -Verb RunAs -Arg ':'"&&exit
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2 delims==" %%i in ('wmic nic get NetConnectionID /value') do (
- if "%%i" geq "!" (
- set /a n+=1
- set _!n!=%%i
- echo,[!n!]%%i
- set m=!m!!n!
- )
- )
- choice /c %m% /t 5 /d 1 /m "请选择,5秒后默认1"
- for /f "tokens=2 delims==[]" %%i in ('wmic nic where "NetConnectionID='%%_%errorlevel%%%'" get caption /value') do set id=%%i
- set "key=HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\%id:~-4%"
- reg add "%key%" /v "*LsoV2IPv4" /t REG_SZ /f /d 0
- reg add "%key%" /v "*LsoV2IPv6" /t REG_SZ /f /d 0
- pause
复制代码
作者: szlghyx 时间: 2023-9-15 21:17
回复 5# buyiyang
前辈,非常感谢您的回复,有位技术兄弟给我以下方案:
@echo off
set regKey=HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}
set LsoV2IPv4=*LsoV2IPv4
set LsoV2IPv6=*LsoV2IPv6
set regData=0
for /f "tokens=*" %%a in ('reg query "%regKey%" /s /v "%LsoV2IPv4%"') do (
reg add "%%a" /v "%LsoV2IPv4%" /t REG_SZ /d "%regData%" /f >nul 2>&1
reg add "%%a" /v "%LsoV2IPv6%" /t REG_SZ /d "%regData%" /f >nul 2>&1
)
请教此方案与您的有什么本质区别吗?我看您的有判断网络名称的功能,那么您的方案对于不同window系统版本和不同的网络名称情况下使用是否就更加精准呢?
作者: thp2008 时间: 2023-9-16 23:37
本帖最后由 thp2008 于 2023-9-16 23:39 编辑
保存为xxx.ps1
ANSI编码。
如果不允许运行Powershell脚本,Powershell 管理员权限运行,Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 选Y。
Windows 10 / Windows 11 测试通过。全自动,运行需要以管理员权限,因为涉及到改变硬件的配置参数。
注意:运行成功后,会将电脑上的所有网卡的这个选项都自动关闭。- # 获取所有网络适配器的列表
- $networkAdapters = Get-NetAdapter
-
- # 循环遍历每个网络适配器并关闭"大量传送减负v2(IPv4和IPv6)"选项
- foreach ($adapter in $networkAdapters) {
- # 获取网络适配器的名称
- $adapterName = $adapter.Name
-
- # 关闭 IPv4 的"大量传送减负v2"选项
- Set-NetAdapterAdvancedProperty -Name $adapterName -DisplayName "Large Send Offload V2 (IPv4)" -DisplayValue "Disabled"
-
- # 关闭 IPv6 的"大量传送减负v2"选项
- Set-NetAdapterAdvancedProperty -Name $adapterName -DisplayName "Large Send Offload V2 (IPv6)" -DisplayValue "Disabled"
-
- # 输出操作结果
- Write-Host "已关闭网络适配器 $adapterName 的大量传送减负v2(IPv4和IPv6)选项。"
- }
-
- # 输出完成消息
- Write-Host "所有网络适配器的大量传送减负v2(IPv4和IPv6)选项已关闭。"
复制代码
作者: thp2008 时间: 2023-9-17 00:14
再给你一个批处理版本的,但是也要调用Powershell 保存为ANSI- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('powershell.exe -command "Get-NetAdapter | Select-Object -ExpandProperty Name"') do (
- set adapterName=%%a
- powershell.exe -command "Set-NetAdapterAdvancedProperty -Name !adapterName! -DisplayName 'Large Send Offload V2 (IPv4)' -DisplayValue 'Disabled'"
- powershell.exe -command "Set-NetAdapterAdvancedProperty -Name !adapterName! -DisplayName 'Large Send Offload V2 (IPv6)' -DisplayValue 'Disabled'"
- )
- endlocal
- echo 已关闭网络适配器的大量传送减负v2(IPv4和IPv6)选项。
- pause
复制代码
作者: 窄口牛 时间: 2023-9-17 06:55
修改属性不复杂,判断网卡非常难,以前想修改传输速率为百兆全双工的,最后没有弄成,失败了。
作者: szlghyx 时间: 2023-9-17 08:27
非常感谢各位技术大咖的帮忙,由于有win7-11系统,并且有的电脑有多网卡,最终经过各个方案的测试,因为还要与其它批处理结合一起使用,经测试感觉还是用以下批处理最为合适:- @echo off
- set regKey=HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}
- set LsoV2IPv4=*LsoV2IPv4
- set LsoV2IPv6=*LsoV2IPv6
- set regData=0
- for /f "tokens=*" %%a in ('reg query "%regKey%" /s /v "%LsoV2IPv4%"') do (
- reg add "%%a" /v "%LsoV2IPv4%" /t REG_SZ /d "%regData%" /f >nul 2>&1
- reg add "%%a" /v "%LsoV2IPv6%" /t REG_SZ /d "%regData%" /f >nul 2>&1
- )
复制代码
感谢各位能授之以渔
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |