PowerShell 命令 Get-NetConnectionProfile 来查看当前网络连接的类型。命令会列出当前计算机上所有网络连接的详细信息,包括连接名称、接入类型(例如“域网络”、“专用网络”、“公用网络”)等。在返回的信息中,查找"NetworkCategory"属性的值即可确定网络连接类型。
在 Windows 中将 Wi-Fi 网络设置为公共或专用网络 - Microsoft 支持
在 Windows 注册表中,路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
存储了有关计算机上所有已连接网络(包括无线网络和有线网络)的配置信息。每个网络都有一个与之对应的配置文件,通常每个配置文件对应一个网络连接(例如一个 Wi-Fi 网络或以太网网络)。
每个网络配置文件都位于 Profiles
子键下,并以 GUID(全球唯一标识符)作为文件夹名称,表示不同的网络连接。每个 GUID 文件夹下包含了该网络的具体信息,例如网络名称、网络类型、连接时间、是否连接等。以下是该路径下的一些常见键及其说明,表格化呈现:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles 注册表分类
键/子键 | 说明 |
---|---|
Profile Name | 网络配置文件的名称,通常是网络连接的 SSID(Wi-Fi 名称)或本地连接(以太网)的名称。 |
ProfileGuid | 唯一的 GUID(全球唯一标识符)表示网络配置文件的标识符。这个 GUID 用作每个网络连接的目录名。 |
Name | 存储网络连接的名称(例如 Wi-Fi 的 SSID 或以太网连接名称)。 |
Description | 网络连接的描述信息(如果有的话)。 |
Category | 网络类型的分类。可能的值包括:Public (公共网络)、Private (私有网络)、Domain (域网络)。 |
NetworkCategory | 网络类别,可能的值为:1 (Public)、2 (Private)、3 (Domain)。这用于指示网络是公用网络、私有网络还是域网络。 |
LastConnected | 上次连接到此网络的时间戳。 |
FirstConnected | 第一次连接到此网络的时间戳。 |
Guid | 与 ProfileGuid 相同,通常是该网络配置文件的 GUID 标识符。 |
PublicKey | 公钥,用于加密或验证网络连接的安全性设置。 |
Shared | 表示网络是否为共享网络,1 表示是共享网络,0 表示不是共享网络。 |
Connectivity | 网络连接的状态,指示网络是否连接,0 表示未连接,1 表示已连接。 |
IpConfig | IP 配置信息,如 IP 地址、子网掩码、网关、DNS 等(通常为十六进制编码)。 |
DnsSuffix | 与网络相关的 DNS 后缀。 |
IsConnected | 是否已连接到此网络,0 表示未连接,1 表示已连接。 |
ProfilesDeleted | 记录是否有已删除的配置文件。 |
InterfaceType | 网络连接的类型,如 ethernet (以太网)、wifi (无线网络)等。 |
Cost | 网络的成本。Windows 会为不同的网络连接设置不同的成本值,通常用于数据使用量管理。 |
示例:某个 GUID 配置文件下的键值
假设我们查看一个 GUID 为 {D2B7D1C5-60B3-4C28-9F30-2A7E6BCBF506}
的网络配置文件,下面是可能的键和值示例:
键 | 值 |
---|---|
Name | MyWiFiNetwork |
Category | Private |
NetworkCategory | 2 (Private) |
LastConnected | 2024-12-31 08:00:00 (UTC) |
FirstConnected | 2024-01-01 12:30:00 (UTC) |
Guid | {D2B7D1C5-60B3-4C28-9F30-2A7E6BCBF506} |
IsConnected | 1 (已连接) |
InterfaceType | wifi |
IpConfig | C0A80101 (十六进制表示的 IP 地址,例如 192.168.1.1) |
DnsSuffix | example.com |
Cost | 1 (低成本网络,优先使用) |
Profiles
子键中的每个子文件夹(以 GUID 为名称)代表一个网络配置文件,包含有关该网络的详细信息。通过查看这些配置,管理员可以获取设备连接到网络的历史、网络类别、连接状态等关键信息。
使用 Windows 注册表设置网络类型
如果您是高级用户并且对编辑 Windows 注册表感到满意,则此方法对您来说更容易更改网络类型,尤其是当您希望仅使用一个注册表文件在多台 PC 上完成此操作时。
- 转到运行-> regedit
- 转到以下键:
HKEY_LOCAL_MACHINE –> SOFTWARE –> Microsoft –> Windows NT –> CurrentVersion –> NetworkList –> Profiles - 在 Profiles 键下,您会发现一些具有不同 GUID 的子键。这对应于没有。您与计算机一起使用的网卡。
- 选择 Profiles 的每个子键并在右侧窗格中查找 ProfileName 键。这将为您提供网络名称,以便您可以轻松识别要更改的网络。
- 确定正确的子项后,您可以更改右侧窗格中的 Category DWORD 值以更改该特定网络的网络类型。
值数据可以是 0 表示公共网络,1 表示私有网络,2 表示域网络。
在 Windows 操作系统中,secpol.msc
是一个本地安全策略管理工具,通常用于管理与计算机安全相关的策略配置。在网络设置方面,secpol.msc
允许配置一些安全策略,包括与网络类型、网络位置和分类相关的内容。
网络分类通常涉及将网络分为不同类型,例如 公用网络(Public)、私人网络(Private) 和 域网络(Domain)。这些网络类型的选择会影响操作系统如何应用安全设置,进而影响计算机如何与其他计算机和设备交互。
下面是一个表格,展示了 Windows 中网络类型、网络位置和分类的概述及其相关设置:
网络类型、位置与分类
网络位置 | 网络类型(Network Category) | 说明 | 对应的安全级别 |
---|---|---|---|
公用网络 | Public | 适用于公共场所的网络,例如咖啡厅、机场等公共 Wi-Fi。计算机会被视为不受信任的设备,默认会设置更严格的安全策略。 | 默认启用防火墙,计算机不允许其他设备访问。计算机会阻止入站连接并关闭文件共享等服务,提升安全性以防止恶意攻击。 |
私人网络 | Private | 适用于家庭或工作网络,例如家庭 Wi-Fi 网络或公司内部网络。设备间允许更高程度的共享和通信。 | 允许文件和打印机共享,启用网络发现,计算机可以与同一网络中的其他设备交互。更宽松的安全设置,方便设备之间的通信。 |
域网络 | Domain | 当计算机连接到 Windows 域时,适用于加入域的计算机。通常用于企业环境中的网络。 | 通过域控制器管理网络安全,计算机和其他设备可以相互通信,并且更严格的安全和管理策略由域管理员控制,便于管理大型网络。 |
对应策略设置
在 secpol.msc
中,网络位置和分类设置通常可以通过以下策略进行配置:
网络位置配置(Network Location Awareness, NLA)
- 网络发现:决定是否允许计算机发现网络中的其他设备。
- 启用:允许计算机发现并与网络中的其他设备共享资源。
- 禁用:禁用计算机的网络发现,防止计算机与其他设备共享资源。
Windows 防火墙设置
- 启用/禁用防火墙:根据网络类别自动启用或禁用 Windows 防火墙。
- 公用网络:默认启用防火墙并应用更严格的安全规则。
- 私有网络:允许更宽松的安全设置,支持共享等功能。
- 域网络:由域策略控制,通常通过域控制器自动配置。
文件共享和打印机共享
- 启用/禁用文件和打印机共享:根据网络类型自动控制文件共享功能。
- 在 私人网络 下,允许共享文件和打印机。
- 在 公用网络 下,禁用文件和打印机共享以增强安全性。
总结
在 secpol.msc
中,网络类型(Network Category)通常有三种主要分类:公用网络(Public)、私人网络(Private) 和 域网络(Domain)。每种网络类型都有不同的安全设置和级别,目的在于根据网络环境自动调整防火墙、安全共享和其他网络设置。
- 公用网络:默认启用严格的安全措施,防止其他设备访问计算机。
- 私人网络:允许设备之间的共享和通信,但仍保持一定的安全性。
- 域网络:由企业或组织的域控制器管理,提供更细致的安全和网络配置。
3- 使用本地安全策略更改网络类型
- 转到运行 –> secpol.msc
- 选择网络列表管理器策略。这将在右侧窗格中列出所有网络。
- 双击您想要的网络,转到网络位置选项卡。
- 将网络位置类型更改为未配置、私有或公共。
- 如果您想对所有连接的网络执行此操作,您可以双击所有网络而不是您想要的网络。
使用 PowerShell 设置网络类型
使用管理权限打开 PowerShell
运行以下命令:
获取 NetConnectionProfile
查看要更改其类型的网络名称并运行以下命令:
Set-NetConnectionProfile -Name这里-网络类别
其中 ITT 是您的网络名称,您可以将 -NetworkCategory 开关值更改为 Public 或 Private。
PowerShell 命令更改网络类型
这将立即更改网络类型。
在Windows中,网络连接的NetworkCategory(网络类型)通常有三种类型:
-
公用(Public):表示连接到公共网络,如公共Wi-Fi或其他不受信任的网络。此设置提供了最高级别的安全性,适用于需要更严格安全控制的情况。
-
私有(Private):表示连接到家庭网络或办公网络,可以信任其他设备和用户,并允许共享文件和打印机等资源。此设置适用于信任的网络环境,通常用于家庭或办公网络。
-
领域(Domain):表示连接到公司或组织的域网络,可以信任其他设备并允许共享资源。此设置适用于受信任的领域网络环境,通常用于企业或组织网络。
您可以使用PowerShell命令Get-NetConnectionProfile
来查看当前网络连接的NetworkCategory类型。
Get-NetConnectionProfile
是 PowerShell 中的一个命令,用于获取当前计算机的网络连接配置文件,包括有关网络连接的详细信息。它提供了与网络适配器相关的各种信息,例如连接的网络类型、网络接口等。以下是对该命令输出信息进行分类的表格化展示:
Get-NetConnectionProfile
输出字段分类
类别 | 属性 | 说明 |
---|---|---|
基本信息 | Name |
网络连接的名称(例如,Wi-Fi 网络名称或以太网连接名称)。 |
InterfaceAlias |
网络接口的别名(通常是适配器的名称,如 Wi-Fi 或 Ethernet )。 |
|
InterfaceIndex |
网络接口的索引编号。 | |
网络类型 | NetworkCategory |
网络的类别,可能的值包括: Public (公共网络)、Private (私有网络)、DomainAuthenticated (域认证网络)。 |
IPv4Connectivity |
IPv4 网络连接状态: Disconnected (未连接)、Connected (已连接)等。 |
|
IPv6Connectivity |
IPv6 网络连接状态: Disconnected (未连接)、Connected (已连接)等。 |
|
连接属性 | ConnectionProfile |
表示连接的具体信息,可能包含接口的连接类型或连接方式。 |
NetworkCategory |
网络类别: Public (公共)、Private (私有)、DomainAuthenticated (域认证)。 |
|
适配器属性 | InterfaceType |
网络接口类型,例如:Ethernet (以太网)、Wi-Fi (无线网络)、Bluetooth (蓝牙)。 |
InterfaceDescription |
网络适配器的描述,例如 Realtek PCIe GBE Family Controller 或 Intel(R) Wireless-AC 9260 。 |
|
地址信息 | IPv4Address |
网络接口的 IPv4 地址。 |
IPv6Address |
网络接口的 IPv6 地址。 | |
配置与安全 | IsFirewallEnabled |
防火墙是否启用(True 或 False )。 |
IsHomeGroupEnabled |
是否启用了家庭组(True 或 False )。 |
|
连接状态与配置 | IsConnected |
是否已连接到网络(True 或 False )。 |
IsWired |
是否为有线连接(True 或 False )。 |
|
DNS 和 DHCP 信息 | DhcpEnabled |
DHCP 是否启用(True 或 False )。 |
DhcpServer |
获取的 DHCP 服务器的 IP 地址(如果启用 DHCP)。 | |
DNSAddresses |
网络连接的 DNS 服务器地址列表。 | |
位置与地理信息 | Location |
网络连接的地理位置或位置描述。 |
常见示例
-
获取所有网络连接的基本信息
powershellCopy CodeGet-NetConnectionProfile
该命令会返回所有网络连接的详细信息,包括接口别名、网络类别和连接状态等。
-
获取特定网络连接的网络类别和状态
powershellCopy CodeGet-NetConnectionProfile | Select-Object Name, NetworkCategory, IPv4Connectivity
这个命令只显示网络名称、网络类别和 IPv4 连接状态。
-
获取所有网络接口的名称和连接状态
powershellCopy CodeGet-NetConnectionProfile | Select-Object InterfaceAlias, IsConnected
该命令列出所有网络接口的名称以及它们的连接状态。
-
获取连接的网络的 DNS 服务器地址
powershellCopy CodeGet-NetConnectionProfile | Select-Object Name, DNSAddresses
这个命令显示每个网络连接的 DNS 服务器地址。
-
显示所有有线网络连接的详细信息
powershellCopy CodeGet-NetConnectionProfile | Where-Object {$_.IsWired -eq $True}
这个命令过滤出所有有线连接,并显示它们的相关信息。
Get-NetConnectionProfile
提供了网络连接的各种信息,并且通过 Select-Object
和 Where-Object
等命令可以灵活地筛选和展示所需的字段。它对于网络管理、故障排除以及网络配置监控非常有用。
PowerShell 命令 Get-NetConnectionProfile
来查看当前网络连接的类型。在 PowerShell 中执行以下命令:
Get-NetConnectionProfile
这个命令会列出当前计算机上所有网络连接的详细信息,包括连接名称、接入类型(例如“域网络”、“专用网络”、“公用网络”)等。在返回的信息中,查找"NetworkCategory"属性的值即可确定网络连接类型。
NetworkCategory: Public
表示网络连接类型为公用网络。
DomainAuthenticationKind: None
表示没有域认证。
使用 PowerShell 命令 Set-NetConnectionProfile
来修改网络连接的类型为专用网络。在 PowerShell 中执行以下命令:
Set-NetConnectionProfile -NetworkCategory Private
这个命令将当前网络连接的类型设置为专用网络。请确保以管理员权限运行 PowerShell,以便成功执行此命令。修改完成后,你可以再次运行 WinRM 命令,应该就不会再遇到相同的问题了。
在命令提示符(CMD)中,你可以使用 netsh
命令来查看当前网络连接的类型。执行以下命令:
netsh interface show interface
这个命令将列出当前计算机上所有网络接口的详细信息,包括接口名称、类型和状态。你可以在结果中查找当前连接的接口,然后查看其类型(例如公用、专用或域)来确定当前网络连接的类型。
netsh
是一个用于配置和管理 Windows 操作系统网络设置的命令行工具。通过 netsh
,可以配置各种网络设置,包括网络接口、IP 地址、路由、网络适配器、无线网络等。netsh
命令中的网络类型分类通常涉及到网络连接的状态、接口、配置等信息。
以下是通过 netsh
获取的网络类型和相关命令输出的分类信息的表格化展示:
netsh
网络类型分类表
类别 | 命令 | 说明 |
---|---|---|
接口配置 | netsh interface show interface |
显示所有网络接口的信息,包括接口的名称、类型、状态(启用或禁用)、以及网络连接类型等。 |
netsh interface set interface |
用于启用或禁用特定网络接口、修改接口状态(例如禁用Wi-Fi适配器或启用以太网适配器)。 | |
IP 配置 | netsh interface ipv4 show config |
显示 IPv4 配置,包括 IP 地址、子网掩码、默认网关和 DNS 服务器等。 |
netsh interface ipv6 show config |
显示 IPv6 配置,包括 IPv6 地址、网关和 DNS 服务器等。 | |
网络适配器管理 | netsh interface set address |
设置网络适配器的 IP 地址、子网掩码和默认网关等。 |
netsh interface set interface |
用于设置网络接口的名称和连接属性,例如设置 IP 地址、修改网卡速度等。 | |
无线网络设置 | netsh wlan show interfaces |
显示当前无线网络接口的状态信息,包括连接的 SSID(网络名称)、信号强度、连接速度等。 |
netsh wlan show profile |
显示无线网络配置文件的信息,包括已连接过的 Wi-Fi 网络的设置和配置信息。 | |
netsh wlan set hostednetwork |
设置无线热点(如启用或禁用 Windows 计算机的无线网络共享功能)。 | |
路由与网关配置 | netsh interface ipv4 show route |
显示 IPv4 路由表,包括目标、子网掩码、网关和接口等信息。 |
netsh interface ipv6 show route |
显示 IPv6 路由表,包括目标、子网掩码、网关和接口等信息。 | |
netsh interface ipv4 add route |
添加静态 IPv4 路由。 | |
netsh interface ipv6 add route |
添加静态 IPv6 路由。 | |
防火墙与安全设置 | netsh advfirewall show allprofiles |
显示 Windows 防火墙的所有配置文件(域、专用、公用)的详细状态和设置。 |
netsh advfirewall set currentprofile |
设置当前活动的防火墙配置文件(例如启用或禁用防火墙、配置端口等)。 | |
网络共享 | netsh wlan start hostednetwork |
启动无线网络共享,使用计算机作为热点。 |
netsh wlan stop hostednetwork |
停止无线网络共享。 | |
网络诊断与故障排除 | netsh interface ipv4 reset |
重置 IPv4 网络配置,常用于故障排除时清除配置并恢复默认设置。 |
netsh interface ipv6 reset |
重置 IPv6 网络配置,常用于故障排除时清除配置并恢复默认设置。 | |
netsh winsock reset |
重置 Winsock,修复网络连接问题。 | |
DNS 配置 | netsh interface ipv4 set dns |
设置 IPv4 地址的 DNS 服务器。 |
netsh interface ipv6 set dns |
设置 IPv6 地址的 DNS 服务器。 | |
网络诊断与分析 | netsh interface show interface |
显示每个网络接口的当前状态(启用/禁用、接口类型等)。 |
netsh trace show |
显示网络诊断跟踪信息,常用于网络故障排查。 |
常见示例
-
显示所有网络接口的信息
cmdCopy Codenetsh interface show interface
输出:所有网络接口的状态信息(例如接口的名称、状态、类型等)。
-
启用某个接口
cmdCopy Codenetsh interface set interface "Ethernet" enable
输出:启用以太网接口。
-
禁用某个接口
cmdCopy Codenetsh interface set interface "Wi-Fi" disable
输出:禁用 Wi-Fi 接口。
-
查看 IPv4 配置信息
cmdCopy Codenetsh interface ipv4 show config
输出:IPv4 配置(如 IP 地址、子网掩码、默认网关、DNS 等)。
-
配置静态 IP 地址
cmdCopy Codenetsh interface ipv4 set address name="Ethernet" static 192.168.1.100 255.255.255.0 192.168.1.1
输出:为 Ethernet 接口设置静态 IP 地址 192.168.1.100,子网掩码 255.255.255.0,默认网关 192.168.1.1。
-
启用并启动无线热点
cmdCopy Codenetsh wlan set hostednetwork mode=allow ssid=MyHotspot key=Password123 netsh wlan start hostednetwork
输出:启用并启动无线热点,SSID 为
MyHotspot
,密码为Password123
。 -
重置 IPv4 配置
cmdCopy Codenetsh interface ipv4 reset
输出:重置 IPv4 配置,恢复为默认设置。
-
显示防火墙配置
cmdCopy Codenetsh advfirewall show allprofiles
输出:显示所有防火墙配置文件(域、专用、公用)的状态。
netsh
命令行工具在 Windows 操作系统中提供了丰富的网络配置和管理功能,涵盖了网络接口、IP 配置、无线网络、路由、防火墙等多个方面。通过结合使用不同的 netsh
子命令,用户可以方便地对网络进行管理、故障排查和调优。
在CMD环境下,netsh
命令不能直接修改网络连接的类型。不过你可以使用一个批处理脚本来实现这一目的。下面是一个可以实现该功能的示例脚本:
@echo off
rem 获取当前连接的接口名称
for /f "tokens=*" %%a in ('netsh interface show interface ^| findstr /c:"Connected"') do set interface=%%a
rem 修改网络连接类型为公用
netsh interface set interface "%interface%" newname="YourNetworkName" newtype=public
请将上述代码中的 "YourNetworkName"
替换为你想要修改的网络连接名称。执行该脚本时,它将找到当前连接的接口名称,然后将其类型修改为公用网络。
将此代码保存为 .bat
批处理文件,然后以管理员身份运行它即可。
CMD 中执行命令,可以使用 powershell
命令来运行 PowerShell 命令,例如:
powershell -Command "Set-NetConnectionProfile -NetworkCategory Private"
这会将当前网络连接的类型设置为专用网络。请确保以管理员权限运行 CMD,以便成功执行这些命令。