Как установить драйвера через windows powershell

Как получить список устройств и драйверов Windows с помощью PowerShell

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

Для получения полного описания установленных драйверов, можно использовать PowerShell. Get-WindowsDriver в PowerShell выводит основную информацию драйверах; как для сторонних драйверов, так и для установленных по умолчанию.

Получить список драйверов с помощью PowerShell

  1. Нажмите Win + Q и введите Windows PowerShell в поле поиска. В результатах поиска щелкните правой кнопкой мыши на Windows PowerShell и выберите Запуск от имени администратора.

  • Далее, в окне Windows PowerShell введите командлет (выбрав один из параметров в квадратных скобках) и нажмите клавишу Enter :
  • Вот как можно изменять параметры (показаны в [ . ]), согласно вашем ожиданиям:

    • -Online: указывает, что действие выполняется в операционной системе, которая работает на локальном компьютере.
    • -All: включает отображение информации о стандартных драйверах. Если Вы не укажете этот параметр, то будут перечислены только сторонние драйверы. Например,
    • -Driver : указывает .inf файл или папку, содержащую .inf файлы драйверов, о котором Вы хотите получить подробную информацию. При указании папки .inf файлов, которые не являются действительными пакетами драйверов, параметр игнорируется.
      Например,
    • -LogLevel : задает максимальное значение выходного уровня в журналах. Уровень протоколирования по умолчанию – 3.
    • 1 = только ошибки
    • 2 = ошибки и предупреждения
    • 3 = ошибки, предупреждения и информация
    • 4 = вся информация, указанная выше, и отладочный вывод

    Например,

    • -LogPath : указывает полный путь и имя файла журнала. Если не задано, по умолчанию — %WINDIR%\Logs\Dism\dism.log.
      Например,
    • -Path : Вы можете изменить этот параметр, чтобы указать полный путь к корневому каталогу автономного образа Windows с драйверами, которые загружаются.

    Например, чтобы получить получает подробные сведения о USB.inf драйвере включенном в образ Windows, используйте эту команду:

  • -ScratchDirectory : этот параметр указывает временный каталог, который будет использован при извлечении файлов для использования при техническом обслуживании. Этот каталог должен существовать локально. Если не указан, будет использоваться Windows\%Temp% (подкаталог со случайным шестнадцатеричным именем при каждом запуске системы dism). Элементы каталога удаляются после каждой операции.
    Например,
  • -SystemDrive : это необходимый параметр, чтобы найти загрузчик bootmgr файлов, если эти файлы находятся на разделе, из которого вы запускаете команду.

    Например, чтобы найти загрузчик bootmgr фалов на С:, когда вы работаете в PowerShellс диска D: , используйте этот командлет:

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

    PowerShell: управление принтерами и драйверами печати в Windows 10 / Server 2016

    В предыдущей статье мы рассмотрели олдскульные vbs скрипты, которые можно было использовать для управления принтерами и печатью во всех версиях Windows, начиная с Windows XP. Сегодня же мы рассмотрим типовые команды для создания, удаления принтеров, портов и драйверов печати в Windows при помощи PowerShell. Рассмотренные методы управления принтерами можно использовать в современных ОС — Windows 10, 8.1 и Windows Server 2012 R2 / 2016 / 2019.

    Читайте также:  Gimp all in one windows

    Модуль PowerShell: PrintManagement

    Вместе с выходом Windows 8.1 и Windows Server 2012 R2 Microsoft выпустила новую версию PowerShell 4.0 (входит в состав Windows Management Framework 4.0), в котором был существенно расширен список командлетов по управлению сервером печати на базе Windows. Полный список командлетов, по управлению принтерами, драйверами и очередями печати, доступных в модуле PrintManagement на Windows 10 (PoSh v5) можно вывести командой:
    Get-Command –Module PrintManagement

    В модуле PrintManagement доступны 22 командлета PowerShell для управления принтерами, драйверами, портами печати и очередями:

    • Add-Printer – добавить (установить) новый принтер;
    • Add-PrinterDriver — установить новый драйвер печати;
    • Add-PrinterPort – создать порт печати;
    • Get-PrintConfiguration – вывести настройки печати принтера;
    • Get-Printer – вывести список принтеров, установленных на компьютере;
    • Get-PrinterDriver – вывести список установленных драйверов печати;
    • Get-PrinterPort — вывести список портов печати;
    • Get-PrinterProperty – показать свойства принтера;
    • Get-PrintJob – получить список заданий печати принтера;
    • Read-PrinterNfcTag – получить информацию о принтере из NFC метки;
    • Remove-Printer — удалить принтер;
    • Remove-PrinterDriver — удалить драйвер принтера;
    • Remove-PrinterPort — удалить порт принтера;
    • Remove-PrintJob – удалить задание печати на принтере;
    • Rename-Printer — переименовать принтер;
    • Restart-PrintJob — перезапустить задание печати;
    • Resume-PrintJob — запустить приостановленное задание
    • Set-PrintConfiguration – настройка конфигурации принтера;
    • Set-Printer – обновить конфигурацию принтера;
    • Set-PrinterProperty — изменить свойства принтера;
    • Suspend-PrintJob – приостановить выполнение задания печати;
    • Write-PrinterNfcTag – записать информацию в метку NFC.

    Подробную информацию о синтаксисе конкретной команды можно получить так:

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

    Рассмотрим несколько примеров типовых сценариев управления принтерами в Windows 10 из PowerShell.

    Установка драйвера печати в хранилище драйверов

    Чтобы вывести список драйверов печати, который установлены в хранилище драйверов Windows:

    Уставим в системе новый драйвер печати, например, HP Universal Printing PCL 6. Согласно документации, команда PowerShell для добавления драйвера должна быть такой:

    Add-PrinterDriver -Name «HP Universal Printing PCL 6» -InfPath «C:\Distr\HP-pcl6-x64\hpcu118u.inf»

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

    Оказывается, драйвер из inf файла можно добавить только в том случае, если он уже находится в хранилище драйверов DriverStore (подробнее про хранилище можно почитать здесь). Получается, что с помощью команды Add-PrinterDriver установить драйвер, отсутствующий в хранилище драйверов системы нельзя. Для установки драйвера в DriverStore можно воспользоваться:

    • vbs скриптом из предыдущей статьи;
    • Утилитой pnputil.exe. Формат такой: pnputil.exe -i -a C:\Distr\HP-pcl6-x64\hpcu118u.inf (установить конкретный драйвер принтера) или pnputil.exe -i -a C:\Distr\HP-pcl6-x64\*.inf (установит все драйвера, найденные в inf файлах указанного каталога);
    • Командлетом Add-WindowsDriver, позволяющим интегрировать драйвера в оффлайн образ Windows.

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

    Add-PrinterDriver -Name «HP Universal Printing PCL 6»

    Установка нового принтера с помощью PowerShell

    Создадим ip порт для печати на сетевом принтере (тут можно указать как IP адрес сетевого принтера, так и имя удаленного принт-сервера):

    Add-PrinterPort -Name «IP_192.168.10.26» -PrinterHostAddress «192.168.10.26»
    Перед добавлением порта вы можете проверить, существует ли он:

    $portName = «IP_192.168.10.26»
    $checkPortExists = Get-Printerport -Name $portname -ErrorAction SilentlyContinue
    if (-not $checkPortExists) <
    Add-PrinterPort -name $portName -PrinterHostAddress «192.168.10.26»
    >

    С помощью следующей команды мы создадим в системе новый принтер и опубликуем его (откроем к нему общий доступ):
    Add-Printer -Name hp2050_Office1_Buh -DriverName «HP Deskjet 2050 J510 series Class Driver» -PortName IP_192.168.10.26 -Shared -ShareName «hp2050_1_BUh» –Published

    Rename-Printer -Name «hp2050_Office1_Buh» -NewName » hp2050_Salary»

    После выполнения указанных команд в системе появится новый принтер с общим доступом под именем hp2050_Office1_Buh.

    Читайте также:  Формуляр astra linux special edition

    Вывод списка принтеров на сервере печати с помощью PowerShell

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

    Как вы видите, команда показывает имя принтера, тип (локальный или сетевой), драйвер, порт печати, открыт ли к принтеру общий доступ и опубликован ли принтер в AD.

    Большинство командлетов модуля PrintManagement можно использовать для просмотра состояния и управления принетрами, драйверами и очередями печати на удаленных компьютерах. Имя удаленного компьютера или сервера указывается в качестве аргумента параметра ComputerName.

    С помощью PowerShell вы можете получить информацию об установленных принтерах на удаленном компьютере (принт-сервере), для этого выполните команду:

    Get-Printer -ComputerName msk-prnt1 | Format-List Name,DriverName

    Чтобы вывести только список принтеров с общим доступом, используйте команду:

    Get-Printer -ComputerName msk-prnt1 | where Shared -eq $true | fl Name

    Подключение сетевого принтера из PowerShell

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

    Add-Printer -ConnectionName \\msk-prnt1\HPCL3020

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

    Set-ItemProperty -Path «HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows» -Name «LegacyDefaultPrinterMode» -Value 1 –Force

    Чтобы установить принтер по-умолчанию используйте следующие команды:

    $wsnObj = New-Object -COM WScript.Network
    $wsnObj.SetDefaultPrinter(%PrinterName%)

    Удаление принтера с помощью PowerShell

    Чтобы удалить принтер, нужно выполнить такую команду PowerShell:

    Remove-Printer -Name «hp2050_Office1_Buh»

    Вы можете удалить конкретный драйвер при помощи командлета Remove-PrinterDriver:

    Remove-PrinterDriver -Name «HP Universal Printing PCL 6»

    Резервная копия (экспорт) драйверов и их восстановление с помощью PowerShell в Windows 10 и 8.1

    После переустановки или чистой установки Windows пользователь сталкивается с необходимостью установки актуальных версий драйверов для устройств, установленных в компьютере. Сразу после переустановки системы пользователю приходится вручную качать драйвера с сайта производителя или использовать различные драйвер-паки (в комплекте с которыми как правило идет разный мусор и рекламное ПО). Однако есть более простой способ переустановки драйверов в Windows. Не все знают, что перед переустановкой Windows вы можете создать резервную копию всех драйверов, установленных в системе. В дальнейшем с помощью резервной копии вы сможете быстро установить все необходимые драйвера уже в чистой системе.

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

    Экспорт драйверов с помощью командлета Export-WindowsDriver

    В Windows 8.1 Update 1 появился новый Powershell командлет Export-WindowsDriver, позволяющий экспортировать все установленные в системе сторонние драйвера (имеются в виду не родные драйвера Microsoft) напрямую из хранилища драйверов (Driver Store). Во всех версиях Windows 10 командлет Export-WindowsDriver уже имеется в системе. Данный командлет позволят существенно облегчить и ускорить процесс переустановки Windows, т.к. раньше для создания резервной копии драйверов, установленных в системе, приходилось использовать стороннее ПО, например, DoubleDriver, DriverMax и пр.

    Итак, чтобы в Windows 10 или 8.1 непосредственно в установленной системе извлечь из текущего образа все установленные драйвера сторонних производителей, откройте консоль PowerShell с правами администратора и выполните команду:

    Export-WindowsDriver –Online -Destination c:\drivers

    Если нужно извлечь драйвера из офлайн образа Windows, смонтированного, например, в каталог c:\win_image, команда должна выглядеть так.

    Export-WindowsDriver -Path c:\win_image -Destination c:\drivers

    После запуска командлета на экране появится информация о всех экспортируемых драйверах, которые не являются частью ОС.

    В результате выполнения команды PowerShell вы получите каталог с резервной копией всех драйверов, установленных в Windows. Каждый драйвер и все связанные с ним файлы сохраняется в собственный каталог, который называется по имени inf-файла драйвера.

    В каждом каталоге присутствуют все файлы, необходимый для установки драйвера в системе (не только inf файлы, но и все связанные sys, dll, exe и другие типы файлов). Командлет Export-WindowsDriver строит список файлов, которые необходимы для установки драйвера в соответствии со списком файлов, указанных в секции CopyFiles inf-файла драйвера.

    Читайте также:  Почему мы выбираем windows

    Чтобы отобразить список всех экспортируемых драйверов в удобном виде с указанием класса, производителя и версии драйвера, осуществим экспорт драйверов двумя командами:

    $BackupDrv = Export-WindowsDriver -Online -Destination c:\drivers

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

    $BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Sort-Object ClassName

    Как вы видите, в получившейся таблице указан класс драйвера, производитель, версия и дата.

    Вы можете выгрузить информацию об экспортированных драйверах в CSV файл:

    $BackupDrv| Select-Object ClassName, ProviderName, Date, Version |Export-Csv c:\ps\drivers_list.txt

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

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

    Бэкап драйверов с помощью DISM

    Утилита DISM также предоставляет возможность как создания резервной копии драйверов, так и их импорта в образ Windows.

    Чтобы экспортировать все драйвера в каталог C:\Drivers, откройте командную строку с правами администратора и выполните команду:

    dism /online /export-driver /destination:C:\Drivers

    Экспорт 1 из 27 — oem0.inf: Пакет драйверов успешно экспортирован.

    Как вы видите, в нашем примере утилита DISM успешно экспортировала в указанный каталог 27 драйверов.

    Используем утилиту PNPUtil для создания резервную копии установленных драйверов

    В состав всех версий Windows, начиная c Windows 7, входит утилита PNPUtil, которая обычно используется для добавления или удаления драйверов в Windows (ранее мы показывали как удалить старые версии драйверов из хранилища драйверов Windows для экономии места на диске).

    Откройте командную строку с повышенными правами и выполните команду:

    pnputil.exe /export-driver * c:\drivers

    Драйвера из получившегося каталога с драйверами можно распространить на другие системы вручную с помощью PowerShell или DISM (Как интегрировать драйвера в образ Windows), или автоматизировано с помощью скриптов на основе PNPUtil, DISM, PowerShell, MDT, SCCM и т.п.

    Восстановление драйверов из резервной копии

    После переустановки системы вы можете использовать каталог с резервной копией драйверов для установки в чистой системе.

    Вы можете установить конкретный драйвер, щелкнув правой кнопкой по INF файлу и выбрав пункт меню «Установить».

    Также можно установить драйвер конкретного устройства через диспетчер оборудования. В диспетчере устройств выберите устройство, драйвер которого вы хотите заменить, выберите пункт «Обновить драйвер» -> «Выполнить поиск драйверов на этом компьютере». Укажите путь к каталогу с резервной копией драйверов. Чтобы автоматически просканировать на подходящие драйвера все вложенные папки, выберите соответствующую опцию.

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

    $driver_inf_files = Get-ChildItem -Path «C:\Drivers\» -Filter «*.inf» -Recurse -File
    foreach($driver_inf_file in $driver_inf_files)<
    $driver_inf_file.FullName
    pnputil.exe -i -a «$driver_inf_file.FullName»
    >

    Данный PoSh скрипт последовательно обходит все папки в указанном каталоге, ищет все inf файлы и устанавливает драйвера в хранилище драйверов с помощью утилиты PNPUtil.

    Также можно импортировать все драйвера из каталога с резервной копией в образ Windows с помощью параметра Add-Driver утилиты DISM:

    DISM /online /Add-Driver /Driver:C:\Drivers /Recurse

    Можно добавить драйвер как в онлайн, так и в офлайн образ Windows (см. пример Интеграция драйверов USB 3.0 в дистрибутив Windows 7).

    Итак, в этой статье мы рассмотрели разные способы экспорт и импорта драйверов в Windows. Также мы познакомились с новым командлетом Export-WindowsDriver в Windows 10 и Windows 8.1 Update 1, позволяющим создать резервную копию всех сторонних драйверов, установленные в системе, и экспортировать их в отдельную папку.

  • Оцените статью