Powershell启动过程pnputil.exe

时间:2020-10-19 14:15:46

标签: powershell

我正在尝试使用start-process运行pnputil,但是它似乎不起作用。

这是一个无需启动过程即可运行的脚本:

$Driver = Get-ChildItem "$PSScriptRoot" -Recurse -Filter "*inf"

$InstallDriver = foreach ($item in $Driver) {
          
PNPUtil.exe /add-driver $item.FullName /install

}

但是如果我在启动过程中也做同样的事情,我将无法正常工作:

$Driver = Get-ChildItem "$PSScriptRoot" -Recurse -Filter "*inf"

$InstallDriver = foreach ($item in $Driver) {
          
Start-Process PNPUtil.exe /add-driver $item.FullName /install

}

我也尝试过

Start-Process PNPUtil -ArgumentList '/add-driver $item.FullName /install'

Start-Process PNPUtil -ArgumentList '/add-driver "$item.FullName" /install'

Start-Process PNPUtil -ArgumentList '/add-driver "${$item.FullName}" /install'

Start-Process PNPUtil -ArgumentList "/add-driver "${$item.FullName}" /install'

Start-Process PNPUtil -ArgumentList "/add-driver $item.FullName} /install"

但这不起作用

有人知道为什么它不起作用吗? 感谢您的帮助

1 个答案:

答案 0 :(得分:0)

它们都是单独的参数。如果将$variable.property括在双引号中,则需要用子表达式$()来使变量周围的单引号阻止变量扩展。相反,尝试这个

Start-Process PNPUtil -ArgumentList "/add-driver",$item.FullName,"/install"