在特定的Windows 10计算机上,Runas动词没有提升

时间:2018-10-22 11:01:43

标签: c# permissions administrator runas

我有一个非常奇怪的问题,我们运行了多年的某些代码已停止在某些计算机上运行。机器没有明显的模式(就Win10内部版本号或补丁程序级别而言)。

该代码旨在以本地管理员身份运行应用程序,如下所示:

string strPwd = "MySecretPassword";

SecureString securePassword = new SecureString();
foreach (char ch in strPwd)
{
    securePassword.AppendChar(ch);
}

ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.UserName = "Administrator";
processInfo.Password = securePassword;
processInfo.Verb = "runas";
processInfo.FileName = "cmd.exe";
processInfo.WorkingDirectory = @"c:\windows\system32";
processInfo.UseShellExecute = false;
Process.Start(processInfo);

如果在“运行中”的计算机上运行此命令,则会看到以下内容(请注意,echo test > c:\test.txt是我测试其是否可以执行受限任务的方式):

enter image description here

请注意CMD窗口上的“管理员”。另外,请注意,允许在c:的根目录下创建文件。

相比之下,如果我在另一台计算机上运行相同的代码,则会得到以下信息:

enter image description here

请注意,在这种情况下(运行完全相同的代码),窗口不会提升运行。奇怪的是,如果我在任务管理器中查看该过程,则所有者是管理员。

在两台计算机上:

  1. 我正在使用默认的管理员帐户
  2. 密码正确
  3. 该帐户在管理员组中
  4. 该帐户未禁用

此外,在“故障”计算机上,如果我右键单击并选择RunAs并输入管理员凭据,则可以完美运行。 (结果与上面的第一张图片相同。)

作为一项额外的测试,我尝试使用DOS runas命令,但这在“不良”计算机上也不起作用。结果却有些不同:

enter image description here

在这种情况下,请注意标题栏中的“ Running as Administrator”。 (在“好的”机器上进行的相同测试得出的结果与上面的第一张图片相同,即:Administrator: C:\windows\system32\cmd.exe

0 个答案:

没有答案