/// <summary> /// Overridden ProcessRecord method. /// </summary> protected override void ProcessRecord() { switch (ParameterSetName) { case "infoonly": WriteObject(QueryProcessInformation(), true); break; case "all": WriteObject(GetProcesses(), true); break; case "pid": case "current": OpenProcess(); break; case "pidinfo": WriteObject(QueryProcessInformation().Where(p => p.ProcessId == ProcessId), true); break; case "nameinfo": WriteObject(QueryProcessInformation().Where(p => p.ImageName.Equals(Name, StringComparison.CurrentCultureIgnoreCase)), true); break; case "service": OpenServiceProcess(); break; case "next": WriteObject(NextProcess?.GetNextProcess(Access) ?? NtProcess.GetFirstProcess(Access)); break; } }