使用PowerShell修改含URL参数的快捷方式时报错的解决求助
解决PowerShell设置带参数的快捷方式目标路径报错问题
你不能把可执行文件路径+参数+URL全部塞进TargetPath属性,WScript.Shell的快捷方式对象要求TargetPath仅存放可执行文件的路径,参数部分需要单独通过Arguments属性设置。
正确的代码示例:
$ComObj = New-Object -ComObject WScript.Shell $ShortCut = $ComObj.CreateShortcut("C:\Users\Public\Desktop\shortcut.lnk") # 仅设置可执行文件路径到TargetPath $ShortCut.TargetPath = "C:\WINDOWS\system32\rundll32.exe" # 将所有参数(包括dll函数和URL)放到Arguments属性中 $ShortCut.Arguments = "dfshim.dll, ShOpenVerbApplication https://linkToServer.domain.ect" $ShortCut.Save()
原因说明
手动修改快捷方式属性时,系统会自动识别并拆分可执行文件路径和后续参数,但通过PowerShell调用WScript.Shell的COM对象时,必须严格区分TargetPath(仅可执行文件路径)和Arguments(运行该程序所需的所有参数)。如果把参数和URL拼到TargetPath里,会超出该属性的预期值范围,从而触发"value does not fall within expected range"错误。
内容的提问来源于stack exchange,提问作者CaptainChurro
相关产品推荐
相关产品推荐

