我想找到一种方法,使用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
答案 0 :(得分:3)
这是两个常用选项:
在脚本中使用#requires -RunAsAdministrator
行(需要PowerShell 3.0或更高版本)。如果您在脚本顶部使用此行,则会产生终止错误,并且如果当前进程未被提升,则不会执行。
使用以下代码检测当前进程是否已提升:
$IsElevated = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)