2014-06-19 18 views
6

Chciałbym utworzyć listę portów COM na moim komputerze (port COM + opis). Chodzi mi o stworzenie listy portów COM w celu komunikowania się z przełącznikiem za pomocą konwertera USB/RS232.Lista portów szeregowych portów szeregowych + opis

Co próbuję tak daleko:

Get-WMIObject Win32_SerialPort | Select-Object DeviceID,Description 

Ale port COM nie pojawia (przykład: COM11 brakuje)

kolejną próbę:

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

tutaj port Potrzebuję jest obecny, ale brakuje opisu. (przykład: COM11 jest obecny, ale bez szczegółów)

+0

Vous parlez polonais – Raf

+0

To pytanie nie jest napisany w języku angielskim. –

Odpowiedz

3

Co z tym?

$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    : 

Można to zrobić dla każdego portu, który wraca z getportnames(). Prawdopodobnie będziesz chciał wywołać metodę Dispose() na każdym porcie i ustawić $ c1 na $ null po zakończeniu zbierania dla niego informacji.

+0

W celu ukończenia dla początkujących, którzy nie rozumieją, jak to wszystko połączyć, oto moje combo: '$ COMportList = [System.IO.Ports.SerialPort] :: getportnames()' ' foreach ($ licować w $ COMportList) ' ' { '' $ temp = new-object System.IO.Ports.SerialPort $ COMport' 'echo $ temp.PortName' ' echo $ temp.BaudRate ' ' $ temp.Dispose() ' '} ' – PeterFnet

2

to zrobił:

https://www.google.com/search?q=powershell+get+available+com+ports&gws_rd=ssl

znaleźć to:

http://empegbbs.com/ubbthreads.php/topics/362862/Windows_command_to_quickly_lis

co doprowadziło do tego:

https://github.com/todbot/usbSearch/blob/master/listComPorts.vbs

więc dostosować go do tego:

Get-WmiObject Win32_PnPEntity -Filter "Name LIKE 'com%'" | Where Name -match 'COM\d+' 

czy to

Get-WmiObject -Query 'SELECT Name, Description from Win32_PnPEntity WHERE Name LIKE "com%"' 
Powiązane problemy