不是一般的捷径

不是一般的捷径

编辑了问题:

当我启动并将 SQL Data Compare 固定到快速启动栏时,我注意到我无法以其他用户身份运行该程序,使用 Shift + 右键单击​​修改。

仔细检查生成的快捷方式后发现,它的行为与其他快捷方式不同。

目标字段已禁用,仅包含应用程序名称而不是路径

在突出显示的字段中,我通常会获得可执行文件路径,并且如果需要,我可以修改它。

编辑 :Redgate 应用程序和Microsoft Office 2010 应用程序如此行為。

我尝试过

  • 直接从可执行文件创建桌面快捷方式。这可行,但这不是我想要的。我的桌面本来就很乱。

  • 将应用程序固定在快速启动栏上会提供一个广告宣传的快捷方式,没有以...身份运行选项,即使我可以使用以桌面身份运行选项。

问题

  • 有没有办法创建一个快速启动快捷方式,让我有“以其他用户身份运行”选项?
  • 如何禁用那些“广告快捷方式”?

答案1

不是一般的捷径

这是一个特殊的,所谓的广告捷径由 Windows Installer 创建,其目标无法手动更改:

Windows Installer 引入了一种特殊类型的快捷方式,虽然对用户来说是透明的,但它包含额外的元数据,Windows Installer 通过其 shell 集成使用这些元数据在启动应用程序之前验证指定应用程序的安装状态。

如果你解析快捷方式内容,你会发现达尔文数据块里面:

DarwinDataBlock 结构指定了一个应用程序标识符,可以代替链接目标身份列表安装应用程序时外壳链接已激活。

应用程序标识符是

[...] 特定产品、组件和功能的编码表示。如果存在此额外值,Windows Installer 将解码数据,并使用它来对该产品和组件进行检查。如果发现组件丢失或损坏,Windows Installer 将启动修复程序以恢复丢失的文件或数据,最后正常启动引用的应用程序,并将适当的命令行选项传递给它。

解决方案

根据@Johan Buret 的回答,使用ShellRunAs来自 Sysinternals:

在命令提示符下输入以下命令:

shellrunas.exe /reg

这将注册上下文菜单处理程序。

ShellRunas 提供与 Runas 类似的功能,可以通过方便的 shell 上下文菜单项以不同的用户身份启动程序。

解决方法

创建指向同一应用程序的新快捷方式。

参考

答案2

这确实是一个广告捷径。一旦我知道了真名,我就能找到解决办法了。

http://social.technet.microsoft.com/Forums/windows/en-US/fc0ce9f3-169a-43c9-b878-d678745c84f0/run-as-different-user-unavailable-for-advertised-shortcuts

尝试使用 SysInternals 的 ShellRunAs 工具:http://technet.microsoft.com/en-us/sysinternals/cc300361

在命令提示符下输入以下命令:

shell运行命令/reg

相关内容