在vb.net中模拟远程用户以访问MS SQL Server

时间:2012-11-07 15:54:20

标签: sql-server vb.net impersonation runas

我正在尝试通过vpn模拟域用户。我可以使用RUNAS命令从命令提示符运行management studio。但是,我无法在调试模式或已发布的应用程序中使用我的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应用程序中执行此操作。

提前致谢!

1 个答案:

答案 0 :(得分:2)

这有点飞跃但是 - Windows的特定部分只能运行一次,不允许来自不同用户的多个实例。我想知道这是不是问题。 我正在考虑explorer.exe。 如果听起来这可能是RUNAS方法的绊倒,请尝试:

  1. 通过运行:runas / noprofile以用户身份启动新的cmd窗口 / user:domain \ user cmd
  2. 打开taskmanager并终止explorer.exe进程(执行此操作时会松开启动栏)
  3. cmd窗口中的
  4. 类型:explorer.exe
  5. 开始栏和窗口将返回并以其他用户身份运行
  6. 现在试试你的应用程序。 当你完成后,一定要切换回来:

    1. 打开taskmanager(这将以其他用户身份运行)
    2. 终止explorer.exe进程
    3. 按ctrl alt del然后单击任务管理器(这应该让它像你一样运行)
    4. 在taskmanger中,单击文件 - 新任务
    5. 类型:explorer.exe
    6. 现在一切都应该恢复正常了。