当你进行一次Hyper-V集群的总线部署时,配置网络会是信息一件痛苦的事情。不同的为自厂商或变更的硬件布局仅仅是自动化部署所遇挑战中的两个举例。这篇文章中我将和你分享用PowerShell收集信息的动化方法,这些信息关于哪个网络适配器位于什么PCI总线。收集你之后可以使用这些信息来重命名网络适配器,总线组合、信息更改网络适配器设置等等。
我们首先从收集现有网络适配器的信息开始。完成该过程的PowerShell命令如下:
Get-WMIObject Win32_PNPSignedDriver | where { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*”}
结果如下图所示:
在输出中我们发现网络适配器的位置。你可能会想,如果服务器上有12个网络适配器,那么它就不实用了。那么我们就能过在这条PowerShell命令中加入| ft Location来收集PCI总线信息。
Get-WMIObject Win32_PNPSignedDriver | where { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*”} | ft Location
现在我们拥有所有服务器中网络适配器的位置了,但是哪个是哪个呢?
我们需要的是适配器名称,比如任务管理器。下面的命令会让你得到这些信息。同样对于所有适配器,它就有些不适用了。
Get-WMIObject Win32_NetworkAdapter | where { $_.PNPDeviceID -eq $Adapter.DeviceID }
让我们将第一条命令放入变量中并且对第二条命令做一个循环。要显示结果,我们做一个简单的Write-Host来显示输出。接着脚本会显示如下:
$Adapters = Get-WMIObject Win32_PNPSignedDriver | where { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*”}
foreach ($Adapter in $Adapters ) {
$AdapterName = Get-WMIObject Win32_NetworkAdapter | where { $_.PNPDeviceID -eq $Adapter.DeviceID }
Write-Host ‘Adapter Name :’ $AdapterName.NetConnectionID
Write-Host ‘PCI BUS :’ $Adapter.Location
Write-Host ‘MAC Address :’ $AdapterName.MACAddress
Write-Host ‘GUID :’ $AdapterName.GUID
Write-Host
}
结果会怎么样呢?看看下面吧!
就是这样子。我还添加了MAC地址和GUID。这个实例的MAC地址还和博通的BACScli.exe命令行工具联合使用,用来配置网络适配器设置。如果需要,GUID可以用来添加TcpAckFrequency到注册表。
复制粘贴会确保所有单双引号都正确。希望这篇文章能对你有用。
【编辑推荐】
(责任编辑:焦点)
华兰生物(002007.SZ):2020年度净利升25.69% 基本每股收益0.8873元
券商偏好“扎堆” 36家券商年内斥资178亿元参与95家上市公司定增
544份三季报近四成预喜,87家公司净利润有望翻番 彰显业绩优势