我正在尝试为用户自动化一些内容,其中一个是在桌面上添加“计算机”和“文档”快捷方式。
我在网上找到了以下代码并将目标更改为“explorer.exe / e,:: {20D04FE0-3AEA-1069-A2D8-08002B30309D}”
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut(C:\users\username\Desktop\Computer.lnk")
$Shortcut.TargetPath = "explorer.exe \/e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
$Shortcut.Save()
但是当我运行此代码时,我收到以下错误:
“异常调用”保存“并带有”0“参数:”无法保存镜头“
如果有另一种简单的方法,我很乐意听到它:)
提前谢谢大家。
答案 0 :(得分:0)
我想我在这里有一个很好的解决方案。另外,根据我自己的无能,我想我找出了你的错误原因
首先,我找到了cleaner方法来制作特殊文件夹的快捷方式。
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\users\user\Desktop\MacadizamianNizzut.lnk")
$Shortcut.TargetPath = [environment]::getfolderpath("mycomputer")
$Shortcut.Save()
您也可以使用mydocuments
代替mycomputer
。有关可以使用的特殊文件夹的完整列表:[enum]::GetNames([System.Environment+SpecialFolder])
。向JRV提示,以便对我上面的链接发表评论。
至于您的错误"Exception calling "Save" with "0" arguments : "Unable to save shortcut"
。我也遇到了这个错误。实际上,这是因为createshortcut
传递的值不是有效路径。我不是说文件必须存在但文件夹路径存在。我做了一个错字并得到了错误。使用我的示例,此命令将失败:Test-Path ""C:\users\user\Desktop"
一些错误预防
我们可以做的是将快捷方式路径分配给变量并根据该路径测试路径。
$ShortcutPath = "C:\users\username\desktop\test.lnk"
If(Test-Path -Path (Split-Path -Path $ShortcutPath -Parent)){
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = [environment]::getfolderpath("mycomputer")
$Shortcut.Save()
} Else {
Write-Host "Unable to create shortcut. Check the path $ShortcutPath."
}