Как определить, повышен ли конкретный процесс с помощью dotnet или powershell

Как я могу определить, повышен ли конкретный процесс или нет. Этот процесс отличается от процесса, в котором выполняется мой код. Я хотел бы иметь возможность сделать это с PowerShell или C#.

2 ответа

Может быть, это может помочь

Get-Process |
Add-Member -Name Elevated -MemberType ScriptProperty -Value {if ($this.Name -in @('Idle','System')) {$null} else {-not $this.Path -and -not $this.Handle} } -PassThru |
Format-Table Name,Elevated

С http://www.powershellmagazine.com/2013/03/29/pstip-detecting-if-a-certain-process-is-elevated/

Пожалуйста, попробуйте этот ответ: /questions/26089348/opredelit-rabotaet-li-ot-imeni-administratora-s-povyishennyimi-privilegiyami-ili-bez-nih/26089365#26089365

Тот UacHelper потребуются некоторые незначительные изменения. Подобно, IsProcessElevated использования OpenProcessToken на CurrentProcess - вам нужно будет изменить IsProcessElevated для функции и сделать Process параметр, так что вы можете проверить любой, а не только текущий.

В общем, этот класс делает все, что вам нужно. Он проверяет свойства безопасности, назначенные процессу. Я думаю, что код говорит сам по себе.

КСТАТИ. Если вы считаете, что код подходит для ваших нужд, отметьте ваш вопрос как "дубликат" этого вопроса - это поможет другим найти этот код.

Другие вопросы по тегам