Board logo

标题: [网络连接] 求教批处理识别网络名称并设置属性 [打印本页]

作者: 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

  1. @echo off
  2. set "DriverDesc=xxxxx"
  3. for /f "skip=1 delims=" %%i in ('REG QUERY HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318} /s /f "%DriverDesc%" /d') do (
  4. echo,%%i
  5. reg add "%%i" /v "*LsoV2IPv4" /t REG_SZ /f /d 0
  6. reg add "%%i" /v "*LsoV2IPv6" /t REG_SZ /f /d 0
  7. if errorlevel 1 echo,失败
  8. pause>nul
  9. goto :eof
  10. )
复制代码

作者: szlghyx    时间: 2023-9-15 15:12

回复 3# buyiyang


    完全没用呢,不起作用哦
作者: buyiyang    时间: 2023-9-15 20:17

  1. %1powershell -c "Start -File '%~f0' -Verb RunAs -Arg ':'"&&exit
  2. @echo off&setlocal enabledelayedexpansion
  3. for /f "tokens=2 delims==" %%i in ('wmic nic get NetConnectionID /value') do (
  4. if "%%i" geq "!" (
  5.     set /a n+=1
  6.     set _!n!=%%i
  7.     echo,[!n!]%%i
  8.     set m=!m!!n!
  9.     )
  10. )
  11. choice /c %m% /t 5 /d 1 /m "请选择,5秒后默认1"
  12. for /f "tokens=2 delims==[]" %%i in ('wmic nic where "NetConnectionID='%%_%errorlevel%%%'" get caption /value') do set id=%%i
  13. set "key=HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\%id:~-4%"
  14. reg add "%key%" /v "*LsoV2IPv4" /t REG_SZ /f /d 0
  15. reg add "%key%" /v "*LsoV2IPv6" /t REG_SZ /f /d 0
  16. 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 测试通过。全自动,运行需要以管理员权限,因为涉及到改变硬件的配置参数。

注意:运行成功后,会将电脑上的所有网卡的这个选项都自动关闭。
  1. # 获取所有网络适配器的列表
  2. $networkAdapters = Get-NetAdapter
  3. # 循环遍历每个网络适配器并关闭"大量传送减负v2(IPv4和IPv6)"选项
  4. foreach ($adapter in $networkAdapters) {
  5.     # 获取网络适配器的名称
  6.     $adapterName = $adapter.Name
  7.    
  8.     # 关闭 IPv4 的"大量传送减负v2"选项
  9.     Set-NetAdapterAdvancedProperty -Name $adapterName -DisplayName "Large Send Offload V2 (IPv4)" -DisplayValue "Disabled"
  10.    
  11.     # 关闭 IPv6 的"大量传送减负v2"选项
  12.     Set-NetAdapterAdvancedProperty -Name $adapterName -DisplayName "Large Send Offload V2 (IPv6)" -DisplayValue "Disabled"
  13.    
  14.     # 输出操作结果
  15.     Write-Host "已关闭网络适配器 $adapterName 的大量传送减负v2(IPv4和IPv6)选项。"
  16. }
  17. # 输出完成消息
  18. Write-Host "所有网络适配器的大量传送减负v2(IPv4和IPv6)选项已关闭。"
复制代码

作者: thp2008    时间: 2023-9-17 00:14

再给你一个批处理版本的,但是也要调用Powershell 保存为ANSI
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('powershell.exe -command "Get-NetAdapter | Select-Object -ExpandProperty Name"') do (
  4. set adapterName=%%a
  5. powershell.exe -command "Set-NetAdapterAdvancedProperty -Name !adapterName! -DisplayName 'Large Send Offload V2 (IPv4)' -DisplayValue 'Disabled'"
  6. powershell.exe -command "Set-NetAdapterAdvancedProperty -Name !adapterName! -DisplayName 'Large Send Offload V2 (IPv6)' -DisplayValue 'Disabled'"
  7. )
  8. endlocal
  9. echo 已关闭网络适配器的大量传送减负v2(IPv4和IPv6)选项。
  10. pause
复制代码

作者: 窄口牛    时间: 2023-9-17 06:55

修改属性不复杂,判断网卡非常难,以前想修改传输速率为百兆全双工的,最后没有弄成,失败了。
作者: szlghyx    时间: 2023-9-17 08:27

非常感谢各位技术大咖的帮忙,由于有win7-11系统,并且有的电脑有多网卡,最终经过各个方案的测试,因为还要与其它批处理结合一起使用,经测试感觉还是用以下批处理最为合适:
  1. @echo off
  2. set regKey=HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}
  3. set LsoV2IPv4=*LsoV2IPv4
  4. set LsoV2IPv6=*LsoV2IPv6
  5. set regData=0
  6. for /f "tokens=*" %%a in ('reg query "%regKey%" /s /v "%LsoV2IPv4%"') do (
  7.     reg add "%%a" /v "%LsoV2IPv4%" /t REG_SZ /d "%regData%" /f >nul 2>&1
  8.     reg add "%%a" /v "%LsoV2IPv6%" /t REG_SZ /d "%regData%" /f >nul 2>&1
  9. )
复制代码
感谢各位能授之以渔




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2