PowerShell 重置Internet协议TCP / IP 修复Winsock重置目录 更新Internet连接 清除DNS解析器缓存 清除ARP缓存地址解析协议 修复Internet Explorer 11 清除Windows更新历史记录 修复Windows的自动更新 修复SSL / HTTPS

PowerShell和批处理命令:

重置Internet协议(TCP / IP):
PowerShell命令:Netsh int ip reset

批处理命令:netsh int ip reset

修复Winsock(重置目录):
PowerShell命令:Netsh winsock reset

批处理命令:netsh winsock reset

更新Internet连接:
PowerShell命令:ipconfig /renew

批处理命令:ipconfig /renew

清除DNS解析器缓存:
PowerShell命令:Clear-DnsClientCache

批处理命令:ipconfig /flushdns

清除ARP缓存(地址解析协议):
PowerShell命令和批处理命令:arp -d *

修复Internet Explorer 11:
PowerShell命令和批处理命令:Start-Process "iexplore.exe" -ArgumentList "-extoff"

清除Windows更新历史记录:
PowerShell命令:Clear-WindowsUpdate

批处理命令:net stop wuauserv && rd /s /q %systemroot%\SoftwareDistribution && net start wuauserv

修复Windows的自动更新:
PowerShell命令:Install-Module PSWindowsUpdate | Import-Module; Get-WindowsUpdate; Install-WindowsUpdate

批处理命令:wuauclt /detectnow

修复SSL / HTTPS /密码学:
PowerShell命令:Update-HostsFile

批处理命令:certutil -generateSSTFromWU roots.sst && certutil -addstore -f root roots.sst && del /q roots.sst

重置代理服务器配置:
PowerShell命令:netsh winhttp reset proxy

批处理命令:netsh winhttp reset proxy

重置Windows防火墙配置:
PowerShell命令:netsh advfirewall reset

批处理命令:netsh advfirewall reset

恢复默认的hosts文件:
PowerShell命令和批处理命令:Copy-Item -Path "$env:windir\System32\drivers\etc\hosts.original" -Destination "$env:windir\System32\drivers\etc\hosts" -Force

更新WINS客户端注册:
PowerShell命令和批处理命令:nbtstat -RR

在文件资源管理器中使网络计算机可见:
PowerShell命令和批处理命令:Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private

 

 

重置Internet协议(TCP/IP)
修复Winsock(重置目录)
更新Internet连接
刷新DNS解析器缓存(域名系统)
刷新ARP缓存(地址解析协议)
修复InternetExplorer11
清除Windows更新历史记录
修复Windows自动更新
修复SSL/HTTPS/加密
重置代理服务器配置
重置Windows防火墙配置
恢复默认hosts文件
更新Wins客户机注册
使网络计算机在文件资源管理器中可见

自动获得IP 地址(Q)

自动获得 DNS 服务器地址(B)

PowerShell 命令实现你提到的各项功能的脚本:

powershell
# 重置 Internet 协议 (TCP/IP)
netsh int ip reset

# 修复 Winsock
netsh winsock reset

# 更新 Internet 连接
ipconfig /flushdns

# 刷新 ARP 缓存
arp -d *

# 修复 Internet Explorer 11
$ie = New-Object -ComObject InternetExplorer.Application
$ie.Navigate("about:blank")
$ie.Quit()

# 清除 Windows 更新历史记录
Stop-Service wuauserv
Remove-Item -Path "$env:SystemRoot\SoftwareDistribution\DataStore\Logs\edb.log" -Force
Start-Service wuauserv

# 修复 Windows 自动更新
Unregister-ScheduledTask -TaskName "AUSessionCleanup" -TaskPath "\Microsoft\Windows\WindowsUpdate" -Confirm:$false
Unregister-ScheduledTask -TaskName "Scheduled Start" -TaskPath "\Microsoft\Windows\WindowsUpdate" -Confirm:$false
Unregister-ScheduledTask -TaskName "Automatic App Update" -TaskPath "\Microsoft\Windows\WindowsUpdate" -Confirm:$false

# 修复 SSL/HTTPS/加密
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Internet Explorer\Main" -Name "Start Page" -Force
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Internet Explorer\Main" -Name "Default_Page_URL" -Force
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Internet Explorer\Main" -Name "Default_Search_URL" -Force

# 重置代理服务器配置
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name "ProxyEnable" -Force
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name "ProxyServer" -Force

# 重置 Windows 防火墙配置
netsh advfirewall reset

# 恢复默认 hosts 文件
Copy-Item "$env:SystemRoot\System32\drivers\etc\hosts" "$env:SystemRoot\System32\drivers\etc\hosts.bak" -Force
Set-Content "$env:SystemRoot\System32\drivers\etc\hosts" "# localhost name resolution is handled within DNS`n# 127.0.0.1 localhost"

# 更新 Wins 客户端注册
nbtstat -R
nbtstat -RR

# 使网络计算机在文件资源管理器中可见
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoNetworkConnections" -Value 0
将以上代码保存为 .ps1 文件,然后右键以管理员身份运行即可执行。这个脚本将按照你指定的顺序执行各项操作。请注意,这些操作可能会影响系统配置,请谨慎执行。

 

@echo off
echo 正在重置 Internet 协议 (TCP/IP)...
netsh int ip reset resetlog.txt

echo 正在修复 Winsock...
netsh winsock reset

echo 正在更新 Internet 连接...
ipconfig /flushdns

echo 正在刷新 ARP 缓存...
arp -d *

echo 正在修复 Internet Explorer 11...
"%systemroot%\System32\ieframe.dll" -extoff

echo 正在清除 Windows 更新历史记录...
net stop wuauserv
del /q %systemroot%\SoftwareDistribution\DataStore\Logs\edb.log
net start wuauserv

echo 正在修复 Windows 自动更新...
schtasks /delete /tn "\Microsoft\Windows\WindowsUpdate\AUSessionCleanup" /f
schtasks /delete /tn "\Microsoft\Windows\WindowsUpdate\Scheduled Start" /f
schtasks /delete /tn "\Microsoft\Windows\WindowsUpdate\Automatic App Update" /f

echo 正在修复 SSL/HTTPS/加密...
reg delete "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /f
reg delete "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Default_Page_URL" /f
reg delete "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Default_Search_URL" /f

echo 正在重置代理服务器配置...
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /f

echo 正在重置 Windows 防火墙配置...
netsh advfirewall reset

echo 正在恢复默认 hosts 文件...
copy %SystemRoot%\System32\drivers\etc\hosts %SystemRoot%\System32\drivers\etc\hosts.bak
echo # localhost name resolution is handled within DNS >> %SystemRoot%\System32\drivers\etc\hosts
echo # 127.0.0.1 localhost >> %SystemRoot%\System32\drivers\etc\hosts

echo 正在更新 Wins 客户端注册...
nbtstat -R
nbtstat -RR

echo 完成!所有操作已执行。
pause

 

@echo off
echo 正在重置 Internet 协议 (TCP/IP)...
netsh int ip reset resetlog.txt

echo 正在修复 Winsock (重置目录)...
netsh winsock reset

echo 正在更新 Internet 连接...
ipconfig /release
ipconfig /renew

echo 正在刷新 DNS 解析器缓存 (域名系统)...
ipconfig /flushdns

echo 正在刷新 ARP 缓存 (地址解析协议)...
arp -d *

echo 正在修复 Internet Explorer 11...
start iexplore.exe "about:blank"
ping -n 2 127.0.0.1 > nul
taskkill /IM iexplore.exe /F

echo 正在清除 Windows 更新历史记录...
net stop wuauserv
del /Q /F %systemroot%\SoftwareDistribution\DataStore\Logs\edb.log
net start wuauserv

echo 正在修复 Windows 自动更新...
schtasks /Delete /TN "AUSessionCleanup" /F
schtasks /Delete /TN "Scheduled Start" /F
schtasks /Delete /TN "Automatic App Update" /F

echo 正在修复 SSL/HTTPS/加密...
REG DELETE "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /f
REG DELETE "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Default_Page_URL" /f
REG DELETE "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Default_Search_URL" /f

echo 正在重置代理服务器配置...
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /f
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /f

echo 正在重置 Windows 防火墙配置...
netsh advfirewall reset

echo 正在恢复默认 hosts 文件...
copy "%systemroot%\System32\drivers\etc\hosts" "%systemroot%\System32\drivers\etc\hosts.bak" /Y
echo 127.0.0.1 localhost > "%systemroot%\System32\drivers\etc\hosts"

echo 正在更新 Wins 客户端注册...
nbtstat -R
nbtstat -RR

echo 正在使网络计算机在文件资源管理器中可见...
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoNetworkConnections" /t REG_DWORD /d 0 /f

echo 所有任务已完成。
pause
将以上代码保存为 .bat 文件,然后右键以管理员身份运行即可执行。

 

实现自动获取IP地址和DNS服务器地址的设置,可以使用 批处理脚本注册表 这两种方法。下面分别提供这两种方式来设置 自动获取IP地址自动获取DNS服务器地址,并且支持对 IPv4 和 IPv6 设置。

 

1. 批处理脚本(Batch Script)实现自动获取IP和DNS

1.1 自动获取IPv4和IPv6 IP地址

使用以下批处理脚本来配置网络适配器的 TCP/IPv4 和 TCP/IPv6 属性,使其自动获得 IP 地址和 DNS 服务器地址:

 
@echo off
echo 设置自动获取IP地址和DNS服务器地址...
 
:: 自动获取IPv4设置
netsh interface ipv4 set address name="以太网" source=dhcp
netsh interface ipv4 set dns name="以太网" source=dhcp

:: 自动获取IPv6设置
netsh interface ipv6 set address name="以太网" source=dhcp
netsh interface ipv6 set dns name="以太网" source=dhcp

echo 配置完成,IP和DNS地址已设置为自动获取。
pause

解释:

  • netsh interface ipv4 set address name="以太网" source=dhcp 设置 IPv4 自动获取 IP 地址。
  • netsh interface ipv4 set dns name="以太网" source=dhcp 设置 IPv4 自动获取 DNS 服务器。
  • netsh interface ipv6 set address name="以太网" source=dhcp 设置 IPv6 自动获取 IP 地址。
  • netsh interface ipv6 set dns name="以太网" source=dhcp 设置 IPv6 自动获取 DNS 服务器。

其中 "以太网" 是你网络适配器的名称,你可以通过 netsh interface show interface 命令查看你的网络适配器的名称,并根据实际情况修改脚本中的适配器名称。

1.2 批处理脚本的使用方法

  • 将上述代码保存为 .bat 文件(例如 set_dhcp.bat)。
  • 右键点击文件并选择 以管理员身份运行,这样脚本会自动为你配置网络适配器。

2. 通过注册表(Registry)设置自动获取IP和DNS

通过修改 Windows 注册表,也可以实现自动获取 IP 地址和 DNS 服务器。以下是修改注册表的操作步骤:

2.1 自动获取IPv4和IPv6 IP地址

我们需要修改注册表中的网络适配器设置来启用自动获取 IP 地址和 DNS 服务器。

通过 .reg 文件修改注册表来实现自动获取 IP 地址和 DNS 服务器地址,我们可以创建一个注册表文件,将修改配置自动化。以下是具体的 .reg 文件内容,适用于自动配置 IPv4IPv6 网络适配器。

1. 自动获取 IPv4 地址和 DNS 服务器地址

此部分修改注册表项,使 IPv4 网络适配器启用 DHCP 并自动获取 IP 和 DNS 地址。

1.1 自动获取 IPv4 地址和 DNS 配置的 .reg 文件

 
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NetworkAdapterGUID}]
"DhcpEnabled"=dword:00000001
"NameServer"=""

解释:

  • DhcpEnabled 设置为 1,表示启用 DHCP,自动获取 IP 地址。
  • NameServer 设置为空字符串,表示自动获取 DNS 服务器地址。

1.2 如何使用

  1. 替换 {NetworkAdapterGUID} 为你网络适配器的唯一 GUID。

    • 打开命令行,输入 ipconfig /all,查找网络适配器的 GUID,例如 Ethernet adapter Local Area Connection 部分。

    • 你可以在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ 下找到每个网络适配器的 GUID。复制所需适配器的 GUID 并将其替换到 .reg 文件中。

  2. 保存文件为 .reg 格式(例如 set_ipv4_dhcp.reg)。

  3. 双击该文件,确认添加到注册表。

2. 自动获取 IPv6 地址和 DNS 服务器地址

这部分修改注册表项,使 IPv6 网络适配器启用 DHCP 并自动获取 IPv6 地址和 DNS。

2.1 自动获取 IPv6 地址和 DNS 配置的 .reg 文件

 
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Interfaces\{NetworkAdapterGUID}]
"DhcpEnabled"=dword:00000001
"NameServer"=""

解释:

  • DhcpEnabled 设置为 1,表示启用 DHCP,自动获取 IPv6 地址。
  • NameServer 设置为空字符串,表示自动获取 IPv6 DNS 服务器地址。

2.2 如何使用

  1. 替换 {NetworkAdapterGUID} 为你网络适配器的唯一 GUID。

    • 使用 ipconfig /all 命令查找你的网络适配器信息,获取 IPv6 适配器的 GUID。
  2. 保存文件为 .reg 格式(例如 set_ipv6_dhcp.reg)。

  3. 双击该文件,确认添加到注册表。

3. 如何找到网络适配器的 GUID

要找到网络适配器的 GUID,你可以通过以下步骤:

  1. 打开命令提示符,输入命令:

    cmd
    ipconfig /all
  2. 查找你想要配置的适配器的 "Description""Physical Address"(即 MAC 地址)。接着找到它对应的 GUID。

  3. 在注册表路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ 下,会有以 GUID 命名的子键,分别对应你的每个网络适配器。

4. 注意事项

  • 修改注册表可能会导致系统配置错误,请确保在修改之前备份注册表。
  • 确保你拥有管理员权限,以便修改系统注册表。
  • 使用 netsh 命令可以检查配置是否生效,或者通过 ipconfig /all 命令查看当前的 IP 地址和 DNS 配置。

通过这种方法,你可以批量修改多个设备的网络设置,确保它们自动获取 IP 地址和 DNS 服务器。

2.1.1 自动获取IPv4地址
  1. 打开 注册表编辑器:按 Win + R,输入 regedit,然后按回车。

  2. 导航到以下路径:

     
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NetworkAdapterGUID}

    {NetworkAdapterGUID} 是你网络适配器的唯一标识符,查看网络适配器 GUID 的方法可以参考命令 ipconfig /all 来找到你所需的适配器 ID。

  3. 在这个键下,创建或修改以下 DWORD 值:

    • DhcpEnabled(值为 1):启用 DHCP(自动获取IP地址)。
    • NameServer(值为空或删除):自动获取 DNS 服务器地址。

2.1.2 自动获取IPv6地址

同样的步骤也适用于 IPv6 地址的设置:

  1. 在注册表中导航到:

     
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Interfaces\{NetworkAdapterGUID}
  2. 创建或修改以下 DWORD 值:

    • DhcpEnabled(值为 1):启用 DHCP(自动获取IPv6地址)。
    • NameServer(值为空或删除):自动获取 IPv6 DNS 服务器地址。

2.2 完成注册表编辑

一旦完成修改,你需要重新启动计算机或者重启网络适配器才能使设置生效。

3. 检查配置状态

你可以通过以下命令来检查配置是否成功:

  • 查看IPv4配置

     
    ipconfig /all
  • 查看IPv6配置

     
    ipconfig /all

在输出中,查找 DHCP EnabledDNS Servers 的相关信息。如果显示为 自动获取DHCP,说明配置成功。

  • 使用 批处理脚本 是一种快速且简单的方法,适合在多台计算机上批量配置网络适配器。
  • 使用 注册表编辑 方法可以更精细地控制每个适配器的设置,适用于高级用户或需要精确配置的场景。
  • 在进行任何注册表修改时,请先备份注册表,以避免出现不可逆的错误。

实现自动遍历网络接口并设置它们的 IP 和 DNS 地址为自动获取(无论是 IPv4 还是 IPv6),你可以使用 PowerShell 脚本 来替代批处理文件。PowerShell 更加灵活且功能强大,能够自动检测系统中所有网络接口并为其配置 DHCP。

下面是一个 PowerShell 脚本,它将自动遍历系统中的所有网络接口,并为每个接口配置自动获取 IPv4IPv6 地址及 DNS。

PowerShell 脚本实现自动获取 IPv4 和 IPv6 地址及 DNS

powershell
# PowerShell脚本: 自动设置所有接口为自动获取 IPv4 和 IPv6 地址及 DNS

# 获取所有网络接口
$interfaces = Get-NetAdapter | Where-Object { $_.Status -eq "Up" }

foreach ($interface in $interfaces) {
    $interfaceName = $interface.Name
    Write-Host "正在设置接口 '$interfaceName'..."

    # 设置 IPv4 自动获取 IP 和 DNS
    Write-Host "设置 IPv4 自动获取 IP 地址..."
    Set-NetIPInterface -InterfaceAlias $interfaceName -Dhcp Enabled
    Write-Host "设置 IPv4 自动获取 DNS 服务器..."
    Set-DnsClientServerAddress -InterfaceAlias $interfaceName -ResetServerAddresses

    # 设置 IPv6 自动获取 IP 和 DNS
    Write-Host "设置 IPv6 自动获取 IP 地址..."
    Set-NetIPInterface -InterfaceAlias $interfaceName -AddressFamily IPv6 -Dhcp Enabled
    Write-Host "设置 IPv6 自动获取 DNS 服务器..."
    Set-DnsClientServerAddress -InterfaceAlias $interfaceName -AddressFamily IPv6 -ResetServerAddresses
}

Write-Host "所有接口配置完成!IPv4 和 IPv6 地址及 DNS 已设置为自动获取。"

脚本说明

  1. 获取所有启用的网络接口

    powershell
    $interfaces = Get-NetAdapter | Where-Object { $_.Status -eq "Up" }

    这行代码会获取所有启用(Status -eq "Up")的网络接口。

  2. 设置 IPv4 自动获取 IP 和 DNS

    • Set-NetIPInterface -InterfaceAlias $interfaceName -Dhcp Enabled 用于启用 DHCP 自动获取 IPv4 地址。
    • Set-DnsClientServerAddress -InterfaceAlias $interfaceName -ResetServerAddresses 用于自动重置 DNS 服务器地址为由 DHCP 提供的值。
  3. 设置 IPv6 自动获取 IP 和 DNS

    • Set-NetIPInterface -InterfaceAlias $interfaceName -AddressFamily IPv6 -Dhcp Enabled 用于启用 DHCP 自动获取 IPv6 地址。
    • Set-DnsClientServerAddress -InterfaceAlias $interfaceName -AddressFamily IPv6 -ResetServerAddresses 用于自动重置 IPv6 DNS 服务器地址为由 DHCP 提供的值。

使用说明

  1. 将上述 PowerShell 脚本保存为 .ps1 文件,例如 Set-DHCP.ps1
  2. 右键点击 .ps1 文件,选择 以管理员身份运行,以确保脚本能够有足够的权限修改网络接口设置。
  3. 脚本将自动遍历所有启用的网络接口,并为每个接口设置自动获取 IPv4 和 IPv6 地址及 DNS。

注意事项

  • 该脚本需要管理员权限,因为修改网络适配器的设置需要高权限。
  • 确保你的计算机上启用了 PowerShell 脚本执行。你可以通过以下命令启用它:
    powershell
    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    这将允许本地脚本执行。

通过这种方式,你可以轻松自动化配置所有网络接口为自动获取 IP 地址和 DNS 配置,适用于多个网络接口的配置。


 

posted @ 2023-11-01 14:43  suv789  阅读(529)  评论(0)    收藏  举报