在不知道键位置的情况下在 Regedit 中添加 DWORD 值

在不知道键位置的情况下在 Regedit 中添加 DWORD 值

我最近在注册表中添加了一些内容以禁用 Nagle 算法,因此我想创建一个包含这些添加内容的注册表编辑文件,以便我的朋友可以使用而不必自己进入它。

我以前制作过 reg 文件,但应该说从来没有这么复杂过。不确定如何确定位置,因为它要求提供其 NIC 接口,而您必须通过 IP 找到该接口。我到处寻找如何实现这一点,但都没有成功。

答案1

我认为我对你的问题有一个解决方案,它分为两部分。

  1. HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces您可以在注册表中找到网络适配器列表

  2. 为了知道要修改哪个网络适配器,您可以查看注册表中列出的 IP 地址,也可以转到:设备管理器 > 网络适配器 > 右键单击​​并选择属性 > 详细信息 > 驱动程序密钥

答案2

您会发现仅使用 .reg 文件是无法做到这一点的。

扩展一下 BlueBerryDelight 的问题,这里的问题是需要将某些注册表值添加到某些注册表项中 - 但我们不知道它们的位置。但我们知道它们都是 的子项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

我们只需修改某些子项即可正确禁用 Nagle 算法。当然,您也可以找到所有可用的子项,并为所有子项添加必要的值。

IPAddress据我理解,我们只需要向包含或等值的子键添加值DhcpIPAddress。需要添加的值是:

  • “TcpAckFrequency”=dword:1
  • “TcpDelAckTicks”=dword:0
  • “TCPNoDelay”=dword:1

我使用 powershell 中的 for 循环来完成此操作:

cd HKLM:\
$keys=Get-ChildItem -path "HKLM:\SYSTEM\CurrentControlSet\services\tcpip\parameters\interfaces"
$name=$keys | Where-object { $_.Property -like '*IPAddress*' }
foreach ($key in $name) {
new-itemproperty -path $key -name "TcpAckFrequency" -value "1" -PropertyType "DWord"
new-itemproperty -path $key -name "TcpDelAckTicks" -value "0" -PropertyType "DWord"
new-itemproperty -path $key -name "TCPNoDelay" -value "1" -PropertyType "DWord"
}

这将修改所有网络适配器的设置。

相关内容