检查提升的流程状态?

时间:2018-05-23 15:42:04

标签: powershell

我想找到一种方法,使用Powershell查找进程是否正在运行。

使用案例:能够以提升的特权作为本地域用户运行控制面板任务,例如添加或删除程序。

任何帮助将不胜感激。

#Start add or remove as admin
start-process appwiz.cpl -verb runas

#Check if path exists. Answer is Yes, so process is NOT elevated
get-wmiobject -class win32_process | select-object -properties name, path

1 个答案:

答案 0 :(得分:3)

这是两个常用选项:

  1. 在脚本中使用#requires -RunAsAdministrator行(需要PowerShell 3.0或更高版本)。如果您在脚本顶部使用此行,则会产生终止错误,并且如果当前进程未被提升,则不会执行。

  2. 使用以下代码检测当前进程是否已提升:

    $IsElevated = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
    
相关问题