Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从以管理员身份启动的应用程序中以本地/域用户身份登录/模拟_C#_.net_Windows_Wmi - Fatal编程技术网

C# 从以管理员身份启动的应用程序中以本地/域用户身份登录/模拟

C# 从以管理员身份启动的应用程序中以本地/域用户身份登录/模拟,c#,.net,windows,wmi,C#,.net,Windows,Wmi,我正在尝试使用WMI连接到域上的远程windows server计算机。当作为登录域用户启动时,它连接良好,但当作为本地管理员启动时,它失败。当以管理员身份启动应用程序时,是否有方法告知应用程序使用较低的域帐户进行连接?(也不提示输入用户/密码。) 我试过: WindowsIdentity.GetCurrent().Impersonate(); 但是,即使GetCurrent将域用户显示为当前用户,它似乎也不起作用。我已经成功地使用from Uwe Keim模拟了其他域帐户。请看一看-它在切换

我正在尝试使用WMI连接到域上的远程windows server计算机。当作为登录域用户启动时,它连接良好,但当作为本地管理员启动时,它失败。当以管理员身份启动应用程序时,是否有方法告知应用程序使用较低的域帐户进行连接?(也不提示输入用户/密码。)

我试过:

WindowsIdentity.GetCurrent().Impersonate();

但是,即使GetCurrent将域用户显示为当前用户,它似乎也不起作用。

我已经成功地使用from Uwe Keim模拟了其他域帐户。

请看一看-它在切换线程用户上下文方面对我起到了可靠的作用。它直接与Windows API

对话此方法需要询问密码,我正试图避免此问题。此对象似乎是模拟尝试的结果,但我无法让应用程序与当前登录的域用户进行模拟。(使用我知道的唯一一种方法,即使用WindowsIdentity.getCurrent进行无密码模拟)也许您可以提供有关如何使用它与我的问题相匹配的更多信息。您可以创建一个具有凭据的服务域帐户并使用它,而不是尝试回退到交互式用户。除非您具有凭据(域/登录/通过),否则无法模拟。用户是否以本地管理员身份登录并启动应用程序?或者用户是否以域用户身份登录但以本地管理员身份启动应用程序?是否以域用户身份登录并以应用程序启动为管理员。如果不请求凭据,恐怕这是不可能的。祝您好运!在Win32代码中,您可以使用OpenProcessTo从另一个进程获取访问令牌ken,使用DuplicateToken复制它,然后使用ImpersonateLoggedOnUser。我不确定这将如何转换为.NET。找到正确的过程可能也有点棘手。另一个选项是WTSQueryUserToken,但您必须安装并启动一个系统服务来代表您调用它。