作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 Windows 7 中运行的服务。在 Windows 7 中,所有服务都在 session 0 中运行。我想从该服务创建一个交互式用户 session (在 session 0 以外的 session 中)并在该 session 中启动一个应用程序。我的问题是,当我调用 LogonUser 启动交互式用户 session ,然后使用 CreateProcessAsUser 启动应用程序时,应用程序最终在 session 0 中运行。
我的所有代码都是 C#。
相关代码如下:
[DllImport("advapi32.dll", SetLastError=true)]
static extern bool LogonUser(
string principal,
string authority,
string password,
UInt32 logonType,
UInt32 logonProvider,
out IntPtr token);
[DllImport("advapi32.dll", SetLastError=true)]
static extern bool CreateProcessAsUser(
IntPtr hToken,
string lpApplicationName,
string lpCommandLine,
IntPtr lpProcessAttributes,
IntPtr lpThreadAttributes,
bool bInheritHandles,
int dwCreationFlags,
IntPtr lpEnvironment,
string lpCurrentDirectory,
ref STARTUPINFO lpStartupInfo,
ref PROCESS_INFORMATION lpProcessInformation);
IntPtr token;
LogonUser("UserName", ".", "Password",
LogonTypes.Interactive,LogonProviders.Default, out token)
<code to impersonate user>
string hd = Environment.ExpandEnvironmentVariables("%USERPROFILE%");
IntPtr envBlock = IntPtr.Zero;
CreateProcessAsUser(token, "PathToMenu.exe",
NORMAL_PRIORITY_CLASS |CREATE_UNICODE_ENVIRONMENT,
"WinSta0\\Default", hd, envBlock, "Menu");
谁能告诉我我做错了什么?
最佳答案
尝试从 Vista/7 中的服务启动进程时,可能会出现大量错误。我建议您从 this 开始文章并根据您的需要进行调整。我可以告诉您,我已经多次使用和修改了本文中的代码,并且它有效。很抱歉,我无法向您展示,因为修改后的代码属于我公司。
关于c# - 如何从 Windows 7 服务启动 session 1 中的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824170/
我是一名优秀的程序员,十分优秀!