萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 網路基礎知識

修改 Windows 7/10/11 網絡連接顯示名稱:註冊表編輯法與 PowerShell 一鍵腳本

Windows 為每個網絡配置文件 (Network Profile) 自動分配名稱 (如「網絡」、「網絡 2」、「網絡 3」),隨著連接環境變化名稱會不斷遞增,導致識別困難。通過修改註冊表可永久自定義顯示名稱,本文提供圖形界面操作與 PowerShell 自動化兩種方案。

原理:網絡配置文件註冊表存儲位置

每個網絡配置文件對應註冊表鍵值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID}

關鍵值:

  • ProfileName (REG_SZ) —— 顯示在「網絡和共享中心」/「設定」中的名稱。
  • Description (REG_SZ) —— SSID (無線) 或 連接描述 (有線)。
  • NameType (DWORD) —— 0=無線, 1=有線, 2=其他。
  • Category (DWORD) —— 0=公用, 1=專用, 2=域。

此外,...NetworkList\Signatures\Unmanaged\{GUID} 下的 FirstNetwork 值也可能影響首次識別顯示。

方法一:註冊表編輯器手動修改 (適用單個修改)

  1. Win + R → regedit → 回車。
  2. 定位到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\。
  3. 展開子項,查看每個 {GUID} 下的 Description 值,找到目標網絡 (如 SSID "MyWiFi")。
  4. 雙擊該 {GUID} 下的 ProfileName,修改為期望名稱 (如「公司WiFi-5G」)。
  5. 同步修改 ...Signatures\Unmanaged\{GUID} 下的 FirstNetwork 為同一名稱 (防止重新識別時復原)。
  6. 斷開並重新連接該網絡,或重啟「Network Connections」服務 (net stop Netman & net start Netman) 生效。

方法二:PowerShell 一鍵批量重命名 (推薦管理員/腳本化)

# 需管理員權限運行 PowerShell
# 示例:將所有 Description 為 "MyWiFi" 的配置文件 ProfileName 改為 "公司WiFi-5G"
$targetDesc = "MyWiFi"
$newName = "公司WiFi-5G"

$profilesPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles"
$signaturesPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged"

Get-ChildItem $profilesPath | ForEach-Object {
    $desc = (Get-ItemProperty $_.PSPath).Description
    if ($desc -eq $targetDesc) {
        Set-ItemProperty $_.PSPath -Name ProfileName -Value $newName
        Write-Host "已修改 Profile: $($_.PSChildName) -> $newName"
        # 同步修改 Signatures
        $sig = Get-ChildItem $signaturesPath | Where-Object { (Get-ItemProperty $_.PSPath).Description -eq $targetDesc }
        if ($sig) { Set-ItemProperty $sig.PSPath -Name FirstNetwork -Value $newName }
    }
}

# 重啟網絡列表服務生效
Restart-Service Netman -Force
Write-Host "完成,請重新連接網絡查看效果。"

方法三:PowerShell 交互式重命名所有配置文件

Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" | ForEach-Object {
    $props = Get-ItemProperty $_.PSPath
    $current = $props.ProfileName
    $desc = $props.Description
    $new = Read-Host "配置文件 `$($_.PSChildName`) 當前名稱: '$current' (SSID: $desc)`n請輸入新名稱 (直接回車跳過):"
    if ($new) {
        Set-ItemProperty $_.PSPath -Name ProfileName -Value $new
        # 同步 Signatures
        $sig = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged" | Where-Object { (Get-ItemProperty $_.PSPath).Description -eq $desc }
        if ($sig) { Set-ItemProperty $sig.PSPath -Name FirstNetwork -Value $new }
    }
}
Restart-Service Netman -Force

注意事項與避坑

  • 備份註冊表: 修改前右鍵「Profiles」鍵 → 「導出」保存 .reg 文件,以便回滾。
  • 避免重名: 同類網絡 (同 SSID 不同 BSSID) 可能生成多個配置文件,建議命名區分 (如「公司WiFi-5G」、「公司WiFi-2.4G」)。
  • 域環境: 域網絡 (Category=2) 名稱由域控制器策略管理,本地修改可能被組策略覆蓋。
  • Win10/11 設定頁面同步: 修改註冊表後,「設定」→「網路和網際網路」→「Wi-Fi」→「管理已知網路」列表會同步更新。

通過註冊表或 PowerShell 精準控制網絡顯示名稱,讓「網絡 2/3/4...」成為歷史,提升多網絡環境下的識別效率與管理體驗。

copyright © 萬盛學電腦網 all rights reserved