Call Process.GetProcesses by specifying/impersonating another account?
-
08-06-2021 - |
Frage
By using Process.GetProcesses
, we can list running processes in a remote computer, e.g.
Process [] allRemoteProcesses = Process.GetProcesses("myRemoteComputer");
However, this seems to depend on the permission of my account. It throws exception "Couldn't connect to remote machine." if the running user does not have access to the remote machine. Can I specify another account to be used by .NET when checking the processes, similar to the -u
and -p
switches in PsList?
Lösung
What I've done before is use something similar to what's described in this article.
using (new Impersonator("user", "domain", "pass"))
{
Process[] allRemoteProcesses = Process.GetProcesses("myRemoteComputer");
// Rest of code...
}
An alternative is use to use WMI and query for the processes like what's described here.
Andere Tipps
For the same problem, turning on the remote registry service in the remote registry worked for me!
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow