Press "Enter" to skip to content

修改未在Windows设置中列出的网络连接配置:公用或专用

Last updated on 2022/10/29

修改无法在GUI中修改的网络连接配置

有时候我们为了安全性,会关闭公用网络的文件夹共享,但是如果同时你还使用Hyper-v共享宿主机的文件夹的话,你会发现这时无法连接共享文件夹,这是因为windows虚拟交换机的默认属性是公用网络,而我们已经关掉了公用网络的文件夹共享,这时候,我们需要修改虚拟交换机的网络属性为专用。但是你会发现,Windows设置中并没有虚拟交换机的选项,也就无法通过设置来更改,而下面的两条命令就是通过命令行来解决这个问题。

Get-NetConnectionProfile
Set-NetConnectionProfile -InterfaceAlias "vEthernet (NAT Switch)" -NetworkCategory Private

或者(个人感觉下面的比较好):

Set-NetConnectionProfile -Name "未识别的网络" -NetworkCategory Private

通过上面两条命令即可设置网络属性为专用网络。注意,Get、Set命令均需要通过powershell执行

又一个冷知识,笑😂。


更新:以上是偏向于原理的介绍,下面给出一个我自己所使用的Power Shell实例,更加实用:

Process { While($true) { Get-NetConnectionProfile | % { Process { If(($_.InterfaceAlias -eq "vEthernet (Virtual Switch)") -and ( $_.NetworkCategory -eq "Private" )){ break } else { Set-NetConnectionProfile -InterfaceAlias "vEthernet (Virtual Switch)" -NetworkCategory Private } } } } exit }
Powershell -Command "Process { While($true) { Get-NetConnectionProfile | % { Process { If(($_.InterfaceAlias -eq """vEthernet (Virtual Switch)""") -and ( $_.NetworkCategory -eq """Private""" )){ break } else { Set-NetConnectionProfile -InterfaceAlias """vEthernet (Virtual Switch)""" -NetworkCategory Private } } } } exit }"

我相信会点代码的人应该都能看懂这两段命令的含义,需要说明的是:

  1. 理论上,Power Shell命令执行完毕后就自动结束了,但是我最后使用exit退出是因为在break跳出循环后此时程序的返回值为1,而不是0,这会造成一些问题。当然你也可以不用break而直接使用exit退出:Process { While($true) { Get-NetConnectionProfile | % { Process { If(($_.InterfaceAlias -eq "vEthernet (Virtual Switch)") -and ( $_.NetworkCategory -eq "Private" )){ exit } else { Set-NetConnectionProfile -InterfaceAlias "vEthernet (Virtual Switch)" -NetworkCategory Private } } } } }可能这样更好看?笑😏。
  2. 而后一个实例只是为了提醒各位,在实际使用的时候,注意引号!注意引号!注意引号!

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注