none
Windows 10 - Powershell (Установка драйверов)

    Вопрос

  • Есть зоопарк компьютеров,  ставлю w10, но дрова ставятся за частую не все или ставится стандартный драйвер который работает не так как надо (например видеодрайвер). Есть папка сетевая где собраны на все армы драйвера по моделям. Подскажите как можно с помощью PowerShell организовать автоматическую установку (или обновление) всех драйверов которые не установились или где версия драйвера типа "Стандартный видеодрайвер".  Зоопарк очень большой, винда накатывается средствами Акрониса, клонированием.
    • Перемещено Vector BCOModerator 4 июня 2019 г. 13:23 Перенесено из раздела Windows 10

Все ответы

  • мс придумала замечательный бесплатный инструмент который называется mdt, который позволяет делать накатку ос (подготовленную или сырую) пост конфигурацию, ввод в домен, выполнение скриптов, установку драйверов и пр. Вы изобретаете велосипед, а такие действия часто заканчиваются огромными нестабильными решениями которые никто кроме вас не будет в состоянии сопровождать

    The opinion expressed by me is not an official position of Microsoft

    Модератор
  • Если вы не компетентны ответить на поставленный вопрос, просьба не флудить. я не спрашивал совета как мне устанавливать ОС, есть конкретный вопрос под конкретную задачу. 
  • Если вы не компетентны ответить на поставленный вопрос, просьба не флудить. я не спрашивал совета как мне устанавливать ОС, есть конкретный вопрос под конкретную задачу. 

    вопрос не конкретный так как драйвера могут быть в виде inf файлов, как например драйвера сетевых карт, usb устройств и тд, exe файлов как драйвера видеоадаптеров, некоторых звуковых и специализированных устройств, msi файлов и тд. и под каждый конкретный тип, а в некоторых случаях под конкретный драйвер вам нужно будет искать команду установки. 

    Искать, потому что установка msi или inf еще может быть +- стандартизировано, а вот exe может содержать ключи тихой установки или не содержать такие ключи вовсе.

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


    The opinion expressed by me is not an official position of Microsoft

    Модератор
  • все драйвера inf
  • все драйвера inf
    посмотрите тут

    The opinion expressed by me is not an official position of Microsoft

    Модератор
  • все драйвера inf

    Приветствую.

    Install Windows Drivers from a Folder Using PowerShell 

    Add-WindowsDriver - Microsoft Docs


    Я не волшебник, я только учусь. MCTS, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Отметить как ответ" или проголосовать за "полезное сообщение". Disclaimer: Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть, без каких-либо на то гарантий. Блог IT Инженера, Яндекс Дзен, YouTube, GitHub.

    Модератор
  • Я уже писал в другой теме (windows 10) данный вопрос но не получил ответа, возможно тут спецы подскажут.

    Задача в следующем:

    Имеем большую базу драйверов в формате INF (на сетевой шаре), задача -  скрипт на PS или VBS который бы проходил по всем установленным устройствам на компьютере и натравливал бы это устройство на обновление драйвера именно из этой папки.  Основная задача  для чего это будет использоваться -  ускоренная установка драйверов в автоматическом режиме при установке windows 10. Зоопарк машин большой и бывает что не все драйверы ставятся, особенно VGA.

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

    4 июня 2019 г. 12:38
  • тут спецы одни и теже.

    вам в прошлой теме я скидывал линк на dism и как его использовать для усьановки драйверов, а Антон скинул линк на аналогичный пошевский коммадлет

    Ответов в прошлой теме о ваших успехах я не видел, в связи с чем мне не понятен статус вашего прогресса и что конкретно вы хотите от  участников


    The opinion expressed by me is not an official position of Microsoft

    4 июня 2019 г. 12:41
    Модератор
  • dism не подходит, не нужно мне продавать "слона",  а ps командлет  он устанавливает все драйвера найденные в папке, а мне нужно идти от обратного, брать УСТРОЙСТВО а не драйвер и обновлять именно у УСТРОЙСТВА драйвер, грубо говоря тыкнуть установить драйвер-поиск драйвера на этом компьютере, и так по всем устройствам.  
    4 июня 2019 г. 12:57
  • dism не подходит, не нужно мне продавать "слона",  а ps командлет  он устанавливает все драйвера найденные в папке, а мне нужно идти от обратного, брать УСТРОЙСТВО а не драйвер и обновлять именно у УСТРОЙСТВА драйвер, грубо говоря тыкнуть установить драйвер-поиск драйвера на этом компьютере, и так по всем устройствам.  

    почему об этом было не написать во вчерашней теме...

    Посмотрите тут

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


    The opinion expressed by me is not an official position of Microsoft

    4 июня 2019 г. 13:15
    Модератор
  • нашел рабочий скрипт который делает все то что нужно единственное он подсасывает дрова из интернета, может кто подсобит как сюда прикрутить еще поиск на локальных или сетевых ресурсах? 

    #search and list all missing Drivers

    #set Window Title 
    $host.ui.RawUI
    $host.ui.RawUI.WindowTitle = "Driver Updater by harrymc"


    Write-Host('adding update source...') -Fore Green
    $UpdateSvc = New-Object -ComObject Microsoft.Update.ServiceManager
    $UpdateSvc.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")

    $Session = New-Object -ComObject Microsoft.Update.Session
    $Searcher = $Session.CreateUpdateSearcher() 

    $Searcher.ServiceID = '7971f918-a847-4430-9279-4a52d1efe18d'
    $Searcher.SearchScope =  1 # MachineOnly
    $Searcher.ServerSelection = 3 # Third Party

    $Criteria = "IsInstalled=0 and Type='Driver' and IsHidden=0"
    Write-Host('Searching Driver-Updates...') -Fore Green  
    $SearchResult = $Searcher.Search($Criteria)
    $SearchResult|ft -a title
    $Updates = $SearchResult.Updates

    #Show available Drivers
    Write-Host('Showing Drivers') -Fore Green
    $updates|fl

    $Updates | select Title, DriverModel, DriverVerDate, Driverclass, DriverManufacturer | fl

    #Download the Drivers from Microsoft

    $UpdatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
    $updates | % { $UpdatesToDownload.Add($_) | out-null }
    Write-Host('Downloading Drivers...')  -Fore Green  
    $UpdateSession = New-Object -Com Microsoft.Update.Session
    $Downloader = $UpdateSession.CreateUpdateDownloader()
    $Downloader.Updates = $UpdatesToDownload
    $Downloader.Download()

    #Check if the Drivers are all downloaded and trigger the Installation

    $UpdatesToInstall = New-Object -Com Microsoft.Update.UpdateColl
    $updates | % { if($_.IsDownloaded) { $UpdatesToInstall.Add($_) | out-null } }

    Write-Host('Installing Drivers...')  -Fore Green  
    $Installer = $UpdateSession.CreateUpdateInstaller()
    $Installer.Updates = $UpdatesToInstall
    $InstallationResult = $Installer.Install()
    if($InstallationResult.RebootRequired) {  
    Write-Host('Reboot required! please reboot now..') -Fore Red  
    } else { Write-Host('Done..') -Fore Green }

    Write-Host('cleaning up sources')
    $updateSvc.Services | ? { $_.IsDefaultAUService -eq $false -and $_.ServiceID -eq "7971f918-a847-4430-9279-4a52d1efe18d" } | % { $UpdateSvc.RemoveService($_.ServiceID) }

    Write-Host('Press any key to exit ...') -Fore Yellow
    $null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

    5 июня 2019 г. 12:26
  • нашел рабочий скрипт который делает все то что нужно единственное он подсасывает дрова из интернета, может кто подсобит как сюда прикрутить еще поиск на локальных или сетевых ресурсах? 

    #search and list all missing Drivers

    #set Window Title 
    $host.ui.RawUI
    $host.ui.RawUI.WindowTitle = "Driver Updater by harrymc"


    Write-Host('adding update source...') -Fore Green
    $UpdateSvc = New-Object -ComObject Microsoft.Update.ServiceManager
    $UpdateSvc.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")

    $Session = New-Object -ComObject Microsoft.Update.Session
    $Searcher = $Session.CreateUpdateSearcher() 

    $Searcher.ServiceID = '7971f918-a847-4430-9279-4a52d1efe18d'
    $Searcher.SearchScope =  1 # MachineOnly
    $Searcher.ServerSelection = 3 # Third Party

    $Criteria = "IsInstalled=0 and Type='Driver' and IsHidden=0"
    Write-Host('Searching Driver-Updates...') -Fore Green  
    $SearchResult = $Searcher.Search($Criteria)
    $SearchResult|ft -a title
    $Updates = $SearchResult.Updates

    #Show available Drivers
    Write-Host('Showing Drivers') -Fore Green
    $updates|fl

    $Updates | select Title, DriverModel, DriverVerDate, Driverclass, DriverManufacturer | fl

    #Download the Drivers from Microsoft

    $UpdatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
    $updates | % { $UpdatesToDownload.Add($_) | out-null }
    Write-Host('Downloading Drivers...')  -Fore Green  
    $UpdateSession = New-Object -Com Microsoft.Update.Session
    $Downloader = $UpdateSession.CreateUpdateDownloader()
    $Downloader.Updates = $UpdatesToDownload
    $Downloader.Download()

    #Check if the Drivers are all downloaded and trigger the Installation

    $UpdatesToInstall = New-Object -Com Microsoft.Update.UpdateColl
    $updates | % { if($_.IsDownloaded) { $UpdatesToInstall.Add($_) | out-null } }

    Write-Host('Installing Drivers...')  -Fore Green  
    $Installer = $UpdateSession.CreateUpdateInstaller()
    $Installer.Updates = $UpdatesToInstall
    $InstallationResult = $Installer.Install()
    if($InstallationResult.RebootRequired) {  
    Write-Host('Reboot required! please reboot now..') -Fore Red  
    } else { Write-Host('Done..') -Fore Green }

    Write-Host('cleaning up sources')
    $updateSvc.Services | ? { $_.IsDefaultAUService -eq $false -and $_.ServiceID -eq "7971f918-a847-4430-9279-4a52d1efe18d" } | % { $UpdateSvc.RemoveService($_.ServiceID) }

    Write-Host('Press any key to exit ...') -Fore Yellow
    $null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

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

    The opinion expressed by me is not an official position of Microsoft

    5 июня 2019 г. 13:09
    Модератор
  • ничего близкого к информации по вашей ссылке тут нет, совершенно.
  • ничего близкого к информации по вашей ссылке тут нет, совершенно.

    успехов вам. прискорбно конечно, но что уж тут...

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

    но ваше стремление получить готовое решение не прикладывая никаких усилий мне тоже понятно, хоть это и расходится кардинально с моими представлениями о помощи (экплуатации)

    возможно решение находится в той же плоскости что и в вашем вопросе про батник годичной давности и кто-то за вас сделает вашу работу за бесплатно. В любом случае, 'я устал, я ухожу...'



    The opinion expressed by me is not an official position of Microsoft




    • Изменено Vector BCOModerator 6 июня 2019 г. 19:31
    • Предложено в качестве ответа eclegolas 24 июня 2019 г. 7:44
    Модератор