【问题标题】:Change target of shortcut created in Powershell更改在 Powershell 中创建的快捷方式的目标
【发布时间】:2017-12-10 17:54:20
【问题描述】:

我有一个脚本,它安装了一个名为 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()

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

【问题讨论】:

  • 看看这个网站:support.microsoft.com/en-us/help/242297/… - 我认为你必须更改$Shortcut.TargetPath = "runas.exe"并添加$Shortcut.Arguments = '/user:capeplc\a-bhargate /savecreds "C:\Program Files\Internet Explorer\iexplore.exe"'

标签: powershell wsh desktop-shortcut


【解决方案1】:

正如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()

请参阅WshShortcut 文档了解所有可用属性的概述。

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

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

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

【讨论】:

    猜你喜欢
    • 2015-10-06
    • 2014-10-06
    • 1970-01-01
    • 2021-03-09
    • 2023-04-08
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多