Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell cmdlet,返回包含接口默认网关的对象_Powershell - Fatal编程技术网

Powershell cmdlet,返回包含接口默认网关的对象

Powershell cmdlet,返回包含接口默认网关的对象,powershell,Powershell,我在Microsoft的文档中搜索了一个cmdlet,该cmdlet返回一个包含接口默认网关的对象。我知道Get-NetIPConfiguration返回默认网关,但它不返回供我使用的对象。有什么想法吗 编辑这里是我正在运行的。我正在尝试自动更改nic的ip地址,为此,我需要nic的默认网关 $ip = Get-NetIPConfiguration -InterfaceIndex 17 New-NetIPAddress -IPAddress (New Ip address) -PrefixLe

我在Microsoft的文档中搜索了一个cmdlet,该cmdlet返回一个包含接口默认网关的对象。我知道Get-NetIPConfiguration返回默认网关,但它不返回供我使用的对象。有什么想法吗

编辑这里是我正在运行的。我正在尝试自动更改nic的ip地址,为此,我需要nic的默认网关

$ip =  Get-NetIPConfiguration -InterfaceIndex 17
New-NetIPAddress -IPAddress (New Ip address) -PrefixLength (Current Prefix length) -DefaultGateway $ip.IPv4DefaultGateway

在powershell中,事情并不总是看起来的那样。为了可读性,可以过滤屏幕上的对象显示。就像这里:

PS> Get-NetIPConfiguration -InterfaceIndex 8
InterfaceAlias       : Wi-Fi
InterfaceIndex       : 8
InterfaceDescription : Intel(R) Dual Band Wireless-AC 8265
NetProfile.Name      : xxxxxx
IPv4Address          : 10.0.0.26
IPv6DefaultGateway   :
IPv4DefaultGateway   : 10.0.0.251
DNSServer            : 10.0.0.251
                       212.54.35.25
                       212.54.40.25
似乎IPv4DefaultGateway只是一个包含ip地址的字符串。但事实并非如此:

PS> (Get-NetIPConfiguration -InterfaceIndex 8).ipv4defaultgateway

ifIndex DestinationPrefix                              NextHop                                  RouteMetric ifMetric PolicyStore PSComputerName
------- -----------------                              -------                                  ----------- -------- ----------- --------------
8       0.0.0.0/0                                      10.0.0.251                                         0 45       ActiveStore
现在您可以看到IPv4DefaultGateway有成员,NextHop是包含网关实际ip地址的成员。有时你需要剥开物体来找出里面有什么。此处不使用,但
Get Member
在这些问题上非常有用

因此,您需要的代码是:

$ip =  Get-NetIPConfiguration -InterfaceIndex 17
New-NetIPAddress -IPAddress (New Ip address) -PrefixLength (Current Prefix length) -DefaultGateway $ip.IPv4DefaultGateway.NextHop

不清楚您期望的是什么,对我来说,这会返回一个对象:
Get NetIPConfiguration | Where object{$\ IPv4DefaultGateway-或$\ IPv6DefaultGateway}格式列表*
您的问题包含额外/更新的信息,不要将其放入注释中。感谢它起到了作用。是否有我可以阅读的文档或是你用来理解它的经验法则?我将编辑我的答案来解释如何找到像这样的东西