我正在尝试通过.Net进程重置Windows本地管理员密码,如下所示:
int retVal;
string pEXE = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\cmd.exe";
if (System.IO.File.Exists(pEXE))
{
Process P = new Process();
P.StartInfo.FileName = pEXE;
P.StartInfo.Arguments = "/c " + "net user lAdmin 123";
P.StartInfo.UseShellExecute = false;
P.StartInfo.CreateNoWindow = true;
P.StartInfo.RedirectStandardError = true;
P.StartInfo.RedirectStandardOutput = true;
P.StartInfo.RedirectStandardInput = true;
P.Start();
P.WaitForExit();
retVal = P.ExitCode;
}
在两种不同情况下:[1]如果本地管理员帐户用户名是“ lAdmin”,则退出代码将是“ 0”,这表示成功。[2]如果本地管理员帐户用户名是“ Administrator”,则退出代码将是“ 2”,即“系统找不到指定的文件”,但是,如果我在Windows命令提示符下运行此命令,则会得到错误代码“ 2221”是“找不到用户名”。
Process test = new Process();
test.StartInfo.FileName = "cmd.exe";
test.StartInfo.Arguments = @"/c fc /b /a C:\temp\debug\1.txt C:\temp\debug\2.txt";
test.StartInfo.RedirectStandardError = true;
test.StartInfo.RedirectStandardOutput = true;
test.StartInfo.UseShellExecute = false;
test.StartInfo.CreateNoWindow = true;
test.Start();
test.WaitForExit();
printLog(test.ExitCode.ToString());
return;
遵循此代码...