在Server 2008 Powershell

时间:2016-05-05 16:02:52

标签: windows powershell windows-server-2008

我已经得到的情况是需要在具有不同网络路由的多个环境中的几千台服务器上部署新的网络路由。我想编写一个由GPO触发的脚本,该脚本抓取用于a的网关地址当前配置的路由,然后使用该网关地址为我需要添加的附加子网创建新路由。

一些研究发现Server 2012的这个解决方案很简单:

get-netroute -DestinationPrefix "192.168.0.1/24" | select-object -expandproperty "NextHop"

然后,它为我提供了用于网络路由'192.168.0.1/24'的网关地址。然后,我可以将其提供给变量以创建新路线。

在Server 2008 R2及以下版本中,此命令不可用,所以我想知道是否还有另一种聪明的方法可以完成此操作?

2 个答案:

答案 0 :(得分:0)

您可以使用以下内容。在Server 2008 R2上测试。这仅提取默认网关,但您提到可以使用它来创建新路由。如果适用,请在依赖它之前测试不同的操作系统本地化。

$defaultgw = (((route print 0.0.0.0 | ? {$_ -Match '0\.0\.0\.0.*[a-z]'}) -Replace '0\.0\.0\.0|[a-z]|\s+','') -Split '`r`n')[0]
$defaultgw

这样做是需要route print 0.0.0.0的输出,在每个字符串中查找字符[a-z](请注意,这在PowerShell中默认不区分大小写)表示它是{{1路由并从字符串中删除此文本Default和空格。剩下的应该是默认网关。

答案 1 :(得分:-1)

尼克,

Per Microsoft site,Powershell 5.0上提供了Get-Netroute cmdlet。