我是PowerShell的新手。现在的任务是将某些程序固定到任务栏。这个Tutorial非常好,并且可以在我在Vmware中的Win7 32bit中很好地运行。但是,相同的脚本无法在Vmware的Win10 32bit中运行。因此,我修改了代码,最终发现这是因为找不到某些动词。我的测试代码如下:
CLS
$cmd = 'C:\Windows\System32\cmd.exe'
Test-Path $cmd
$Shell = New-Object -ComObject Shell.Application
$Desktop = $Shell.NameSpace(0X0)
$itemLnk = $Desktop.ParseName($cmd)
$itemVerbs = $itemLnk.Verbs()
Foreach($v in $itemVerbs)
{
write-host $v.Name
}
ISE以管理员身份运行,结果以及通过手动右键单击cmd.exe所找到的“动词”如下所示:
所以,请告诉我为什么以及如何解决此问题,谢谢!
最佳答案
可能是因为cmd.exe
中没有C:\Windows\
,请改用此代码:
$cmd = Join-Path $env:SystemRoot 'System32\cmd.exe'
注意:即时通讯使用Join-Path cmdlet组合路径和
$env:SystemRoot
来检索系统根目录(例如C:\Windows
)
关于windows - PowerShell无法找到可执行文件的某些动词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37476927/