Я создал настольное приложение C#, которое успешно форматирует/переименовывает/очищает жесткие диски с использованием прав администратора (не рекомендуется, но единственный вариант)
Проблема в том, что когда я удаленно подключаюсь к ПК и запускаю приложение, мне отказывают в доступе ошибка. Если я удаленно использую компьютер, я могу запустить CMD с повышенными правами и отформатировать диск. Если пользователь, не являющийся администратором, физически войдет в компьютер и запустит приложение, оно будет работать должным образом.
Я думаю, проблема связана с удаленной аутентификацией.
Вот вырезанный код:
var domain = ConfigurationManager.AppSettings["Domain"];
var adminUserText = ConfigurationManager.AppSettings["AdminUser"];
var adminPasswordText = ConfigurationManager.AppSettings["AdminPassword"];
var password = new SecureString();
foreach (char c in adminPasswordText)
{
password.AppendChar(c);
}
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = command,
UseShellExecute = false, // Required to use 'runas' for elevated privileges
Verb = "runas",
Domain = domain,
UserName = adminUserText,
Password = password,
RedirectStandardError = true,
RedirectStandardOutput = true,
CreateNoWindow = true
};
try
{
using (Process process = Process.Start(startInfo))
{
// Process output handling
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.WaitForExit();
if (!string.IsNullOrEmpty(error))
{
}
else
{
}
}
}
catch (Exception ex)
{
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -remote-pc