Tôi đang cố gắng để giết một quá trình trên một máy từ xa. Nhưng tôi gặp lỗi. Tôi đang làm gì sai và làm cách nào tôi có thể thực hiện công việc này?quá trình giết trên máy tính từ xa
Mã của tôi:
var iu = new ImpersonateUser();
try
{
iu.Impersonate(Domain, _userName, _pass);
foreach (var process in Process.GetProcessesByName("notepad", "RemoteMachine"))
{
string processPath = pathToExe; //Is set as constant (and is correct)
process.Kill();
Thread.Sleep(3000);
Process.Start(processPath);
}
}
catch (Exception ex)
{
lblStatus.Text = ex.ToString();
}
finally
{
iu.Undo();
}
Chỉ cần làm rõ ImpersonateUser, nó làm cho tôi đăng nhập vào máy từ xa với quyền sử dụng chính xác. Vì vậy, vấn đề là không có. Khi tôi gỡ lỗi và kiểm tra đối tượng quy trình, tôi tìm thấy ID quá trình chính xác cho notepad trong trường hợp này. Vì vậy, kết nối hoạt động tốt. Nhưng khi tôi cố gắng để giết chết quá trình tôi nhận được lỗi này:
System.NotSupportedException: Feature is not supported for remote machines. at System.Diagnostics.Process.EnsureState
Từ câu trả lời trước đó mà tôi đã xóa: Từ tài liệu của Micrsoft về 'Process.Kill': [Bạn đang cố gắng gọi Kill cho quá trình đang chạy trên máy tính từ xa. Phương pháp này chỉ áp dụng cho tiến trình đang chạy trên máy tính cục bộ.] (http://msdn.microsoft.com/en-us/library/system.diagnostics.process.kill%28v=vs.110%29.aspx) – JoelC
Duplicate - http://stackoverflow.com/questions/348112/kill-a-process-on-a-remote-machine-in-c-sharp?rq=1 – vapcguy