我正在尝试使用Wscript.Shell在Powershell脚本中创建桌面快捷方式。目标路径是网络驱动器上的HTML文件。我指定了完整路径,但是在创建快捷方式时,文件扩展名被截断为.htm。由于文件以.html结尾,因此显然不起作用。

有什么方法可以避免截断文件名吗?我的猜测是Wscript.Shell不支持超过3个字符的目标文件扩展名。它是否正确?

这是我的代码(Powershell):

$wshell = New-Object -ComObject WScript.Shell
$shortcut = $wshell.CreateShortcut("C:\users\parts.AGRISERVICELLC\Desktop\AgriWeb.lnk")
$shortcut.TargetPath = "S:\Service\agriweb_dairy\home.html"
$shortcut.WorkingDirectory = "S:\Service\agriweb_dairy"
$shortcut.IconLocation = "C:\arch2.ico"
$shortcut.Save()

这段代码创建了快捷方式,并带有我的图标。但是目标路径被截断为S:\Service\agriweb_dairy\home.htm

更新:有趣的是,如果我在本地Powershell session 中运行上述命令,则不会发生此问题。但是,如果我使用Enter-PSSession远程访问另一台计算机,则扩展名将截断为3个字符。问题不在于路径的长度-如果我缩短路径并将扩展名更改为“.htmll”,它仍然会将扩展名缩短为“.htm”。
另外,如果路径在C:驱动器上,则扩展名不会截断。但是,当我使用网络驱动器时,扩展名将被截断。

最佳答案

也许这与https://web.archive.org/web/20060709170134/https://support.microsoft.com/?kbid=263324有关
如果创建快捷方式的计算机上不存在目标驱动器号,则Windows会假定该驱动器只能处理8.3格式的文件名

关于powershell - Wscript.Shell快捷方式是否支持超过3个字符的文件扩展名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44554519/

10-13 08:50