Глагол Runas не поднимается на определенных компьютерах с Windows 10 - PullRequest
0 голосов
/ 22 октября 2018

У меня действительно странная проблема, когда некоторый код, который мы выполняли годами, перестал работать на определенных машинах.Не существует очевидного шаблона для компьютеров (с точки зрения номера сборки 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, но она также не работает на «плохих» машинах.Результат несколько отличается:

enter image description here

Обратите внимание, что в этом случае "Running as Administrator" в строке заголовка.(Тот же тест на «хорошем» компьютере дает тот же результат, что и на первом рисунке выше, а именно: Administrator: C:\windows\system32\cmd.exe)

...