Example #1
0
        /// <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;
            }
        }