如果Powershell不以管理员身份运行,则停止脚本

时间:2017-02-23 18:05:45

标签: powershell

我在安装新笔记本电脑时得到了一个脚本。

有时会忘记以管理员身份运行它。

是否可以停止脚本并显示一个消息框,如果它没有以管理员身份运行?

1 个答案:

答案 0 :(得分:0)

([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

这将检索当前的Windows标识,如果当前标识具有管理员角色(即运行已提升),则返回True。

从那里你可以将它包装在if -not块中并显示一个消息框,如下所示:

if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    [System.Windows.Forms.Messagebox]::Show("Not running as administrator!");
}

注意:这是基于此答案:https://superuser.com/a/756696