Как получить разрешения на использование System.Diagnostics.Process.GetProcess(строка)?
Я использую Microsoft Visual Studio, чтобы сделать простой удаленный диспетчер задач для удобства работы.
Я хочу использовать Process.GetProcesses(string);
но есть исключение, запрещающее доступ, которое не позволяет мне получить процесс удаленного компьютера. На самом деле это нормально, потому что мы должны аутентифицироваться, используя имя пользователя и пароль, но как?
3 ответа
Вы можете попытаться использовать 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 см. MSDN.
НТН
РЕДАКТИРОВАТЬ: Просто прочитайте ваше сообщение еще раз, шаги, описанные в моем сообщении, применяются только в домене, я предполагаю, что вы работаете в рабочей группе. Мне жаль.
Недавно я столкнулся с подобной проблемой при запуске Visual Studio с правами администратора в Windows 7. Похоже, что разрешения на удаленных компьютерах и общих сетевых ресурсах пропадают (даже в домене!), Если вы повышаете уровень своей программы до уровня локального администратора, что будет случай, если вы запускаете программу из VS, когда VS запускается от имени администратора. Это даже происходит, если у вас есть учетные записи администратора домена.
Попробуйте следующее:
- Постройте решение
- Запустите его вручную с учетной записью, которая, как мы надеемся, имеет права на удаленном компьютере из проводника Windows, без повышения прав
Если это поможет, вы можете прекратить запуск VS от имени администратора. Это сработало для меня.
Я почти уверен, что для этого нужно повышение прав или, по крайней мере, использование более сильного пользователя с помощью имитации