问题标签 [createprocessasuser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3769 浏览

delphi - Delphi 和 CreateProcessAsUser 的例子?

有没有人有一个如何在 Delphi 中使用 CreateProcessAsUser 的例子?我使用的是 Delphi 2009,而不是 .NET Delphi。

0 投票
1 回答
5290 浏览

windows - 来自系统服务的 LogonUser -> CreateProcessAsUser

我已经阅读了 Stack Overflow 上关于 CreateProcessAsUser 的所有帖子,但很少有已解决的问题,所以我不会屏住呼吸。但似乎我肯定错过了一些东西,所以这可能很容易。

目标操作系统是 Windows XP。我有一个作为“本地系统”运行的服务,我想从中创建一个作为不同用户运行的进程。对于那个用户,我有用户名和密码,所以 LogonUser 很好,我得到了用户的令牌(在这种情况下,是管理员帐户。)然后我尝试使用该令牌调用 CreateProcessAsUser,但它失败了,因为该令牌SeAssignPrimaryTokenPrivilege 不附带 - 但是,它确实具有 SeIncreaseQuotaPrivilege。(我使用 GetTokenInformation 转储与该令牌关联的所有权限。)根据 CreateProcessAsUser 的 MSDN 页面,您需要这两个权限才能成功调用 CreateProcessAsUser。

它还说,如果您传递给 CreateProcessAsUser() 的令牌是“调用进程的主令牌的受限版本”,我可以使用 CreateRestrictedToken() 创建它,那么您不需要 SeAssignPrimaryTokenPrivilege,但随后它将与本地系统用户,而不是我试图运行进程的目标用户。

那么,我将如何创建一个登录令牌,它既是调用进程的主令牌的受限版本,又与不同的用户相关联?谢谢!

请注意,这里不需要用户交互 - 都是无人值守的 - 所以不需要做诸如抓取 WINSTA0 之类的事情。

0 投票
2 回答
5165 浏览

winapi - 为每个进程、用户或会话获取非交互式用户的 Window Station?

当使用 CreateProcessAsUser 时,我们通过 STARTUPINFO 和 lpDesktop NULL,目标是 winsta0/default,交互式用户的交互式桌面。

我希望在第二个非交互式用户的另一个会话中定位一个窗口站,比如远程桌面用户。

我认为它不能是winsta0,因为它是为单个交互式用户保留的。

我在这里查看函数列表:http: //msdn.microsoft.com/en-us/library/ms687107 (v=VS.85).aspx

我可以枚举机器上的窗口站,但是如何识别哪个窗口站连接到哪个用户/进程/会话?

每个窗口站都连接到一个会话每个进程都有一个目标窗口站

但是,例如,如果我有一个进程或会话 ID,我如何确定它与哪个 Window Station 相关联?

0 投票
4 回答
18594 浏览

c# - 如何获取当前登录用户的会话 ID?

我正在使用 Windows 服务内部运行一个进程

问题是,如果我在本地系统帐户下运行服务,它运行正常,但它不显示程序的窗口。我尝试将用户凭据放入服务属性中,但随后“允许服务与桌面交互”复选框变为禁用状态。

我真的需要运行从服务调用它的应用程序,我真的需要查看应用程序的窗口。

请帮帮我。

UPD。好吧,您使用重载版本的 Process.Start 需要用户名、密码和域 - 它会将程序拉到桌面。但现在它在一个凭据下启动应用程序,但在不同用户的桌面上显示。怎么会?

UPD2:我有个主意!我可以使用 Sysinternals Suite 中的 psexec.exe。但问题是我需要“以管理员身份”默默地启动那个东西。而且我不知道怎么做。我的意思是即使您已经拥有管理员权限,有时您也必须手动说“以管理员身份运行”,确认 UAC,然后才可以开始使用。我不知道不带 UAC 的东西如何默默地运行一些东西....

UPD3:亲爱的主。我有那个东西!最后。

行。一开始,问题确实出在会话 0 隔离中。所以我需要构建一个可以从服务启动的中间应用程序,然后该应用程序又假设通过 RPC 启动我的应用程序并将其带到桌面。我决定使用 psexec 工具而不是构建中间层应用程序(无论如何它完全按照我需要的方式工作 - 通过 RPC)。当我尝试在本地系统帐户下使用该工具时,由于某种原因它不起作用。然后我意识到-原因是MS在每个pstool中都放了该死的EULA弹出对话框,并且无法单击按钮以在本地系统帐户下确认对话框。所以解决方案是在注册表中创建一个密钥 HKU.DEFAULT\Software\Sysinternals\PsExec 与 DWORD 值 EulaAccepted = 1

万岁,现在可以了!但!现在我需要把程序带到当前登录用户的屏幕上。为此,我需要会话 ID!

所以问题是:如何获取当前登录用户的会话 ID?如果还没有人登录会发生什么?那会是什么会话ID?

UPD4:就是这样!我得到了那个!

[DllImport("Kernel32.dll", EntryPoint = "WTSGetActiveConsoleSessionId")] public static extern int WTSGetActiveConsoleSessionId();

谢谢你们!

0 投票
1 回答
711 浏览

windows-vista - 使用 CreateProcessAsUser 从服务运行应用程序

我仍在尝试运行从 Windows 服务调用它的应用程序。我尝试使用Scott Allen 描述的方式。有用。但我仍然无法将应用程序带到屏幕上与之交互。请帮帮我。

即使我告诉它使用我的凭据运行服务,它也不会将应用程序带到我的桌面上。请告诉我如何获取当前登录用户的桌面令牌并在该桌面上运行应用程序。

0 投票
1 回答
4029 浏览

windows-7 - 是否可以以管理员身份静默运行某些东西

如何在 Vista 和 Windows 7 中欺骗 UAC?我如何运行不仅需要管理员权限的东西,而且特别是必须被告知以管理员身份运行的东西。我尝试使用给定的管理员凭据启动进程,甚至尝试使用 win32 函数 CreateProcessAsUser,但除非我手动告诉它“以管理员身份运行”,否则它不会以完全管理员权限运行。如何。如果没有那个该死的愚蠢的 UAC 对话框,我怎么会默默地运行它呢?

0 投票
2 回答
977 浏览

windows-7 - 创建启用了 FS 虚拟化的进程

在禁用 UAC 的情况下,我需要创建一个与启用 UAC 创建的进程具有相同特征的进程 - 基本上我正在模拟启用 UAC 的进程创建。

我唯一的障碍是虚拟化。下面的示例代码应该在启用虚拟化的中等 IL 上创建 notepad 的实例。实际上,它在禁用虚拟化的中等 IL 创建记事本实例。我不完全确定为什么忽略虚拟化令牌。有任何想法吗?

0 投票
1 回答
1880 浏览

windows - CreateProcessWithUser 无法模拟用户,出现错误 87、1349

在从服务运行的 Windows 2003 服务器上,createprocessasuser 失败并出现错误 87,并且来自 WLEXECSERVER 的错误提示无法模拟用户。

在从服务运行的 64 位 Windows 2003 服务器上,createprocessasuser 失败并出现错误 1349。

令牌是使用创建的OpenProcess -> OpenProcessToken(TOKEN_QUERY, TOKEN_DUPLICATE) -> DuplicateTokenEx (WITH GRANT_ALL, PrimaryToken, SecurityImpersonation).

在 WIN7 和 2008 R2 上运行良好,没有问题。

如果我使用 WTSQueryUserToken 获取令牌,它也可以正常工作。

任何人都知道为什么?

0 投票
3 回答
1517 浏览

.net - CreateProcessAsUser 未正确设置用户

使用调用 GUI 应用程序

从 LocalSystem Windows 服务工作。窗口在用户屏幕中弹出,但进程用户仍然是LocalSystem。有什么办法可以改变吗?

PS根据要求,我hUserTokenDup

0 投票
1 回答
2728 浏览

c++ - 如何 CreateProcessAsUser 并使其成为前台窗口?

我正在尝试使用CreateProcessAsUser但窗口不作为前景窗口来启动 UI。

我不介意它是否是一个普通窗口,但是这个窗口会触发 UAC 提示,并且它也不会显示在前台。