Windows를 재설치하거나 클린 설치한 후에는 컴퓨터에 설치된 각종 장치의 최신 드라이버를 새로 설치해야 합니다. 보통은 필요한 드라이버를 일일이 검색해서 다운로드하고 설치해야 하는 번거로움이 있죠. 하지만 Windows 10과 8.1에서는 훨씬 간편한 방법이 있습니다. Windows를 재설치하기 전에 설치된 모든 드라이버를 백업(내보내기)해 두면, 클린 설치 후 백업 파일만으로 모든 드라이버를 빠르게 복원할 수 있습니다.
이 글에서는 Windows에 내장된 도구(DISM, pnputil.exe, PowerShell의 Export-WindowsDriver cmdlet)만 사용하여 설치된 드라이버를 백업하고 복원하는 방법을 소개합니다.
목차
- PowerShell: Export-WindowsDriver cmdlet으로 드라이버 백업
- DISM으로 Windows 10 드라이버 백업
- PNPUtil로 설치된 장치 드라이버 내보내기
- Windows 10에서 장치 드라이버 복원하는 방법
PowerShell: Export-WindowsDriver cmdlet으로 드라이버 백업
Windows 10 및 Windows Server 2019/2016에서는 Export-WindowsDriver PowerShell cmdlet을 사용하여 장치에 설치된 모든 서드파티(비 Microsoft) 드라이버를 드라이버 저장소(Driver Store)에서 바로 내보낼 수 있습니다. 이 cmdlet을 활용하면 Windows 재설치 과정을 크게 간소화하고 시간을 절약할 수 있습니다. 이전에는 DoubleDriver, DriverMax 같은 서드파티 프로그램을 사용해야만 드라이버 백업이 가능했습니다.
현재 실행 중인 Windows 10(온라인 이미지)에서 설치된 모든 서드파티 드라이버를 내보내려면, PowerShell을 관리자 권한으로 실행한 후 다음 명령어를 입력합니다.
Export-WindowsDriver –Online -Destination c:\export-drivers
참고: 드라이버 파일은 c:\export-drivers 디렉터리에 저장되며, 이 폴더는 미리 생성해 두어야 합니다.
마운트된 오프라인 Windows 이미지에서 드라이버를 추출해야 하는 경우에는 아래와 같이 명령어를 사용합니다.
Export-WindowsDriver -Path c:\win_image -Destination c:\export-drivers
cmdlet 실행이 완료되면 화면에 내보낸 모든 서드파티 드라이버에 대한 정보가 표시됩니다. C:\Windows\System32\DriverStore\FileRepository\ 디렉터리의 모든 Windows 드라이버 백업본을 받게 되며, 각 드라이버와 관련 파일은 드라이버의 INF 파일 이름으로 된 별도의 디렉터리에 저장됩니다.
각 디렉터리에는 드라이버 설치에 필요한 모든 파일(*.inf뿐만 아니라 *.sys, *.dll, *.exe 등 관련된 모든 파일)이 포함되어 있습니다. Export-WindowsDriver cmdlet은 드라이버 INF 파일의 CopyFiles 섹션에 명시된 대로 설치에 필요한 파일 목록을 구성합니다.
저장된 드라이버 목록을 클래스, 제조사, 버전과 함께 보기 좋게 확인하려면 다음 두 개의 명령어를 사용해 드라이버를 내보냅니다.
$BackupDrv = Export-WindowsDriver -Online -Destination c:\export-drivers
그다음 결과를 표 형태로 출력합니다.
$BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Sort-Object ClassName
결과 표에서 드라이버 클래스, 제조사, 버전, 날짜를 한눈에 확인할 수 있습니다.
내보낸 드라이버 정보를 CSV 파일로 저장할 수도 있습니다.
$BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Export-Csv c:\ps\backup_drivers_list.txt
ClassName 속성을 이용하면 특정 장치 클래스의 드라이버만 목록으로 확인할 수 있습니다. 예를 들어 프린터 드라이버만 조회하려면 다음 명령어를 실행합니다.
$BackupDrv | where { $_.classname -like "printer" }
특정 제조사의 드라이버 목록을 보려면 아래 명령어를 사용합니다.
$BackupDrv | Where{ $_.ProviderName -Match "NVIDIA"}
드라이버 디렉터리 이름을 컴퓨터 모델명으로 지정하고, 모든 컴퓨터 모델의 드라이버를 보관하는 공유 네트워크 폴더에 백업을 저장할 수도 있습니다. 이 경우 다음 명령어를 사용합니다.
Export-WindowsDriver -Destination "\\mun-fs01\drivers\desktop\$((Get-WmiObject -Class win32_computersystem).Model)" -Online
실행 결과, 컴퓨터 모델명으로 디렉터리가 생성되고 모든 드라이버가 그 안에 내보내집니다.
DISM으로 Windows 10 드라이버 백업
DISM.exe를 사용해서도 드라이버를 백업하고 Windows 이미지에 가져올 수 있습니다. 모든 드라이버를 C:\export-drivers 디렉터리로 내보내려면, 관리자 권한 명령 프롬프트를 열고 다음 명령어를 실행합니다.
dism /online /export-driver /destination:C:\export-drivers
Exporting 1 of 24 – oem0.inf: The driver package successfully exported.
예시 화면에서 볼 수 있듯이, DISM 도구가 24개의 드라이버를 성공적으로 지정된 디렉터리로 내보냈습니다.
PNPUtil로 설치된 장치 드라이버 내보내기
Windows에 내장된 PNPUtil.exe 도구로도 컴퓨터의 장치 드라이버를 관리할 수 있습니다. 이 도구는 주로 Windows에 드라이버를 추가하거나 제거할 때 사용되며(디스크 공간 절약을 위해 드라이버 저장소에서 오래되고 사용하지 않는 드라이버를 제거하는 데도 활용됩니다), Windows 드라이버 저장소에서 드라이버를 내보내는 용도로도 사용할 수 있습니다.
관리자 권한 명령 프롬프트를 열고 다음 명령어를 실행합니다.
pnputil.exe /export-driver * c:\export-drivers
내보낸 디렉터리의 드라이버는 PowerShell, PNPUtil, DISM(Windows 이미지에 드라이버 통합)을 사용해 수동으로 다른 장치에 배포하거나, MDT, SCCM 등을 통해 자동으로 배포할 수 있습니다.
pnputil로는 특정 장치 드라이버만 골라서 내보낼 수도 있습니다. 이 경우 해당 드라이버의 INF 파일 이름을 먼저 알아야 합니다.
설치된 드라이버의 전체 목록을 확인합니다.
pnputil.exe /enum-drivers
PowerShell을 사용해 드라이버 목록을 필터링할 수도 있습니다. 예를 들어 Realtek NIC(네트워크 카드) 드라이버만 내보내야 한다면 다음과 같이 실행합니다.
Get-WindowsDriver -Online | where { ($_.ProviderName -like "Realtek") –and ($_.ClassName -like "Net")}
INF 파일 이름(oem5.inf)을 복사한 후, 다음 명령어로 드라이버 파일을 내보냅니다.
mkdir c:\drivers\realtek
pnputil.exe /export-driver oem5.inf c:\drivers\realtek
그 결과, 필요한 모든 파일이 포함된 NIC INF 파일(rt640x64.inf)을 내보내게 됩니다.
Windows 10에서 장치 드라이버 복원하는 방법
백업해 둔 장치 드라이버 디렉터리를 활용하면 클린 설치한 Windows(또는 재설치 후 Windows)에 드라이버를 설치할 수 있습니다.
특정 드라이버를 설치하려면 INF 파일을 마우스 오른쪽 버튼으로 클릭하고 '설치(Install)' 메뉴를 선택합니다.
또는 장치 관리자를 통해 특정 장치의 드라이버를 업데이트할 수도 있습니다. 장치 관리자 콘솔(devmgmt.msc)을 열고, 드라이버를 교체할 장치를 선택한 후 '드라이버 업데이트' → '내 컴퓨터에서 드라이버 찾아보기'를 클릭합니다. 그다음 드라이버 백업 디렉터리의 경로를 지정합니다. 모든 하위 폴더에서 INF 파일을 자동으로 검색하려면 '하위 폴더 포함' 옵션을 선택하세요.
하지만 지정된 디렉터리의 모든 드라이버를 한 번에 설치(가져오기)하는 더 간편한 방법이 있습니다. 바로 다음 PowerShell 스크립트를 사용하는 것입니다.
$drvinffiles = Get-ChildItem -Path "C:\export-drivers\" -Filter "*.inf" -Recurse -File
foreach($drvinffile in $drvinffiles){
$drvinffile.FullName
pnputil.exe -i -a "$drvinffile.FullName"
}
이 PowerShell 스크립트는 지정된 디렉터리의 모든 폴더를 순차적으로 검색하여 모든 INF 파일을 찾은 뒤, PNPUtil 도구를 사용해 드라이버 저장소에 드라이버를 설치합니다.
Windows 10의 pnputil에서는 다음과 같은 한 줄 명령어로 지정된 폴더(하위 폴더 포함)의 모든 드라이버를 설치할 수도 있습니다.
pnputil.exe /add-driver C:\export-drivers\*.inf /subdirs /install
또한 DISM 도구의 Add-Driver 매개변수를 사용하면 백업 디렉터리의 모든 드라이버를 오프라인 Windows 이미지로 가져올 수 있습니다(아래 예시에서는 서명되지 않은 드라이버의 설치도 허용합니다).
DISM /image:c:\win_image /Add-Driver /Driver:C:\export-drivers /Recurse /ForceUnsigned
참고로 DISM을 이용한 드라이버 통합(slipstream)은 오프라인 Windows 이미지에만 가능합니다(예: Windows 7 설치 미디어에 USB 3.0 드라이버 추가).
Windows를 재설치하기 전에 반드시 설치된 드라이버를 백업해 두시기 바랍니다. 사전에 백업해 두면 재설치 후 드라이버를 찾아 헤매는 시간을 크게 줄일 수 있습니다.