Найти в Дзене
Компьютер Пошагово

Обновление драйверов через командную строку: Полное руководство для продвинутых пользователей

В мире компьютерных технологий драйверы играют роль переводчиков между операционной системой и аппаратным обеспечением. Они позволяют вашему ПК правильно взаимодействовать с видеокартой, звуковой картой, сетевым адаптером и множеством других устройств. Хотя большинство пользователей предпочитают обновлять драйверы через графический интерфейс операционной системы или специальные утилиты производителей, существует мощный и гибкий способ сделать это через командную строку. Этот метод особенно полезен для системных администраторов, энтузиастов, которые хотят автоматизировать процессы, или в случаях, когда графический интерфейс недоступен. В этой статье мы подробно рассмотрим, как обновить драйверы через командную строку, используя различные инструменты и подходы. В Windows существует несколько основных инструментов, которые позволяют управлять драйверами через командную строку: PNPUTIL является наиболее доступным и часто используемым инструментом для управления драйверами через командную
Оглавление

В мире компьютерных технологий драйверы играют роль переводчиков между операционной системой и аппаратным обеспечением. Они позволяют вашему ПК правильно взаимодействовать с видеокартой, звуковой картой, сетевым адаптером и множеством других устройств. Хотя большинство пользователей предпочитают обновлять драйверы через графический интерфейс операционной системы или специальные утилиты производителей, существует мощный и гибкий способ сделать это через командную строку. Этот метод особенно полезен для системных администраторов, энтузиастов, которые хотят автоматизировать процессы, или в случаях, когда графический интерфейс недоступен.

В этой статье мы подробно рассмотрим, как обновить драйверы через командную строку, используя различные инструменты и подходы.

Обновление драйверов через командную строку: Полное руководство для продвинутых пользователей
Обновление драйверов через командную строку: Полное руководство для продвинутых пользователей

Почему стоит обновлять драйверы через командную строку?

  • Автоматизация: Возможность скриптовать процесс обновления драйверов позволяет автоматизировать задачи на множестве компьютеров, экономя время и усилия.
  • Удаленное управление: Командная строка идеально подходит для удаленного администрирования серверов и рабочих станций.
  • Точный контроль: Вы можете точно указать, какие драйверы обновлять и как это делать, избегая нежелательных изменений.
  • Диагностика: В некоторых случаях, ошибки при обновлении драйверов через графический интерфейс могут быть более информативными при анализе через командную строку.
  • Работа в ограниченных средах: Если графический интерфейс Windows не загружается, командная строка может стать единственным способом восстановить работоспособность системы.

Основные инструменты для обновления драйверов через командную строку

В Windows существует несколько основных инструментов, которые позволяют управлять драйверами через командную строку:

  1. PNPUTIL (Plug and Play Utilities): Это мощный инструмент, который позволяет управлять драйверами устройств, установленными в системе. Он может добавлять, удалять и перечислять драйверы.
  2. DEVCON (Device Console): Это утилита командной строки, которая является частью пакета Windows Driver Kit (WDK). Она предоставляет более широкий спектр возможностей для управления устройствами и их драйверами, чем PNPUTIL.
  3. PowerShell: Современная оболочка командной строки и язык сценариев, который предлагает мощные cmdlets для управления системой, включая работу с драйверами.

Обновление драйверов с помощью PNPUTIL

PNPUTIL является наиболее доступным и часто используемым инструментом для управления драйверами через командную строку в Windows.

1. Добавление нового драйвера:

Прежде чем обновлять драйвер, вам нужно добавить его в хранилище драйверов Windows. Для этого используется команда pnputil /add-driver.

pnputil /add-driver <путь_к_файлу_inf> /install

  • <путь_к_файлу_inf>: Укажите полный путь к файлу .inf драйвера, который вы хотите установить.
  • /install: Этот параметр автоматически установит драйвер для всех совместимых устройств.

Пример:

pnputil /add-driver C:\Drivers\MyVideoCard\nv_disp.inf /install

2. Перечисление установленных драйверов:

Чтобы узнать, какие драйверы установлены в системе, используйте команду pnputil /enum-drivers.

pnputil /enum-drivers

Эта команда выведет список всех драйверов, включая их издателя, дату, версию и путь к файлу .inf.

3. Удаление драйвера:

Если вам нужно удалить драйвер, вы можете использовать команду pnputil /delete-driver. Вам потребуется указать полный путь к файлу .inf драйвера, который вы хотите удалить.

pnputil /delete-driver <путь_к_файлу_inf> /uninstall /force

  • <путь_к_файлу_inf>: Полный путь к файлу .inf драйвера.
  • /uninstall: Удаляет драйвер из хранилища.
  • /force: Принудительно удаляет драйвер, даже если он используется. Будьте осторожны с этим параметром.

4. Обновление драйвера (косвенно):

PNPUTIL не имеет прямой команды для "обновления" драйвера в том смысле, как это делает графический интерфейс. Вместо этого, вы удаляете старый драйвер и устанавливаете новый.

Шаги для обновления драйвера с помощью PNPUTIL:

  1. Найдите файл .inf нового драйвера. Обычно он находится в папке с распакованными драйверами от производителя.
  2. Удалите старый драйвер (если необходимо). Используйте pnputil /delete-driver с соответствующими параметрами. Это может быть полезно, если вы хотите полностью очистить систему от предыдущей версии. Однако, в большинстве случаев, простое добавление нового драйвера с параметром /install приведет к его обновлению, если новый драйвер имеет более высокую версию или является более подходящим.

    3.
    Добавьте и установите новый драйвер:

```bash
pnputil /add-driver <путь_к_файлу_inf_нового_драйвера> /install
```

Система автоматически определит, является ли новый драйвер более подходящим для устройства, и установит его. Если устройство уже использует более новую или идентичную версию, драйвер может не быть обновлен.

Обновление драйверов с помощью DEVCON

DEVCON - это более мощный инструмент, который предоставляет детальный контроль над устройствами и драйверами. Он не входит в стандартную поставку Windows и требует загрузки из Windows Driver Kit (WDK) или Windows SDK.

1. Установка DEVCON:

  • Загрузите и установите Windows Driver Kit (WDK) или Windows SDK.
  • DEVCON будет находиться в папке C:\Program Files (x86)\Windows Kits\10\Tools\x64 (для 64-битной версии) или аналогичной.
  • Скопируйте devcon.exe в папку, которая находится в переменной среды PATH (например, C:\Windows\System32), или используйте полный путь к исполняемому файлу.

2. Перечисление устройств:

Прежде чем обновлять драйвер, вам нужно идентифицировать устройство.

devcon find *
devcon findall *

  • devcon find *: Перечисляет все устройства, которые в данный момент присутствуют в системе.
  • devcon findall *: Перечисляет все устройства, включая те, которые были когда-то подключены, но сейчас отсутствуют.

Вы можете использовать фильтры для поиска конкретных устройств:

devcon find PCI\*
devcon find @PCI\VEN_10DE&DEV_1C8C* (Пример для конкретной видеокарты NVIDIA)

3. Обновление драйвера для конкретного устройства:

DEVCON позволяет обновить драйвер для конкретного устройства, указав его аппаратный ID или совместимый ID.

devcon update <путь_к_файлу_inf> <аппаратный_ID_устройства>

  • <путь_к_файлу_inf>: Полный путь к файлу .inf нового драйвера.
  • <аппаратный_ID_устройства>: Аппаратный ID устройства, для которого вы хотите обновить драйвер. Вы можете получить его с помощью devcon find или из Диспетчера устройств (Свойства устройства -> Сведения -> ИД оборудования).

Пример:

Предположим, у вас есть новый драйвер для видеокарты в C:\Drivers\NVIDIA\nv_disp.inf, и аппаратный ID вашей видеокарты @PCI\VEN_10DE&DEV_1C8C&SUBSYS_118110DE&REV_A1.

devcon update C:\Drivers\NVIDIA\nv_disp.inf @PCI\VEN_10DE&DEV_1C8C&SUBSYS_118110DE&REV_A1

4. Перезагрузка устройства:

Иногда после обновления драйвера требуется перезагрузить устройство, чтобы изменения вступили в силу.

devcon restart <аппаратный_ID_устройства>

Пример:

devcon restart @PCI\VEN_10DE&

devcon restart @PCI\VEN_10DE&DEV_1C8C&SUBSYS_118110DE&REV_A1

Обновление драйверов с помощью PowerShell

PowerShell предлагает более современный и гибкий подход к управлению драйверами, используя cmdlets.

1. Перечисление устройств и драйверов:

Для начала, вы можете получить список устройств и их драйверов.

Get-PnpDevice
Get-PnpDevice -Class "Display" # Фильтр по классу устройств
Get-PnpDeviceProperty -KeyName "DEVPKEY_Device_DriverVersion" # Получить версии драйверов

2. Поиск драйверов в хранилище:

Вы можете просмотреть драйверы, которые уже находятся в хранилище драйверов Windows.

Get-WindowsDriver -Online

3. Установка нового драйвера (добавление в хранилище):

PowerShell не имеет прямого cmdlet для "обновления" драйвера в том же смысле, что и графический интерфейс. Вместо этого, вы добавляете новый драйвер в хранилище, и система автоматически выбирает наиболее подходящий.

Add-WindowsDriver -Path "C:\Drivers\MyNewDriver" -Online

  • -Path: Указывает путь к папке, содержащей файл .inf драйвера. PowerShell автоматически найдет все .inf файлы в этой папке и ее подпапках.
  • -Online: Применяет изменения к текущей работающей системе.

4. Обновление драйвера для конкретного устройства (косвенно):

Хотя нет прямого cmdlet Update-PnpDriver, вы можете использовать комбинацию Get-PnpDevice и Update-PnpDevice (или Disable-PnpDevice / Enable-PnpDevice) для принудительного пересканирования и установки лучшего драйвера.

Сценарий 1: Принудительное пересканирование и установка лучшего драйвера:

Если вы добавили новый драйвер в хранилище с помощью Add-WindowsDriver, вы можете принудительно заставить устройство пересканировать доступные драйверы.

# Получаем устройство по его Instance ID (можно найти через Get-PnpDevice)
$device = Get-PnpDevice -InstanceId "PCI\VEN_10DE&DEV_1C8C&SUBSYS_118110DE&REV_A1\4&12345678&0&0008"

# Отключаем и включаем устройство, чтобы оно пересканировало драйверы
Disable-PnpDevice -InstanceId $device.InstanceId -Confirm:$false
Enable-PnpDevice -InstanceId $device.InstanceId -Confirm:$false

Сценарий 2: Использование Update-PnpDevice (для устройств, которые могут быть обновлены):

Некоторые устройства могут быть обновлены напрямую, если новый драйвер уже находится в хранилище.

# Получаем устройство
$device = Get-PnpDevice -FriendlyName "NVIDIA GeForce RTX 2080 Ti"

# Обновляем драйвер для этого устройства
Update-PnpDevice -InstanceId $device.InstanceId

Этот cmdlet заставит систему проверить наличие более нового или подходящего драйвера для указанного устройства в хранилище драйверов.

5. Удаление драйвера:

Remove-WindowsDriver -Driver "oemXX.inf" -Online

  • -Driver: Укажите имя файла .inf драйвера в хранилище (например, oem12.inf). Вы можете найти его с помощью Get-WindowsDriver -Online.

Общие рекомендации и лучшие практики

  • Резервное копирование: Перед любыми манипуляциями с драйверами, особенно через командную строку, настоятельно рекомендуется создать точку восстановления системы или полное резервное копирование. Это позволит вам легко откатиться в случае возникновения проблем.
  • Используйте полные пути: При указании путей к файлам драйверов (.inf) всегда используйте полные пути, чтобы избежать ошибок.
  • Запускайте командную строку от имени администратора: Все команды, связанные с управлением драйверами, требуют повышенных привилегий. Запускайте "Командную строку" или "PowerShell" от имени администратора.
  • Изучите документацию производителя: Перед установкой драйверов из командной строки, ознакомьтесь с документацией производителя вашего оборудования. Там могут быть специфические инструкции или рекомендации.
  • Тестируйте на одном устройстве: Если вы автоматизируете процесс обновления драйверов для множества компьютеров, сначала протестируйте скрипт на одном или нескольких тестовых машинах, чтобы убедиться в его корректной работе.
  • Понимание аппаратных ID: Для более точного управления устройствами с помощью DEVCON и PowerShell, важно понимать структуру аппаратных ID. Они уникально идентифицируют каждое устройство в системе.
  • Версии драйверов: При обновлении драйверов через командную строку, система обычно выбирает драйвер с наивысшей версией, который совместим с устройством. Однако, в редких случаях, может потребоваться явное указание версии или удаление старого драйвера перед установкой нового.
  • Перезагрузка: После установки или обновления драйверов, часто требуется перезагрузка компьютера для полного применения изменений. Убедитесь, что ваш скрипт включает команду перезагрузки, если это необходимо.
  • Проверка после обновления: После завершения процесса обновления, проверьте работоспособность устройства через Диспетчер устройств или соответствующее приложение.

Примеры сценариев использования

1. Автоматическое обновление драйверов видеокарты на сервере:

Предположим, у вас есть сервер с несколькими видеокартами NVIDIA, и вы хотите установить последнюю версию драйвера.

  • Шаг 1: Скачайте драйверы NVIDIA. Распакуйте их в папку, например, C:\NVIDIA_Drivers.
  • Шаг 2: Найдите файл .inf драйвера. Обычно это nv_disp.inf или подобный.
  • Шаг 3: Используйте PNPUTIL для установки.pnputil /add-driver C:\NVIDIA_Drivers\nv_disp.inf /install
  • Шаг 4: Перезагрузите сервер.

2. Удаленное обновление драйвера сетевого адаптера на рабочей станции:

Вы можете использовать PowerShell для удаленного обновления драйвера сетевого адаптера.

  • Шаг 1: Скачайте драйвер сетевого адаптера и распакуйте его в общую папку, доступную с удаленной машины, например, \\FileServer\Drivers\NetworkAdapter.
  • Шаг 2: Используйте PowerShell Remoting.Invoke-Command -ComputerName RemotePC -ScriptBlock {
    Add-WindowsDriver -Path "\\FileServer\Drivers\NetworkAdapter" -Online
    Restart-Computer -Force
    }
    RemotePC - имя удаленного компьютера.
    \\FileServer\Drivers\NetworkAdapter - путь к папке с драйверами.

3. Диагностика проблем с драйвером звуковой карты:

Если у вас возникли проблемы со звуком, вы можете попробовать переустановить драйвер звуковой карты через командную строку.

  • Шаг 1: Найдите аппаратный ID вашей звуковой карты с помощью devcon find @*audio* или в Диспетчере устройств.
  • Шаг 2: Удалите текущий драйвер (если это необходимо и вы уверены в своих действиях).devcon remove @<аппаратный_ID_звуковой_карты>
  • Шаг 3: Установите новый драйвер (предварительно скачанный и распакованный).pnputil /add-driver C:\Drivers\SoundCard\snd_drv.inf /install
  • Шаг 4: Перезагрузите компьютер.

Заключение

Обновление драйверов через командную строку - это мощный инструмент, который открывает новые возможности для автоматизации, удаленного управления и точного контроля над вашей системой. PNPUTIL, DEVCON и PowerShell предоставляют различные подходы к этой задаче, каждый со своими преимуществами. Понимание этих инструментов и следование лучшим практикам позволит вам эффективно управлять драйверами, обеспечивая стабильную и оптимальную работу вашего оборудования. Помните, что с большой силой приходит большая ответственность, поэтому всегда действуйте осторожно и делайте резервные копии перед внесением ственными изменениями в систему.