Powershell列表串行端口+描述

时间:2014-06-19 13:13:24

标签: list powershell serial-port

我想在我的计算机上创建一个COM端口列表(COM端口+描述)。我的观点是创建一个COM端口列表,以便使用USB / RS232转换器与交换机通信。

到目前为止我尝试了什么:

Get-WMIObject Win32_SerialPort | Select-Object DeviceID,Description

但是没有出现所有COM端口 (例如:缺少COM11)

另一次尝试:

[System.IO.Ports.SerialPort]::getportnames()

这里我需要的端口存在,但缺少描述。 (示例:COM11存在但没有详细信息)

3 个答案:

答案 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,以检查其他属性。