如何在Windows Server 2008 R2中获得相当于Set-DnsClientServerAddress的值?

如何在Windows Server 2008中以编程方式设置networking适配器的DNS地址? 看起来像Set-DnsClientServerAddress不受支持。

这是不可能的,通过PowerShell( 文档没有明确这一点,但你可以看到Server 2008未列在页面的顶部),但你可以使用netsh

 netsh interface ip add dnsserver "Local Area Connection" 10.0.0.1 

由于您要求使用PowerShell,因此可以使用WMI并通过Win32_NetworkAdapterConfiguration提供程序进行设置:

 Get-WMIObject win32_NetworkAdapterConfiguration 

这将列出你有的适配器,然后你可以select一个特定的适配器:

 $adapter = Get-WMIObject win32_NetworkAdapterConfiguration -Filter "Index=X" # or use PowerShell filtering $adapter = Get-WMIObject win32_NetworkAdapterConfiguration | Where-Object { $_.Index -eq X } 

然后使用SetDNSServerSearchOrder()方法设置地址(es):

 $adapter.SetDNSServerSearchOrder("8.8.8.8") # or a list $dns_servers = "8.8.8.8", "8.8.4.4" $adapter.SetDNSServerSearchOrder($dns_servers) 

奖励单线:

 (gwmi win32_networkadapterconfiguration -Filter "index=x").SetDNSServerSearchOrder(@("8.8.8.8","8.8.4.4"))