更改Powershell中创建的快捷方式的目标

时间:2017-12-10 17:54:21

标签: powershell wsh desktop-shortcut

我有一个安装了某个名为iLink(Crosslink)的BP程序的脚本。脚本工作正常,安装Java 6.21和两个Crosslink组件,并通过DISM .Net 3.5完美安装。

但是,唯一的缺点是网络版仅适用于管理员运行的Internet Explorer流程。我已经在用户桌面上创建了一个快捷方式,但我希望脚本能够从以下位置更改目标:" C:\ Program Files \ Internet Explorer \ iexplore.exe" runas.exe / user:capeplc \ a-bhargate / savecreds" C:\ Program Files \ Internet Explorer \ iexplore.exe"

这是我目前获得的脚本,我只是希望将其添加到最后或者更改快捷方式目标的内容:

# ... 
$TargetFile = "C:\Program Files\Internet Explorer\iexplore.exe"
$ShortcutFile = "$env:USERPROFILE\desktop\IEadmin.lnk"
$WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetFile
$Shortcut.Save()

脚本结果很好,只需将快捷方式目标更改为上面提到的粗体。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

正如gpunktschmitz在对该问题的评论中指出的那样,您必须:

$WScriptShell = New-Object -ComObject 'WScript.Shell'

$ShortcutFile = "$env:USERPROFILE\desktop\IEadmin.lnk"

$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)

$Shortcut.TargetPath = 'runas.exe' 
$Shortcut.Arguments =
  "/user:capeplc\a-bhargate /savecreds `"C:\Program Files\Internet Explorer\iexplore.exe`""     #` (dummy comment to fix broken syntax highlighting)
$Shortcut.Save()

注意需要` - 转义嵌入的双引号。

或者,使用 fixed 字符串(如手头的字符串),可以使用'...'(单引号)作为外引号,在这种情况下,您无需转义嵌入式双引号

相反,请考虑使用$env:ProgramFiles并通过变量指定用户名,在这种情况下,您需要"..."进行外部引用以确保执行字符串扩展(插值)。