Как получить разрешения на использование System.Diagnostics.Process.GetProcess (строка)? - PullRequest
5 голосов
/ 20 июля 2011

Я использую Microsoft Visual Studio, чтобы сделать простой удаленный диспетчер задач для удобства работы.

Я хочу использовать Process.GetProcesses(string);, но есть исключение из-за отказа в доступе, которое не позволит мне получить процесс удаленного компьютера.На самом деле это нормально, потому что мы должны аутентифицироваться, используя имя пользователя и пароль, , но как ?

Ответы [ 3 ]

2 голосов
/ 20 июля 2011

Вы можете попытаться использовать WMI для этой цели

/// using System.Management;  
// don't forget! in VS you may have to add a new reference to this DLL
ConnectionOptions op = new ConnectionOptions();
op.Username = "REMOTE_USER";
op.Password = "REMOTE_PASSWORD";

ManagementScope sc = new ManagementScope(@"\\REMOTE_COMPUTER_NAME\root\cimv2", op);

ObjectQuery query = new ObjectQuery("Select * from Win32_Process");

ManagementObjectSearcher searcher = new ManagementObjectSearcher(sc, query);
ManagementObjectCollection result = searcher.Get();

foreach (ManagementObject obj in result)
{
     if (obj["Caption"] != null) Console.Write(obj["Caption"].ToString() + "\t");
     if (obj["CommandLine"] != null) Console.WriteLine(obj["CommandLine"].ToString());
}

Для получения дополнительной информации о Win32_Process class см. MSDN.

hth

1 голос
/ 20 июля 2011

РЕДАКТИРОВАТЬ : Просто прочитайте ваше сообщение еще раз, шаги, описанные в моем сообщении, применимы только к домену, я предполагаю, что вы работаете в рабочей группе.Мне жаль.

Недавно я столкнулся с подобной проблемой при запуске Visual Studio с правами администратора в Windows 7. Похоже, что разрешения на удаленных компьютерах и общих сетевых ресурсах сбрасываются (даже в домене!), Если вы повышаете уровень своей программы для запуска от именилокальный администратор, который будет иметь место, если вы запускаете программу из VS, когда VS запускается от имени администратора.Это даже происходит, если у вас есть учетные записи администратора домена.

Попробуйте выполнить следующее:

  • Постройте решение
  • Запустите его вручную с вашей учетной записью, которая, как мы надеемся, имеет привилегии на удаленном компьютере из проводника Windows, без повышения прав

Если это поможет, вы можете прекратить запуск VS от имени администратора.Это сработало для меня.

0 голосов
/ 20 июля 2011

Я почти уверен, что для этого вам требуется повышение или, по крайней мере, использование более сильного пользователя путем олицетворения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...