[통신] 동일한 장치가 항상 동일한 통신 포트를 사용하도록 하는 방법

2024. 12. 27. 10:17엔지니어링

728x90
반응형

Windows에서 동일한 USB 장치가 항상 동일한 통신 포트를 사용하도록 하려면 장치 ID를 확인하고 이를 기반으로 설정하는 스크립트를 작성하여 시작 작업으로 추가할 수 있습니다. 아래는 이를 구현하는 단계입니다.

1. 장치 ID확인

 

2. PowerShell 스크립트 작성

PowerShell을 사용해 장치 ID에 따라 포트를 고정하는 스크립트를 작성합니다.

통신포트고정방법 PowerShell 스크립트 예제.txt
0.00MB

# USB 장치의 고유 ID
$targetDevice = "USB\VID_1234&PID_5678\1234567890"

# 원하는 고정 COM 포트 번호
$desiredPort = "COM5"

# 현재 연결된 COM 포트 정보 가져오기
$devices = Get-WmiObject Win32_PnPEntity | Where-Object { $_.DeviceID -like "USB*" -and $_.DeviceID -like "*VID_1234&PID_5678*" }

if ($devices) {
    foreach ($device in $devices) {
        if ($device.DeviceID -like "*$targetDevice*") {
            # 현재 COM 포트 확인
            $currentPort = (Get-WmiObject Win32_SerialPort | Where-Object { $_.PNPDeviceID -eq $device.DeviceID }).DeviceID

            # 포트 번호가 원하는 값인지 확인
            if ($currentPort -ne $desiredPort) {
                Write-Host "현재 포트: $currentPort. 포트를 $desiredPort로 변경 중..."
                # 포트 번호 변경
                Start-Process reg add `
                    "HKLM\SYSTEM\CurrentControlSet\Control\COM Name Arbiter" `
                    /v $desiredPort /t REG_SZ /d $device.DeviceID /f
            } else {
                Write-Host "포트가 이미 $desiredPort로 설정되어 있습니다."
            }
        }
    }
} else {
    Write-Host "대상 장치가 연결되지 않았습니다."
}

 

3. 스크립트를 자동 실행 하도록 설정

4. 테스트 및 검증

참고사항

728x90
반응형