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 6.266 seconds |