Powershell:为自动化收集NIC PCI总线信息

系统 Windows 自动化
当你进行一次Hyper-V集群的部署时,配置网络会是一件痛苦的事情。不同的厂商或变更的硬件布局仅仅是自动化部署所遇挑战中的两个举例。这篇文章中我将和你分享用PowerShell收集信息的方法,这些信息关于哪个网络适配器位于什么PCI总线。你之后可以使用这些信息来重命名网络适配器,组合、更改网络适配器设置等等。

当你进行一次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到注册表。

复制粘贴会确保所有单双引号都正确。希望这篇文章能对你有用。

【编辑推荐】

  1. 展望2012:Windows Server 8、PowerShell和云
  2. PowerCLI对决PowerShell 谁才是最好的脚本
  3. 使用PowerShell管理Windows桌面
责任编辑:Yeva 来源: TechTarget中国
相关推荐

2012-05-16 11:11:02

PowershellNIC PCI

2014-03-11 11:10:10

PowerShell自动化脚本

2013-08-28 10:38:01

2014-03-11 11:03:17

自动化脚本PowerShell

2016-08-02 15:24:40

PCI总线布局

2021-11-23 12:11:59

PowershellLinuxDevOps

2017-12-17 21:58:18

2010-03-26 11:36:50

Windows Emb

2018-07-13 06:46:35

数据中心自动化微服务

2022-05-13 17:03:13

红帽AzureAnsible

2022-07-14 08:16:24

Node.js后端自动化测试

2020-06-03 15:14:10

大数据代码开发

2018-02-25 19:29:49

自动化数字化IT

2022-02-04 21:50:37

网络安全自动化

2010-12-06 09:59:58

2020-04-29 11:28:54

智能自动化机器人流程自动化AI

2021-10-13 10:06:49

自动化IT安全

2012-09-04 10:20:31

IBMdw

2010-12-06 09:35:27

网络自动化

2022-02-18 13:12:49

人工智能自动化技术
点赞
收藏

51CTO技术栈公众号