I work off of a multi-user Windows Server, and the rdpclip bug bites us all daily. We usually just open task manager and kill then restart rdpclip, but that's a pain in the butt. I wrote a powershell script for killing then restarting rdpclip, but no one's using it because it's a script (not to mention the execution policy is restricted for the box). I'm trying to write a quick and dirty windows app where you click a button to kill rdpclip and restart it. But I want to restrict it to the current user, and can't find a method for the Process class that does this. So far, here's what I have:
Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist)
{
if (theprocess.ProcessName == "rdpclip")
{
theprocess.Kill();
Process.Start("rdpclip");
}
}
I'm not certain, but I think that's going to kill all the rdpclip processes. I'd like to select by user, like my powershell script does:
taskkill /fi "username eq $env:username" /im rdpclip.exe
& rdpclip.ex
I suppose I could just invoke the powershell script from my executable, but that seems fairly kludgy.
Apologies in advance for any formatting issues, this is my first time here.
UPDATE: I also need to know how to get the current user and select only those processes. The WMI solution proposed below doesn't help me get that.
UPDATE2: Ok, I've figured out how to get the current user, but it doesn't match the process user over Remote Desktop. Anyone know how to get username instead of the SID?
Cheers, fr0man