通过 PowerShell 获取活动网络适配器并设置 DNS

Jon*_*ica 4 networking powershell windows-10

在 Windows 10 上,我需要在登录后立即手动设置我的 DNS 服务器。由于某种原因,每次重新启动时 DHCP 似乎都会破坏我的手动设置。:-( )

\n

我使用 wifi 和电缆(取决于我是否在带底座的办公桌前)。

\n

这个命令效果很好:

\n
Set-DNSClientServerAddress \xe2\x80\x93interfaceIndex 25 \xe2\x80\x93ServerAddresses (\xe2\x80\x9c127.0.0.1\xe2\x80\x9d,\xe2\x80\x9d1.1.1.2\xe2\x80\x9d)\n
Run Code Online (Sandbox Code Playgroud)\n

如何动态找出interfaceIndex当前活动的网络连接?

\n

解决方案

\n

这是一项正在进行中的工作(还没有弄清楚在坞站等上寻找正确适配器的所有变化),但它可以在 wifi 上工作(我有多个 vmware 接口已启动,需要将它们过滤掉!)

\n
$adapterIndex = Get-NetAdapter | % { Process { If (( $_.Status -eq "up" ) -and ($_.Name -eq "Wi-Fi") ){ $_.ifIndex } }};\n\nSet-DNSClientServerAddress \xe2\x80\x93interfaceIndex $adapterIndex \xe2\x80\x93ServerAddresses (\xe2\x80\x9c127.0.0.1\xe2\x80\x9d,\xe2\x80\x9d1.1.1.2\xe2\x80\x9d);\n
Run Code Online (Sandbox Code Playgroud)\n

Vom*_*yle 5

使用get-netadapter并根据状态值“ up ”获取当前“活动”网络适配器的值。使用该值动态获取该适配器的索引值。然后使用它作为命令中的索引值来设置 DNS 地址。Set-DNSClientServerAddress

\n

请在支持资源部分阅读有关条件逻辑和其他用于帮助动态获取此详细信息的技术的更多信息。

\n

电源外壳

\n
[int]$intix = Get-NetAdapter | % { Process { If ( $_.Status -eq "up" ) { $_.ifIndex } }};\nSet-DNSClientServerAddress \xe2\x80\x93interfaceIndex $intix \xe2\x80\x93ServerAddresses ("127.0.0.1","1.1.1.2");\n
Run Code Online (Sandbox Code Playgroud)\n

Get-NetAdapter(输出示例)

\n

注意:请注意下面指定适配器的ifIndex值为active 且 up7Wi-Fi

\n
Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed\n----                      --------------------                    ------- ------       ----------             ---------\nBluetooth Network Conn... Bluetooth Device (Personal Area Netw...      20 Disconnected 98-5F-D3-4B-59-C4         3 Mbps\nEthernet 3                Some Virtual Ethernet Adapter                14 Disabled     02-50-41-00-00-01         2 Gbps\nWi-Fi                     Marvell AVASTAR Wireless-AC Network ...       7 Up           98-5F-D3-4B-59-C3       468 Mbps\nEthernet 2                Cisco AnyConnect Secure Mobility Cli...       4 Not Present  00-05-9A-3C-7A-00          0 bps\n
Run Code Online (Sandbox Code Playgroud)\n
\n

支持资源

\n\n