ProcessExtensions扩展取自https://github.com/murrayju/CreateProcessAsUser
近几天在使用system权限执行cmd的时候遇到程序不会在当前桌面用户会话下显示,通过测试找到了通过CreateProcessAsUser和获取用户token的解决方案,做了个控制台程序,下面是部分代码:
class Program
{
static void Main(string[] args)
{
switch (args.Length)
{
case 1:
ProcessExtensions.StartProcessAsCurrentUser(args[0]);
break;
case 2:
ProcessExtensions.StartProcessAsCurrentUser(args[0], args[1]);
break;
case 3:
ProcessExtensions.StartProcessAsCurrentUser(args[0], args[1], args[2]);
break;
default:
Console.WriteLine("example:psrunas notepad.exe paraments workingdir");
break;
}
}
}
完整工程请下载:psrunas.zip
63 queries in 1.898 seconds |