소프트웨어 devcon.exe, pnputil.exe 드라이버 설치
2022.12.08 17:35
안녕하세요. 제가 가상키보드 드라이버를 배포할 일이 있어 드라이버 파일들과 함께 배치파일을 구성하여 원클릭으로 설치하게 만들려고 하는데요.
해당 문구를 발생시키지 않고 드라이버를 설치할 수 있는 방법이 있을까요? 사용될 스크립트는 아래와 같습니다
devcon.exe install abcdefg.inf root\abcdefg
알아본 바로는 -runhidden 을
devcon.exe install abcdefg.inf root\abcdefg -runhidden
이런식으로 붙이면 된다고 보긴 했는데 붙이나 안붙이나 동일하여 여쭤봅니다!
댓글 [11]
-
zerojiddu 2022.12.08 18:33 -
M1nar1 2022.12.09 00:17
많은 도움이 되었습니다. 혹시 어떤 방법으로 드라이버를 삭제할 수 있는지요?
pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
pnputil /remove-device /deviceid "USB\Class_03"
pnputil로 두 방법 다 .inf또는 경로를 긁어와야 하는거 같은데 스크립트에서 구현하기가 힘드네요
pnputil로 "driver.inf" 사용해 간편하게 삭제하는 방법이 없을까요? -
zerojiddu 2022.12.09 10:31 현재 작동중인 윈도우에서 마소꺼 제외한
다른 회사 드라이버의 원래 .inf 파일 이름 말고
oem#.inf (Published Name) 이름을 확인해서,
dism /online /get-drivers /format:table
이렇게 치니 정상적으로 제거가 되네요.
pnputil /delete-driver oem18.inf /force
-
M1nar1 2022.12.09 11:35
oem번호.inf 이 부분이 PC마다 번호가 달라서 삭제에 어려움을 겪고 있습니다.. original file name으로 처음부터 삭제가 가능하다면 오히려 쉬울텐데,, oem.inf말고는 방법이 없는건가요..? -
M1nar1 2022.12.09 11:45
+ 삭제에 어려움을 왜 겪는지 글을 안써서 덧붙입니다!
스크립트로 구현을 해야해서 오리지널 파일 이름으로 차라리 삭제하면 편한데 oem#.inf는 PC마다 #의 넘버가 달라 다른 방법이 없는건가 해서 여쭤본겁니다..! -
zerojiddu 2022.12.09 12:58 oem#.inf 이름말고 다른방식으로,
이 한줄로 얼굴인식 드라이버 삭제해보니 정상적으로 돼네요.
foreach ($dev in (Get-PnpDevice | Where-Object{$_.Service -eq "WUDFRd"})) {pnputil /remove-device $dev.InstanceId}
님의 경우는
파워쉘에서
get-pnpDevice 로 전체 드라이버 정보를 보고
get-pnpDevice | ?{$_.Class -eq 'keyboard'} | select *
치면 원하는 드라이버 속성이 뜨요.
Service 부분 이름이 .inf 파일 이름과 일치할거예요.
FriendlyName, Name 부분으로 해도 됩니다.
foreach ($dev in (Get-PnpDevice | Where-Object{$_.Service -eq "i8042prt"})) {pnputil /remove-device $dev.InstanceId}
그리고 위 제 댓글에서
pnputil /delete-driver oem18.inf /force
만 적었는데,
pnputil /delete-driver oem18.inf /uninstall /force /reboot
이 제거에 맞는거 같습니다.
-
M1nar1 2022.12.09 17:37
정보 알려주셔서 감사합니다..
금방 테스트 해본 바로는
PS C:\Windows\system32> foreach ($dev in (Get-PnpDevice | Where-Object{$_.Service -eq "mshidumdf"})) {pnputil /remove-device $dev.InstanceId}Microsoft PnP 유틸리티
장치를 제거하지 못했습니다: ROOT\HIDCLASS\0000
해당 장치의 사용을 중지할 수 없습니다.
Microsoft PnP 유틸리티
장치를 제거하지 못했습니다: ROOT\HIDCLASS\0001
해당 장치의 사용을 중지할 수 없습니다.
라고 파워쉘에서 출력을 하는데 강제적인 방법이 없을까요..?
++ devcon으로는
call devcon.exe remove "HID\ttcvcontrkb"call devcon.exe remove "root\ttcvcontrkb"
이 명령어 두개로 가능하더군요 -
zerojiddu 2022.12.09 18:37 방금 이명령어로 제 컴에선 삭제되는 걸 확인했습니다.
레지키도 삭제되고, 확인되던 정보가 전혀 나오지 않는걸 보니 정상 제거됐어요.
Invoke-CimMethod -Query 'select * from Win32_SystemDriver where name like "mshidumdf"' -MethodName "delete"
삭제전 제 컴에선,
Get-PnpDevice | Where-Object{$_.Service -eq "mshidumdf" 이걸로는 아무것도 뜨지가 않고,
Get-CimInstance Win32_SystemDriver -Filter "name='mshidumdf'" 이걸로 하니 정보가 뜨네요.
get-service mshidumdf 치니, 시작유형이 수동모드로 자체적으로는 시작을 못하는 윈도우 서비스로 나와요.
레지키도 있구요.
get-service mshidumdf | set-service -startupType disabled 이걸치면 아예 시작못하게 설정도 되구요.
-
M1nar1 2022.12.12 23:58
제가 이 스크립트를 사용하여 오늘 테스트를 해봤습니다. 근데 이런 오류가 발생하더군요
아무리 구글링을 해봐도 관련된 내용이 찾기 힘들어 다시 문의드립니다 ㅠㅠ -
zerojiddu 2022.12.13 07:32 Get-AuthenticodeSignature 는 .cat(드라이버 보안 인증서가 있는 catalog 파일)
을 지정해야되는데,
ttcvcontrkb.inf 드라이버 설치파일로 잘못 지정했네요.
제컴에서 한줄 한줄 쳐봤어요. 아무 에러없고, 아무 확인창 없이
드라이버가 조용히 순식간에 설치됐어요.
-
M1nar1 2022.12.13 14:03
감사합니다! 드라이버 설치되고 devcon으로 장치설치까지 해주니 장치관리자에 문제없이 HID장치로 뜨네요
근데 파워쉘에선 잘 되는데 cmd에서 powershell 붙여주고 실행하니 이와같은 문제가 발생하네요..
제가 파워쉘 스크립트가 아닌 배치파일 스크립트로 작성중이라 오류 잡기가 힘드네요 ㅠㅠ
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
13502 | 기 타| 반유동채비에서 수중찌 밑에 핀도래 달고 목줄 바늘 달면 ... [4] | brucex | 225 | 11-03 |
13501 | 윈 도 우| 설치 안해보고 윈도우 키 종류를 알 수 있나요? [7] | 현민지 | 409 | 11-03 |
13500 | 윈 도 우| {요청}드려 봅니다. 히**잌 님 께...(sysinfo) [4] | 바람언덕2 | 273 | 11-03 |
13499 | 윈 도 우| 포맷을 언제 했는지 알수있는 방법있나요? [3] | afw | 437 | 11-03 |
13498 | 윈 도 우| 윈도우 업데이트 에러 고칠 수 있나요? [9] | 밤이슬216 | 318 | 11-03 |
13497 | 소프트웨어| PE에서 UltraISO 가상드라이브를 찾을 수 없습니다? [5] | 다줄꺼야 | 295 | 11-04 |
13496 | 윈 도 우| 윈10에서 엑셀 알트탭 문제 [7] | 『ⓖⓤⓝ』 | 462 | 11-04 |
13495 | 소프트웨어| 유튜브 광고차단 잘 되시나요? [10] | 레드2 | 891 | 11-04 |
13494 | 하드웨어| 화려한 RGB 튜닝PC 좀 구성하려는데요. [2] | 최강루키 | 232 | 11-04 |
13493 | 하드웨어| 이것을 어떻게 하나로 합칠수 있는 방법은 없는지요 [6] | 복구시디 | 415 | 11-04 |
13492 | 윈 도 우| 벤토이 특정보드 화면깨짐증상 [4] | 포토엔유 | 511 | 11-04 |
13491 | 윈 도 우| 익스플로러 11 [4] | Icarus | 433 | 11-04 |
13490 | 윈 도 우| 슬립본체 [3] | gkgk77 | 382 | 11-04 |
13489 | 윈 도 우| 시작-사용한 프로그램 갯수가 1개만 나와요 [5] | 좀머씨 | 193 | 11-04 |
13488 | 윈 도 우| 바탕화면 내PC 우클릭 관리 작동 안돼요 [18] | elios | 562 | 11-04 |
13487 | 윈 도 우| efi 부트로더 오류 [4] | 진라면 | 348 | 11-04 |
13486 | 윈 도 우| win10xpe 오류문의 [1] | 나우카우 | 224 | 11-04 |
13485 | 소프트웨어| Waterfox Current 2020.10 한글언어 설정 방법은?. [6] | 조랑말 | 263 | 11-04 |
13484 | 윈 도 우| [급한질문] 윈도우10에서 특정 ssd 인식불가 [4] | MSTSC | 437 | 11-04 |
13483 | 하드웨어| 램을 재장착해야 부팅이 됩니다 [8] | 벌꿀바나나 | 546 | 11-05 |
명령어 옵션문제가 아니라,
드라이버 설치파일 인증서를 윈도우의
LocalMachine\TrustedPublisher certificate store
에 등록하는 스크립트를 미리 넣어두고 설치하면 될거 같은데요.
위 스샷도 인증서 등록화면이구요.
파워쉘에서,
$signature = Get-AuthenticodeSignature driver.cat
$store = Get-Item -Path Cert:\LocalMachine\TrustedPublisher
$store.Open("ReadWrite")
$store.Add($signature.SignerCertificate)
$store.Close()
PnPutil.exe /add-driver driver.inf /install