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

问题描述 投票:1回答:1

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

但是,唯一的缺点是Web版本仅适用于管理员运行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()

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

powershell wsh desktop-shortcut
1个回答
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()

注意需要`-escape嵌入式双引号。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.