Как определить, повышен ли конкретный процесс с помощью 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
параметр, так что вы можете проверить любой, а не только текущий.
В общем, этот класс делает все, что вам нужно. Он проверяет свойства безопасности, назначенные процессу. Я думаю, что код говорит сам по себе.
КСТАТИ. Если вы считаете, что код подходит для ваших нужд, отметьте ваш вопрос как "дубликат" этого вопроса - это поможет другим найти этот код.