Передает.inf файлы powershell в pnputil

Я пытаюсь рекурсивно искать каталог, находить внутри него любые файлы.inf и передавать эти файлы в pnputil, чтобы добавить эти драйверы в каталог драйверов Windows.

У меня есть следующее:

cd /drivers

$x = ls -Path . -Filter "*.inf" -Recurse -ErrorAction SilentlyContinue 

Foreach ($i in $x){
     pnputil /a $i
}

и я получаю следующую ошибку от pnputil:

Не удалось добавить пакет драйвера: неверный INF передан в качестве параметра.

Я предполагаю, что это терпит неудачу, потому что pnputil не нравится объект, который это получает. Любое предложение относительно того, что передать, или что изменить?

Спасибо!

1 ответ

Решение

Вы знали, в чем проблема. Вы передаете объект в командную строку. Что вам нужно сделать, это извлечь полный путь из этого System.IO.FileInfo объект для передачи pnputil

Foreach ($i in $x){
    & pnputil /a $i.FullName
}

Это должно дать вам результаты, которые вы ищете. Еще одна вещь, которую вы могли бы сделать, это изменить $x чтобы это был массив имен файлов. -ExpandProperty быть важной частью.

$x = ls -Path . -Filter "*.inf" -Recurse -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Fullname

Foreach ($i in $x){
     pnputil /a $i
}
Другие вопросы по тегам