powershell将.inf文件传递给pnputil

时间:2014-12-05 21:11:23

标签: powershell driver inf

我试图以递归方式搜索目录,找到其中的任何.inf文件并将这些文件传递给pnputil,将这些驱动程序添加到Windows驱动程序目录中。

我有以下内容:

cd /drivers

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

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

我从pnputil收到以下错误:

  

添加驱动程序包失败:作为参数传递的INF无效。

我认为它失败了,因为pnputil并不喜欢它所得到的对象。关于通过什么或修改什么的任何建议?

谢谢!

1 个答案:

答案 0 :(得分:2)

你知道问题是什么。您正在将对象传递给命令行。您需要做的是从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
}