powershell中创建快捷方式时的目标路径问题

powershell中创建快捷方式时的目标路径问题,powershell,Powershell,我正在尝试为用户在公共桌面上创建一条捷径,但是这个捷径的目标路径导致了一些问题 $wshshell=新对象-ComObject WScript.shell $desktop=[System.Environment]::GetFolderPath(“桌面”) $lnk=$wshshell.CreateShortcut($desktop\CLMCPDEDEV.lnk) $lnk.TargetPath=“C:\Program Files(x86)\Unisys\WebEnabler\Web Enabl

我正在尝试为用户在公共桌面上创建一条捷径,但是这个捷径的目标路径导致了一些问题

$wshshell=新对象-ComObject WScript.shell
$desktop=[System.Environment]::GetFolderPath(“桌面”)
$lnk=$wshshell.CreateShortcut($desktop\CLMCPDEDEV.lnk)
$lnk.TargetPath=“C:\Program Files(x86)\Unisys\WebEnabler\Web Enabler.exe”“configfile=C:\development installs\Web Enabler config\CLMCPDEDEV.cfg”
我有另一个文件夹中的配置文件和exe是在一个不同的路径。我是新加入power shell的,如何绕过
“C:\Program Files(x86)\Unisys\WebEnabler\Web Enabler.exe”
“configfile=C:\development installs\Web Enabler config\clmcpedev.cfg”
?这是我手动执行此操作时的完整捷径。非常感谢您的指导

引用方法文档:

一个常见的问题是在的TargetPath属性中放置参数 快捷方式对象,不起作用。所有参数都指向快捷方式 必须放在Arguments属性中

所以你必须这样做:

$wshshell=新对象-ComObject WScript.shell
$desktop=[System.Environment]::GetFolderPath('desktop'))
$lnk=$wshshell.CreateShortcut((连接路径-Path$desktop-ChildPath'CLMCPDEDEV.lnk'))
$lnk.TargetPath='C:\Program Files(x86)\Unisys\WebEnabler\Web Enabler.exe'
$lnk.Arguments='configfile=c:\development installs\web enabler config\CLMCPDEDEV.cfg'
$lnk.Save()

“C:
之前和
.cfg“
帮助”之后加上一个单引号有效吗?为了将捷径移到公共位置,我使用了典型的cmd/C xcopy%userprofile%\desktop\CLMCPDEDEV.lnk C:\users\public\desktop,然后是cmd/C del%userprofile%\desktop\CLMCPDEDEV.lnk,以避免重复的iconsHi BeatCracker。如果我想在公共桌面中将快捷图标更改为上面的特定lnk,我将使用什么命令?我在一个文件夹中有一个ICO文件,该文件的颜色与我希望clmcpdedev.lnk使用的颜色不同?实际上,当在一台机器上更改快捷方式的图标,并使用脚本删除原始图标,然后将新图标复制到目标机器时,图标会停留一段时间,然后断开并变为通用图标。我必须使用iconlocation参数吗?@joextreme:您可以使用
$lnk.iconlocation='C:\Program Files(x86)\Unisys\WebEnabler\web enabler.ico',0指定图标位置(“0”参数意味着在第一个位置指定图标,这是非嵌入式图标定义所必需的。顺便说一句,这篇文章最终解决了我创建链接的问题。这里最神奇的是
$lnk.Arguments
,我在指定
cmd/K“…”
命令时缺少了它