首先,在Win7/Win8等上执行代码没有问题。这个问题只存在于Windows XP上。代码在一个按钮中,基本上将 taskmgr.exe 作为另一个用户凭据运行(本地管理员凭据,这是一个 Kiosk PC,它加载一个可以登录的 C# 应用程序,然后加载 cmd.exe/taskmgr.exe 作为本地管理员不受链接到 Kiosk 用户的 GPO 的影响)。
但是,在 XP 上,单击按钮时出现错误:存根收到错误数据。
代码:
private void btnTaskMgr_Click(object sender, EventArgs e)
{
string password = "myPassword";
SecureString secureString = new SecureString();
foreach (char chr in password) secureString.AppendChar(chr);
ProcessStartInfo processAdmin;
processAdmin = new ProcessStartInfo();
processAdmin.UseShellExecute = false;
processAdmin.Password = secureString;
processAdmin.UserName = "admin";
processAdmin.FileName = "taskmgr.exe";
processAdmin.WorkingDirectory = "C:\\Windows\\System32";
Process.Start(processAdmin);
}