#list #powershell #serial-port
#Список #powershell #последовательный порт
Вопрос:
Я хотел бы создать список COM-портов на моем компьютере (COM-порт описание). Я хочу создать список COM-портов, чтобы взаимодействовать с коммутатором с помощью преобразователя USB / RS232.
Что я пробую до сих пор :
Get-WMIObject Win32_SerialPort | Select-Object DeviceID,Description
Но все COM-порты не отображаются
(пример: COM11 отсутствует)
еще одна попытка :
[System.IO.Ports.SerialPort]::getportnames()
здесь нужный мне порт присутствует, но описание отсутствует.
(пример: COM11 присутствует, но без каких-либо подробностей)
Комментарии:
1. Этот вопрос написан не на английском языке.
Ответ №1:
Как насчет этого?
$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.Для завершения для новичка, который не понимает, как собрать все это вместе, вот мой комбо:
$COMportList = [System.IO.Ports.SerialPort]::getportnames()
ForEach ($COMport in $COMportList)
{
$temp = new-object System.IO.Ports.SerialPort $COMport
echo $temp.PortName
echo $temp.BaudRate
$temp.Dispose()
}
2. Похоже, этот ответ больше не работает для PowerShell 5.1.19041.906. Ответ Марка Стауффера работает.
Ответ №2:
Приведенные выше ответы, похоже, относятся к устаревшим объектам Powershell.
Я смог использовать это:
Get-CimInstance -Class Win32_SerialPort | Select-Object Name, Description, DeviceID
Удалите | Select-Object Name, Description, DevideID
, чтобы проверить дополнительные свойства.
Ответ №3:
сделал это:
https://www.google.com/search?q=powershell get available com portsamp;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 'COMd '
или это
Get-WmiObject -Query 'SELECT Name, Description from Win32_PnPEntity WHERE Name LIKE "com%"'
Комментарии:
1. Это больше не работает в PowerShell 5.1.19041.906. ответ Марка Стоффера действительно работает.
2. спасибо, что сообщили нам, и спасибо @mark за ответ