PowerShell 및 기타 도구를 사용하여 USB 하드웨어 ID를 찾는 방법

마지막 업데이트 : 17/12/2025
저자 : 이삭
  • El 하드웨어 ID는 각 장치를 고유하게 식별합니다. Windows 그는 그것을 사용합니다 드라이버라이선스 및 보안.
  • PowerShell을 목록을 쉽게 나열하고 필터링할 수 있습니다. USB Get-PnpDevice와 같은 cmdlet 및 WMI 클래스를 사용하여 ID를 지정합니다.
  • REST API를 통해 중앙 서버로 데이터를 전송하는 스크립트를 사용하여 USB 장치 추적을 자동화할 수 있습니다.
  • 같은 도구 장치 관리자 USBView는 VID/PID 및 USB 디스크립터의 기타 주요 필드를 읽는 것을 용이하게 합니다.

PowerShell에서 USB 하드웨어 ID를 찾으세요

USB 드라이브를 연결했을 때 컴퓨터가 이상하게 작동하거나 Windows에서 알 수 없는 오류 메시지가 표시되는 경우가 있다면, 문제는 USB 장치의 하드웨어 ID 와 관련이 있을 가능성이 높습니다 . PowerShell 및 기타 Windows 내장 도구를 사용하여 이 ID를 찾는 방법을 알아두면 특히 타사 소프트웨어 설치가 제한된 비즈니스 환경에서 많은 문제를 예방할 수 있습니다.

또한 많은 기업에서는 보안 및 규정 준수를 위해 연결된 USB 장치를 모니터링하고, 장치 ID를 등록하고, 추적성을 유지 해야 합니다. 데이터 유출 방지부터 감염된 USB 드라이브를 통한 악성코드 침투 차단까지 , 모든 것은 각 장치를 정확하게 식별하는 데 달려 있습니다. 이 문서에서는 HWID의 작동 방식, PowerShell 및 기타 도구를 사용하여 USB ID를 얻는 방법, 그리고 해당 정보를 활용하여 문제를 진단하고 장치 추적을 자동화하는 방법을 자세히 살펴봅니다.

하드웨어 ID(HWID)란 무엇이며, 왜 중요할까요?

하드웨어 ID(HWID)는 마더보드, 하드 드라이브, 그래픽 카드, 네트워크 어댑터, USB 컨트롤러 등 컴퓨터의 각 물리적 구성 요소와 연결된 고유한 디지털 식별자입니다. 두 컴퓨터가 겉보기에 동일해 보이더라도 다른 컴퓨터와 구별할 수 있도록 해주기 때문에 흔히 장치의 "지문"이라고 불립니다.

일반적인 PC에서 운영 체제는 여러 주요 구성 요소의 HWID를 결합하여 전역 시스템 ID를 생성합니다 . 이 ID는 특정 시스템에 연결된 소프트웨어 라이선스 , IT 자산 추적, 그리고 프로그램이 승인된 하드웨어에서만 실행되도록 보장해야 하는 다양한 보안 프로세스에 매우 중요합니다.

이 식별자는 Windows에서 단순히 생성하는 것이 아닙니다. 각 하드웨어에는 펌웨어(예: 장치의 EEPROM)에 기록된 고유 ID가 있습니다 . 운영 체제는 이 정보를 읽어 장치 관리자, PowerShell 또는 wmic 와 같은 명령 에 표시되는 식별자 문자열을 생성합니다.

운영 체제를 처음 설치하면 Windows는 하드웨어 구성의 스냅샷을 찍고 해당 컴퓨터에 연결된 식별자 세트를 생성합니다. 나중에 마더보드와 같은 주요 부품을 변경하면 HWID 세트가 변경되어 라이선스 확인이 다시 필요하거나 일부 제품의 경우 시스템 재활성화가 필요할 수도 있습니다.

USB 장치 식별자를 만드는 방법

USB 장치의 경우, HWID는 매우 특정한 디스크립터인 USB 장치 디스크립터(USB_DEVICE_DESCRIPTOR) 에서 파생됩니다 . 이는 모든 USB 장치가 제공해야 하는 데이터 구조로, 장치의 기본 특성(클래스, 지원되는 USB 버전, 제조업체, 제품 등)을 설명합니다.

해당 설명자에는 idVendor와 idProduct라는 두 가지 핵심 필드가 있습니다 . 첫 번째 필드는 제조업체(공급업체 ID 또는 VID)를 식별하고, 두 번째 필드는 특정 제품 모델(제품 ID 또는 PID)을 식별합니다. Windows는 이러한 값을 사용하여 USB\VID_XXXX&PID_YYYY… 와 같은 문자열을 구성하고, 이 문자열은 장치 관리자에서 "하드웨어 ID"로 표시됩니다.

예를 들어, 마이크로소프트 USB 웹캠은 idVendor = 0x045E (Microsoft) 및 idProduct = 0x0728 과 같은 값을 가질 수 있습니다 . 이 두 값은 장치 버전 번호( bcdDevice ) 및 기타 필드와 함께 결합되어 Windows에서 올바른 드라이버를 찾는 데 사용하는 하드웨어 ID 및 호환 ID를 구성합니다.

디스크립터의 bcdUSB 필드 는 장치가 준수하는 USB 사양 버전을 나타냅니다(예: USB 2.0의 경우 0x0200). 이를 통해 USB 드라이버 스택은 장치와 통신하는 방법, 지원하는 속도 및 사용 가능한 구성 옵션을 파악할 수 있습니다.

중요한 점은 USB 장치는 연결된 동안 전원 상태가 변경되더라도 디스크립터 정보를 변경해서는 안 된다는 것 입니다 . 고속 또는 일반 속도로 연결되었는지에 따라 다른 정보를 표시할 수는 있지만, 이는 연결 시점에 결정됩니다.

드라이버 측에서 호스트는 장치로 전송되는 GET_DESCRIPTOR 제어 신호를 통해 이 디스크립터를 얻습니다 . Windows에서는 커널 모드 드라이버(KMDF/UMDF/WDM)가 URB(USB 요청 블록) 또는 프레임워크 API를 통해 이 디스크립터를 공식적으로 요청할 수 있지만, 이는 드라이버 개발 영역이지 PowerShell 관리 영역은 아닙니다.

Windows 그래픽 도구를 사용하여 USB 하드웨어 ID를 확인하세요.

Windows에서 USB 하드웨어 ID를 확인하세요

PowerShell을 시작하기 전에 Windows에서 모든 장치의 HWID를 볼 수 있는 몇 가지 간단한 그래픽 방식이 있다는 점을 기억해 두는 것이 좋습니다 . 이러한 방식은 특정 장치만 식별해야 할 때 특히 유용합니다.

  웹캠을 모바일, 태블릿 및 TV에 연결하는 방법

1. 장치 관리자

코드를 한 줄도 작성하지 않고 가장 빠르게 장치를 연결하는 방법은 Windows 장치 관리자를 사용하는 것입니다. USB 저장 장치 , 프린터, 웹캠 등 모든 종류의 하드웨어에 사용할 수 있습니다.

  • 장치 관리자 열기 Windows 키와 X 키를 동시에 누르고 "장치 관리자"를 선택하거나, "devmgmt.msc"를 검색하여 장치 관리자에 접근할 수 있습니다.
  • 예를 들어, 다음 위치에서 해당 구성 요소를 찾으십시오. "범용 직렬 버스 컨트롤러" 또는 "디스크 드라이브" USB 드라이브라면요.
  • 문제가 있는 장치를 마우스 오른쪽 버튼으로 클릭하고 입력하세요. 등록.
  • 탭으로 이동 세부.
  • "속성" 드롭다운 메뉴에서 선택하세요. 하드웨어 ID.

문자열 목록이 표시됩니다. 가장 구체적인 문자열에는 일반적으로 VID, PID가 포함되며, 경우에 따라 일련 번호 또는 SUBSYS가 포함될 수 있습니다. 이러한 문자열을 그대로 복사하여 스크립트나 드라이버 검색 에 사용할 수 있습니다.

2. WMIC를 사용한 명령 프롬프트

콘솔 옵션을 선호하지만 아직 PowerShell을 사용하고 싶지 않다면 wmic를 사용할 수 있습니다 (최신 버전에서는 더 이상 사용되지 않지만 여전히 많은 컴퓨터에서 찾아볼 수 있습니다).

wmic path win32_pnpentity get name, deviceid

이 명령은 모든 플러그 앤 플레이 장치와 해당 장치의 DeviceID (바로 우리가 관심 있는 하드웨어 ID)를 표시합니다. 그런 다음 출력 결과를 시각적으로 필터링하거나 추가 처리를 위해 파일로 저장할 수 있습니다.

3. 제3자 애플리케이션 (허용되는 경우)

허용되는 환경에서는 CPU-Z, Speccy 또는 HWiNFO 와 같은 도구를 사용하여 여러 구성 요소의 HWID를 포함한 전체 시스템 개요를 얻는 것이 일반적입니다. 그러나 많은 회사에서 이러한 옵션이 금지되어 있으므로 PowerShell이 ​​보안 정책에서 허용되는 만능 도구가 됩니다.

PowerShell에서 USB 하드웨어 ID를 가져옵니다.

PowerShell에는 플러그 앤 플레이 장치에 대한 정보를 보고 필터링하는 강력한 cmdlet이 포함되어 있습니다. HWID를 확인하는 데 가장 유용한 cmdlet은 Get-PnpDevice 이지만, 일부 레거시 스크립트에서는 이전 WMI 클래스가 여전히 사용됩니다.

Get-PnpDevice를 사용하여 하드웨어 ID 목록을 확인하세요.

시스템에서 활성화된 모든 장치의 식별자를 보려면 다음 명령을 사용할 수 있습니다.

Get-PnpDevice -PresentOnly | Select-Object -Property Name,InstanceId

이 명령은 장치의 사용자 이름과 InstanceId가 포함된 표를 반환합니다 . InstanceId는 오류, 시스템 이벤트 또는 드라이버 검색과 연결할 수 있는 하드웨어 ID 문자열(또는 매우 유사한 문자열)입니다.

예를 들어 PCI 장치 에만 초점을 맞추고 싶다면 다음과 같이 필터링할 수 있습니다.

Get-PnpDevice | Where-Object { $_.InstanceId -match '^PCI' } | Select-Object FriendlyName, InstanceId

USB 장치의 경우에도 InstanceId 문자열에 유사한 필터를 적용하여 접두사를 변경할 수 있습니다.

Get-PnpDevice | Where-Object { $_.InstanceId -like 'USB\VID_*' } | Select-Object FriendlyName, InstanceId

실제 사례: USB 드라이브 ID를 통해 문제 있는 USB 드라이브 식별하기

흔히 발생하는 상황은 다음과 같습니다. PC가 멈추고 이벤트 뷰어를 확인해 보면 "USB\VID_1F75&PID_0917\8&31abfd78&0&3"과 같은 장치 관련 오류 메시지가 나타납니다 . 장치 관리자에서 해당 ID를 검색해 보지만 정확히 어떤 장치인지 알 수 없습니다.

실제 예시: 이러한 상황에서는 PowerShell을 사용하여 정보를 상호 참조하는 것이 매우 유용합니다. 예를 들어, InstanceId가 해당 패턴으로 시작하는 PnP 장치를 찾을 수 있습니다.

Get-PnpDevice -InstanceId 'USB\VID_1F75*'

만약 아무런 결과가 나오지 않는다면 (장치가 더 이상 연결되어 있지 않은 경우에 발생할 수 있습니다), WMI를 사용하거나, 권한이 있는 경우 USBDeview 와 같은 도구를 사용하여 USB 장치 연결 기록을 확인할 수 있습니다 . 이러한 도구는 연결 날짜와 포트를 포함하여 이전에 연결되었던 모든 장치를 보여줍니다.

속성 보기: 검색 결과가 나오면 다음을 사용하여 확장할 수 있습니다.

Get-PnpDevice -InstanceId 'USB\VID_1F75*' | Get-PnpDeviceProperty

이 목록에는 장치와 관련된 모든 플러그 앤 플레이 속성이 표시됩니다 . 단, 장치가 없거나 권한 문제가 있는 경우 결과가 비어 있거나 일부만 표시될 수 있습니다. 이 정보를 CSV 파일로 내보내려면 다음과 같이 하면 됩니다.

Get-PnpDevice -InstanceId 'USB\VID_1F75*' | Get-PnpDeviceProperty | Export-Csv -Path 'DevDetails.csv' -NoTypeInformation

CSV 파일이 비어 있는 경우, 거의 대부분 해당 시점에 필터와 일치하는 장치가 없거나 cmdlet이 속성을 읽을 수 없었음을 의미합니다(권한 문제 또는 장치가 응답하지 않는 경우).

WMI로 연결된 USB 저장 장치를 확인합니다.

또 다른 일반적인 경우는 현재 연결된 USB 드라이브 또는 디스크를 알고 싶을 때입니다 . PowerShell에서 흔히 사용하는 간편한 방법은 인터페이스 유형별로 필터링하여 Win32_DiskDrive WMI 클래스를 사용하는 것입니다 .

Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq 'USB' }

더 읽기 쉽고 내보내기 편한 형태로 만들고 싶다면 PSCustomObject를 사용하여 관련 필드만 프로젝션할 수 있습니다.

Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq 'USB' } | ForEach-Object {
[PSCustomObject]@{
DeviceID = $_.DeviceID
모델 = $_.모델
Serial = (Get-WmiObject Win32_PhysicalMedia | Where-Object { $_.Tag -eq $_.DeviceID }).SerialNumber
}
}

여기서 각 사용자 지정 객체는 장치 식별자, 모델 및 물리적 일련 번호 (제조업체에서 적절하게 제공하는 경우)를 표시합니다. 이는 재고 관리 및 추적 스크립트를 위한 매우 유용한 기반이 됩니다.

PowerShell을 사용하여 USB 장치를 자동으로 모니터링하고 로그를 기록합니다.

기업 환경에서 IT 부서는 각 컴퓨터에 연결된 모든 USB 장치에 대한 중앙 집중식 로그를 원합니다 . 어떤 장치인지, 언제 연결되었는지, 어떤 컴퓨터에서 연결되었는지 등의 정보를 기록하는 것이죠. 이는 무단 장치 사용을 감지하고, 보안 사고를 조사하며, 내부 정책 준수를 보장하는 데 도움이 됩니다.

  Select-String과 고급 정규 표현식을 활용한 효율적인 로그 파싱

추가 라이선스 없이 이 작업을 유연하게 수행하는 방법은 각 USB 장치에서 관련 정보를 수집하고 REST API를 통해 중앙 서버로 전송하는 PowerShell 스크립트 를 만드는 것입니다 . 이전 WMI 예제를 기반으로 하면 구성은 다음과 같습니다.

Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq “USB” } | ForEach-Object {
[PSCustomObject]@{
DeviceID = $_.DeviceID
모델 = $_.모델
Serial = (Get-WmiObject Win32_PhysicalMedia | Where-Object { $_.Tag -eq $_.DeviceID }).SerialNumber
}
} | ConvertTo-Json | Invoke-RestMethod -Uri «http://servidorcentral/api/usblog» -Method Post

이 코드 블록은 USB 인터페이스를 가진 모든 디스크를 수집하고, 주요 데이터가 포함된 객체를 준비한 다음, 이를 JSON 형식으로 직렬화합니다 . 그런 다음, `Invoke-RestMethod`를 사용하여 해당 JSON 데이터를 로깅 서버의 HTTP 엔드포인트로 전송합니다. 이후에는 사용자의 상상력(및 보안 요구 사항)에 따라 컴퓨터 이름, 세션 사용자, 정확한 날짜 및 시간 등을 추가할 수 있습니다.

지속적인 모니터링을 위해 스크립트는 일반적으로 Windows 작업 스케줄러 와 결합하여 시스템 시작 또는 로그인 시 실행되도록 하거나, USB 연결과 관련된 시스템 이벤트를 모니터링하고 실시간 전송을 트리거하는 서비스를 생성할 수 있습니다.

USB 데이터 로깅을 위한 간단한 REST API를 만드세요

PowerShell 스크립트에서 전송된 데이터를 수신하려면 JSON 형식의 POST 요청을 수락하도록 구성된 간단한 웹 서버가 필요합니다 . 이를 위한 가장 빠른 방법은 Flask를 사용하는 Python 입니다 . Flask를 사용하면 몇 줄의 코드만으로 엔드포인트를 설정할 수 있습니다.

기본적인 아이디어는 다음과 같습니다.

플라스크 가져오기 플라스크, 요청, jsonify에서
앱 = Flask (__ name__)
@app.route('/api/usblog', methods=['POST'])
def log_usb_data():
데이터 = request.get_json()
데이터가 아닌 경우:
jsonify({"error": "데이터가 전송되지 않았습니다"}), 400을 반환합니다.
with open("usb_log.txt", "a") as log_file:
log_file.write(f»{data}\n»)
jsonify({"message": "데이터가 성공적으로 수신되었습니다"}), 200을 반환합니다.
__name__ == '__main__'인 경우 :
app.run(호스트='0.0.0.0′, 포트=5000)

이렇게 하면 PowerShell 스크립트에서 호출할 때마다 USB 장치 데이터가 usb_log.txt 파일에 한 줄씩 추가 됩니다 . 실제 배포 환경에서는 이 데이터를 데이터베이스로 전송하고, 인증을 추가하고, HTTPS로 트래픽을 암호화하는 등의 작업을 해야 하지만, 시작 단계에서는 이 정도면 충분합니다.

요구 사항: 시스템을 가동하기 위한 기본적인 단계는 다음과 같습니다.

  • Flask를 설치하려면 다음을 사용하세요. 핍 설치 플라스크 파이썬 서버에서.
  • 코드를 저장하세요 서버.py 그리고 다음과 같이 시작하세요 파이썬 서버.py.
  • PowerShell 스크립트에서 URL을 다음과 같이 구성하십시오. http://IP_DEL_SERVIDOR:5000/api/usblog.

이후 해당 서버에 접근할 권한이 있는 모든 팀은 USB 장치 목록을 주기적으로 또는 요청 시 전송할 수 있습니다.

Windows 시작 시 USB 스크립트가 실행되도록 예약

이 시스템 전체가 실용적이려면 PowerShell 스크립트가 누군가가 실행해야 한다는 것을 기억할 필요 없이 자동으로 실행되는 것이 중요합니다 . Windows는 일반적으로 작업 스케줄러와 시작 프로그램 폴더라는 두 가지 방법을 제공합니다.

작업 스케줄러 사용

빠른 설정: 작업 스케줄러를 사용하면 다양한 시스템 이벤트에 따라 실행되도록 구성할 수 있습니다.

  • 작업 스케줄러를 열고 선택하세요 “작업 생성”.
  • "일반" 탭에서 다음과 같은 이름을 지정하세요. USB 추적 그리고 “최고 권한으로 실행”을 선택하세요.
  • "Triggers"에서 그는 다음과 같은 내용을 추가합니다. "시스템 시작 시" 또는 "로그인 시"관심사에 따라 다릅니다.
  • "작업"에서 "프로그램 시작"을 선택하고 다음을 가리킵니다. powershell.exe 매개변수 유형 포함 -NoProfile -ExecutionPolicy Bypass -File «C:\path\script.ps1».
  • 작업을 저장하고 활성화되었는지 확인하십시오.

이렇게 하면 컴퓨터가 시작될 때마다 모니터링이 시작 되고 스크립트가 적절한 권한이 있는 경우 필요한 모든 정보에 액세스할 수 있습니다.

.bat 파일을 사용하여 홈 폴더 활용하기

또 다른 간단한 방법은 PowerShell을 호출하는 .bat 파일을 만들어 사용자의 홈 폴더에 배치하는 것 입니다. 다만 이 방법은 세부적인 제어 기능은 다소 떨어집니다.

powershell.exe -NoProfile -ExecutionPolicy Bypass -File «C:\path\del\script.ps1»

예를 들어 rastro_usb.bat 이라는 이름으로 저장한 다음, 해당 위치에 복사합니다.

%APPDATA%\Microsoft\Windows\시작 메뉴\프로그램\시작프로그램

사용자가 로그인하는 즉시 Windows는 해당 .bat 파일을 실행하고, 그와 함께 PowerShell 스크립트도 실행합니다 . 이는 소규모 환경이나 작업 스케줄러를 사용하고 싶지 않을 때 유용한 해결책입니다.

PowerShell을 사용하여 원격 컴퓨터의 USB 장치 추적

많은 기업 네트워크에서 문제는 단순히 자신의 컴퓨터에 어떤 USB 장치가 연결되어 있는지 파악하는 것뿐만 아니라 여러 컴퓨터에 연결된 모든 장치를 종합적으로 파악하는 것 입니다. 타사 에이전트를 사용할 수 없는 경우 PowerShell 원격 접속과 WMI를 결합하는 것이 여전히 매우 효과적인 해결책입니다.

여러 컴퓨터에 연결된 USB 장치 목록을 표시하는 스크립트의 일반적인 예는 다음과 같습니다.

$컴퓨터 = «COMPUTER1″,»COMPUTER2″,»COMPUTER3»
$namespace = "root\CIMV2"
Get-WmiObject -Class Win32_USBControllerDevice -ComputerName $computer -Namespace $namespace |
ForEach-Object { [wmi]($_.Dependent) } |
정렬 기준: 제조업체, 설명, 장치 ID |
형식 테이블 - 제조업체 설명, 서비스, 장치 ID별 그룹화 |
Out-File -Append -FilePath C:\USB\usblist.txt

  Windows 11에서 스마트 충전을 끄는 방법 및 수행 시기

이 아이디어는 각 원격 컴퓨터에서 USB 컨트롤러-장치 관계를 쿼리하고, 종속 속성을 실제 WMI 인스턴스로 확인한 다음, 정렬된 정보를 텍스트 파일에 쓰는 것 입니다 . 파일이 비어 있으면 권한, 원격 접근성, 방화벽, 그리고 물론 스크립트 구문(공백 정렬 오류나 따옴표 닫힘 오류는 흔한 원인입니다)을 확인해야 합니다.

이러한 유형의 스크립트를 잘 구성하면 외부 소프트웨어에 의존하지 않고도 제조업체 및 설명별로 그룹화하여 컴퓨터별 USB 장치 목록을 통합적으로 관리할 수 있습니다.

USB ID를 사용하여 드라이버를 찾고 관리합니다.

보안 측면 외에도 하드웨어 ID를 알고 처리하는 것은 적합한 드라이버를 찾는 데 매우 중요합니다 . 특히 Windows에서 일반 드라이버를 찾지 못하거나 시스템 업데이트 후 장치가 작동하지 않을 때 더욱 그렇습니다.

계층적 패턴: 이러한 유형의 ID는 특히 PCI/PCIe 장치에서 계층적 패턴을 따르는 경우가 많습니다.

  • 벤_XXXX 칩 제조업체를 식별합니다.
  • DEV_XXXX 기기의 구체적인 모델명을 명시해 주십시오.
  • 서브시스템_XXXXXXXXX 어셈블러 변형, 지역 등에 대한 세부 정보입니다.

USB의 경우, USB\VID_XXXX&PID_YYYY 와 같은 문자열과 때로는 일련번호를 찾을 수 있습니다 . Windows 업데이트 후 장치가 작동을 멈춘 경우, 정확한 HWID를 복사하여 제조업체의 검색 엔진이나 전문 데이터베이스 에 입력하면 오래된 하드웨어라도 올바른 드라이버를 찾는 데 매우 효과적입니다.

Snappy Driver Installer Origin 이나 상용 드라이버 관리 솔루션 과 같은 도구는 종종 이러한 식별자를 사용하여 장치와 드라이버를 정확하게 연결 합니다 . 또한 내장된 HWID를 사용하여 수백 개의 .inf 파일을 검색할 수 있는 로컬 검색 엔진도 있는데, 이는 다운로드한 드라이버 라이브러리가 있지만 어떤 드라이버가 어떤 장치에 해당하는지 기억나지 않을 때 매우 유용합니다.

정리정돈을 잘하는 사람들에게 유용한 팁은 VEN, DEV, SUBSYS, 설명, 드라이버 경로 열을 가진 스프레드시트를 관리하는 것 입니다 . Excel의 MID() 함수와 같은 기능을 사용하면 HWID 문자열에서 이러한 필드를 자동으로 추출할 수 있으므로, 문서화가 제대로 되어 있지 않은 하드웨어를 다룰 때 시행착오를 거치는 시간을 크게 줄일 수 있습니다.

USB ID 작업을 위한 보조 도구

여기서는 PowerShell과 Windows 내장 유틸리티를 사용하여 할 수 있는 작업에 초점을 맞추지만 , 특히 설치가 가능한 환경이라면 USB 장치 작업을 더 쉽게 해주는 몇 가지 보조 도구에 대해서도 알아두면 유용합니다.

마이크로소프트의 USB 장치 뷰어(USBView)

Microsoft는 Windows 드라이버 키트에 포함된 USB 장치 뷰어(USBView) 유틸리티를 무료로 제공합니다 . 이 유틸리티는 시스템에 있는 모든 USB 컨트롤러 및 장치를 트리 보기로 표시하고 idVendor, idProduct 및 기타 장치 설명자 필드를 명확하게 보여줍니다.

단계: 기본적인 단계는 다음과 같습니다.

  • 해당 Windows 드라이버 키트 패키지를 설치하고 찾으십시오. USBView.exe (일반적으로 디버거 경로, 예를 들어 Debuggers\x64에 있습니다.)
  • 프로그램을 실행하고 왼쪽 트리에서 USB 장치를 선택하세요.
  • 오른쪽 패널의 필드를 확인하세요 idVendor 및 idProduct나머지 설명자와 함께.

예를 들어 VISA 드라이버 개발 마법사를 사용하여 드라이버를 개발하는 경우 , 이 데이터는 드라이버가 VID 및 PID를 기반으로 어떤 장치를 처리해야 하는지 알려주는 데 필수적입니다.

온라인 USB ID 데이터베이스

기기를 직접 가지고 있지 않지만 기기 이름이나 식별자의 일부를 알고 있는 경우, 공개 USB ID 데이터베이스를 활용할 수 있습니다. 이러한 사이트에서는 모델, 브랜드 또는 VID/PID의 일부로 검색할 수 있으며, 해당 기기에 등록된 공식 벤더 ID(Vendor ID)와 제품 ID(Product ID) 값을 확인할 수 있습니다.

이 기능은 HWID가 부분적으로만 제공되거나 Windows에서 일반적인 설명만 제공하는 경우 , 호환되는 드라이버를 검색하거나 ID 기반 장치 차단 정책을 적용하기 전에 해당 VID/PID를 확인해야 할 때 특히 유용합니다 .

궁극적으로 USB ID 및 기타 하드웨어 식별자를 숙달하면 일종의 "시스템 탐정"이 될 수 있습니다. 어떤 장치가 시스템 충돌을 일으켰는지, 어떤 USB 드라이브가 어떤 컴퓨터에 언제 연결되었는지, 또는 업데이트 후 드라이버가 로드되지 않는 이유는 무엇인지 등을 추적할 수 있습니다 . PowerShell을 핵심 도구로 사용하고 장치 관리자, WMI, 특수 유틸리티, 그리고 필요한 경우 소규모 Flask 서버를 함께 사용하면 번거로운 타사 솔루션이나 신뢰할 수 없는 가정에 의존하지 않고도 환경의 USB 생태계를 모니터링하고 제어하는 ​​데 필요한 모든 것을 갖추게 됩니다.