您的位置:首页 > 其它

根据网卡所在的硬件接口设置IP地址

2016-05-31 00:42 369 查看
最近一直受到镜像恢复操作系统后,网络连接名变化问题的困扰。

当一台主机上有超过两个网口的时候,经常会出现windows操作系统在自适应时,网络连接名不固定的问题。而网上诸多根据网络连接名来修改IP地址的方法就因此不是很可靠。

经过一段时间的搜索找到了用Powershell可以获得网卡硬件地址的代码,据此可以准确的找到对应的网络接口,然后设置IP地址等。

具体的代码如下:

Function Get-NicBusFunctionID {

$adapters = get-wmiobject win32_networkadapter -filter "netenabled=true"

foreach ($adapter in $adapters) {

      
        $deviceId = $adapter.PnPDeviceID

        $locationInfo = (get-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Enum\$deviceID" `

                                          -name locationinformation).locationINformation

       
        $businfo = Resolve-PCIBusInfo -locationInfo $locationinfo

       
        new-object psobject -property @{

            "Name"       
= $adapter.NetConnectionID;

            "MacAddress" 
= $adapter.MacAddress

            "Index"      
= $adapter.Index;

            "PCIBusID"     
= $businfo.BusID;

            "PCIDeviceID"  
= $businfo.DeviceID;

            "PCIFunctionID" = $businfo.FunctionID

        }
}

}

Function Resolve-PCIBusInfo {

param (

[parameter(ValueFromPipeline=$true,Mandatory=$true)]

[string]
$locationInfo
)
PROCESS {

[void]($locationInfo -match 
"\d,\d,\d")

$busId,$deviceID,$functionID = $matches[0] -split ","

new-object psobject -property @{

          "BusID" = $busID;

          "DeviceID" = "$deviceID"

          "FunctionID" = "$functionID"

          }

}        
}
具体怎样使用这个脚本后续再更新吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: