返回

解决使用 CreateProcessWithTokenW 启动窗口 GUI 时图形外观和性能差异问题

windows

使用 CreateProcessWithTokenW 启动基本窗口 GUI 的图形外观和性能

问题

尝试使用 CreateProcessWithTokenW 启动基本窗口 GUI,但发现应用程序的图形外观和性能与使用 CreateProcessWithLogon 启动时不同。

解决方法

使用 LogonUserEx 登录其他用户

使用 LOGON32_LOGON_INTERACTIVE 类型登录其他活动目录用户。

添加适当的窗口工作站 ACE

在 Winsta0\Default Windows Station 中添加适当的窗口工作站 ACE。

添加适当的桌面 ACE

在桌面上添加适当的桌面 ACE。

复制令牌

复制令牌。

使用 CreateProcessWithTokenW 启动应用程序

使用 CreateProcessWithTokenW 启动应用程序。

已知问题

图形外观和性能差异

与通过 CreateProcessWithLogon 直接使用用户名和密码启动的应用程序相比,使用 CreateProcessWithTokenW 启动的应用程序在图形外观和性能方面存在差异。

可能原因

CreateProcessWithToken 启动全功能图形窗口应用程序可能需要额外的安全权限或操作。

可能的解决方案

  • 授予用户访问 GUI 子系统的权限。
  • 确保用户具有创建和管理窗口的权限。
  • 检查应用程序是否需要任何其他权限才能正确显示和执行。
  • 检查应用程序是否依赖于任何特定的环境变量或注册表设置。

附加信息

结论

通过遵循上述步骤,您可以解决使用 CreateProcessWithTokenW 启动基本窗口 GUI 时遇到的图形外观和性能差异。

常见问题解答

  1. 为什么使用 CreateProcessWithTokenW 启动的应用程序会出现图形差异?
    可能是因为应用程序需要额外的安全权限或操作。

  2. 如何授予用户访问 GUI 子系统的权限?
    通过修改组策略或使用 Net User 命令。

  3. 如何在桌面中添加适当的 ACE?
    使用 cacls 命令或 SetACL 工具。

  4. 为什么应用程序需要复制令牌?
    为了启动应用程序时使用其他用户的凭据。

  5. 使用 CreateProcessWithTokenW 启动应用程序有什么好处?
    允许使用其他用户的凭据启动应用程序,即使您没有该用户的密码。