【问题标题】:Start process as User not Admistrator以用户而非管理员身份启动进程
【发布时间】:2019-10-09 06:08:28
【问题描述】:

我有一个程序需要以管理权限运行,但需要以用户身份启动一个进程。如果我使用 environment.username 我得到管理员,但我需要它是本地用户。关于如何以用户登录而不是管理员身份调用进程的任何想法?

Dim proc As New System.Diagnostics.Process()
proc = Process.Start("Avaya 7.0.exe", "")

【问题讨论】:

标签: vb.net


【解决方案1】:

如果您可以在您想要启动进程的程序中安全地保存用户的用户名/密码/域,您可以使用 Process.Start 变体,除了要启动的文件名之外,该变体还接受登录数据用户在女巫上下文中启动进程:

Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process

在您的代码中,它将类似于:

Dim proc As New System.Diagnostics.Process()
Dim SS As New Security.SecureString
For Each C As Char In "MyPassword"
    SS.AppendChar(C)
Next

proc = Process.Start("Avaya 7.0.exe", "", "NonAdminUsername", SS, "MyDomain")

查看Process.Start documentation了解更多信息:

【讨论】:

  • 不要在代码中存储用户名和密码。将它们存储在环境变量中并从中读取。网上有很多关于从环境变量中读取的信息。
猜你喜欢
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 2013-08-01
  • 1970-01-01
相关资源
最近更新 更多