1

我正在尝试通过 vpn 模拟域用户。我可以使用 RUNAS 命令从命令提示符运行管理工作室。但是,在调试模式或已发布的应用程序中,我无法对我的 vb 应用程序(.net 4.5、winforms、使用 VS 2012 Express)做同样的事情。这是我尝试过的:

  • 我的应用程序的 runas 命令(来自开始菜单程序中快捷方式的位置,以及可执行文件);在这些情况下,在命令提示符中输入密码后,我会收到“未知用户或密码错误”错误。
  • 我已经在代码中尝试了模拟用户,如 [http://williamfaulkner.co.uk/2009/04/vbnet-run-as-administrator-impersonate-a-user-2008/][ 1],这似乎是 MSDN 上列出的使用调用 advapi.dll 的变体(我不太确定它是如何工作的)。在这种情况下,当代码尝试查询 SQL 服务器时,我还会收到“未知用户或密码错误”错误。

有没有人对这些错误和/或我如何解决这个问题有任何解释。我假设如果我可以模拟和运行 ssms,我应该能够在我的 vb 应用程序中做到这一点。

提前致谢!

4

1 回答 1

2

这有点飞跃,但是 - Windows 的特定部分只能运行一次,并且不允许有来自不同用户的多个实例。我想知道这是否是这里的问题。我特别想explorer.exe。如果这听起来可能是导致 RUNAS 方法出错的原因,请尝试:

  1. 通过运行以用户身份启动新的 cmd 窗口: runas /noprofile /user:domain\user cmd
  2. 打开任务管理器并终止 explorer.exe 进程(执行此操作时您将失去启动栏)
  3. 在cmd窗口中输入:explorer.exe
  4. 开始栏和窗口将返回并以其他用户身份运行

现在试试你的应用程序。完成后,请务必通过以下方式切换回来:

  1. 打开任务管理器(这将作为其他用户运行)
  2. 杀死 explorer.exe 进程
  3. 按 ctrl alt del 然后单击任务管理器(这应该让它像你一样运行)
  4. 在任务管理器中,单击文件 - 新任务
  5. 类型:explorer.exe
  6. 现在一切都应该恢复正常了。
于 2012-11-07T18:02:24.947 回答