我想在我的计算机上创建一个COM端口列表(COM端口+描述)。我的观点是创建一个COM端口列表,以便使用USB / RS232转换器与交换机通信。
到目前为止我尝试了什么:
Get-WMIObject Win32_SerialPort | Select-Object DeviceID,Description
但是没有出现所有COM端口 (例如:缺少COM11)
另一次尝试:
[System.IO.Ports.SerialPort]::getportnames()
这里我需要的端口存在,但缺少描述。 (示例:COM11存在但没有详细信息)
答案 0 :(得分:4)
这个怎么样?
$c1 = new-object System.IO.Ports.SerialPort com1
$c1
BaseStream :
BaudRate : 9600
BreakState :
BytesToWrite :
BytesToRead :
CDHolding :
CtsHolding :
DataBits : 8
DiscardNull : False
DsrHolding :
DtrEnable : False
Encoding : System.Text.ASCIIEncoding
Handshake : None
IsOpen : False
NewLine :
Parity : None
ParityReplace : 63
PortName : com1
ReadBufferSize : 4096
ReadTimeout : -1
ReceivedBytesThreshold : 1
RtsEnable : False
StopBits : One
WriteBufferSize : 2048
WriteTimeout : -1
Site :
Container :
您可以为从getportnames()返回的每个端口执行此操作。您可能希望在每个端口上调用Dispose()方法,并在完成收集信息后将$ c1设置为$ null。
答案 1 :(得分:2)
这样做了:
https://www.google.com/search?q=powershell+get+available+com+ports&gws_rd=ssl
发现了这个:
http://empegbbs.com/ubbthreads.php/topics/362862/Windows_command_to_quickly_lis
导致了这个:
https://github.com/todbot/usbSearch/blob/master/listComPorts.vbs
所以我适应了这个:
Get-WmiObject Win32_PnPEntity -Filter "Name LIKE 'com%'" | Where Name -match 'COM\d+'
或者
Get-WmiObject -Query 'SELECT Name, Description from Win32_PnPEntity WHERE Name LIKE "com%"'
答案 2 :(得分:1)
以上答案似乎是针对已弃用的Powershell对象的。
我可以使用它:
Get-CimInstance -Class Win32_SerialPort | Select-Object Name, Description, DeviceID
删除| Select-Object Name, Description, DevideID
,以检查其他属性。