【问题标题】:VB2010: Create shortcut on desktop programmatically that runs as administratorVB2010:以编程方式在桌面上创建以管理员身份运行的快捷方式
【发布时间】:2015-06-19 16:47:55
【问题描述】:

我在下面使用这种方式在用户桌面上创建快捷方式。我也希望他们以管理员身份运行。我在 StackOverflow 中找到了 this,但是...我想以编程方式而不是手动执行相同的操作。

这是我的代码:

Private Sub CreateShortcuts()
    Dim NewDir = AppFolder.Text
    Dim WSH As Object = CreateObject("WScript.Shell")
    WSH = CreateObject("WScript.Shell")
    Dim MyShortcut, DesktopPath
    DesktopPath = WSH.SpecialFolders("Desktop")

    MyShortcut = WSH.CreateShortcut(DesktopPath & "\Application Controller.lnk")
    MyShortcut.TargetPath = WSH.ExpandEnvironmentStrings(NewDir & "\Application.exe")
    MyShortcut.WorkingDirectory = WSH.ExpandEnvironmentStrings(NewDir)
    MyShortcut.WindowStyle = 1
    MyShortcut.IconLocation = NewDir & "\Application.exe"
    MyShortcut.Save()
End Sub

【问题讨论】:

  • 所以你想绕过安全?
  • 我只想让我的应用程序的快捷方式以管理员身份运行...
  • 以管理员身份运行和尝试以管理员身份运行是有区别的(后者会提示用户输入管理员信息,前者会绕过)。你想达到哪个目标?
  • @Sastreen:以管理员身份运行!
  • @Simon 我认为你无法绕过 UAC...

标签: vb.net visual-studio-2010


【解决方案1】:

我认为您正在搜索“runas”命令。你可以说你的目标程序的命令行参数是:

runas /savecred /user:administrator "yourprogrampathhere.exe"

只需确保名为“管理员”的用户确实存在。顺便说一句,快捷方式的“属性”窗口上有一个标志,我只是不知道如何使用 WShell 方式进行操作,但此解决方案可能有效。 此行需要更改:

 MyShortcut.TargetPath = WSH.ExpandEnvironmentStrings("runas /savecred /user:administrator """ & NewDir & "\Application.exe""")

如果您想知道为什么我放了太多引号,请不要担心。它们用于转义初始引号。祝您有美好的一天,我希望您的程序能够成功!

编辑:使用它会提示您输入管理员密码。您必须拥有其中之一,因为不允许使用空密码。密码将被保存,下次系统重启前不会再次提示。

【讨论】:

  • 欢迎您! :) 如果您不想保存密码,请确保从命令中删除 /savecred。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 2011-05-07
  • 1970-01-01
  • 2011-11-15
  • 2015-05-13
  • 2016-08-31
  • 1970-01-01
相关资源
最近更新 更多