Windows 11 Pro ISO文件在哪下载最新版?如何下载原装纯净版Win11 ?点击进入 持续更新!
如何检查PowerShell脚本是否正在以管理员权限运行
如果使用PowerShell在Windows上自动执行管理功能,有时检查脚本是否在本地管理员帐户的上下文中运行可能很有用。这就是所谓的“跑步升高”或“升高”。许多Windows 10配置设置,尤其是那些在系统范围内且影响所有用户的配置,都需要管理员权限才能更改。
但是PowerShell没有cmdlet或内置函数,该函数无法让您检查登录用户是否是Administrators组的成员,这可能导致脚本失败。为了解决该问题,您可以构建一个功能来检查登录用户的安全状态。在本文中,我将向您展示如何创建函数以及如何在代码中调用它。
使用.NET WindowsIdentity类检查高度
PowerShell基于.NET,因此,当没有cmdlet来解决问题时,它使我们可以调用.NET API。.NET WindowsIdentity类(在.NET和.NET Core中可以访问)使您执行各种检查,包括获取Windows帐户令牌以及检查用户是否具有提升的权限。
第一步是使用WindowsIdentity类创建一个新的PowerShell对象,其中包含有关已登录用户的安全信息。我们分两个步骤进行操作。第一步是获取有关当前用户的信息,并将其存储在变量($ id)中。然后使用这些信息,创建一个新的PowerShell对象($ p),我们稍后使用。
|
1
2
3
|
$id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$p = New-Object System.Security.Principal.WindowsPrincipal($id)
|
现在,我们可以使用IF / ELSE语句确认登录用户的状态。如果用户是管理员,我们将“ True”写入管道。否则,我们写“ False”。
|
1
2
3
4
5
6
7
|
if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))
{ Write-Output $true }
else
{ Write-Output $false }
|
现在,让我们将所有代码放在一起以定义函数并为其命名。我们称之为Check-IsElevated:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function Check-IsElevated
{
$id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$p = New-Object System.Security.Principal.WindowsPrincipal($id)
if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))
{ Write-Output $true }
else
{ Write-Output $false }
}
|
从PowerShell代码中调用函数
剩下要做的就是调用该函数以检查用户是否是管理员。如果用户不是管理员,我们可以将IF语句与-NOT运算符一起使用,以调用该函数并抛出错误以停止脚本。
|
1
2
3
|
if (-not(Check-IsElevated))
{ throw “Please run this script as an administrator” }
|
如果用户是管理员,PowerShell将继续并运行脚本的其余部分。
相关推荐
- Windows 11 25H2 ISO 的下载链接现已在 Microsoft 正式发布之前提供
- Microsoft Edge 消耗太多 RAM?以下是限制内存消耗的方法
- 如何下载和安装 Windows 11 版本 25H2
- Windows 11 25H2在哪下载官方ISO文件,操作方法和教程
- nano11,一个更小的Windows11 镜像! 基于tiny11内核 官方下载
- Windows 11/ Tiny 11精简版系统官方下载
- 微软 Win11/10/7 原版 ISO 光盘镜像文件下载大全 ed2k / 磁力链接下载
- Win11 系统 25H2 版 ISO 镜像文件在 RP 通道上线
- Update Stack Package - (Version 922.415.111.0) 更新认证已过期。请确保日期、时间和时区设置正确,稍后我们将尝试安装更新
- Microsoft Build 2024 上推出适用于 Windows 和 PowerToys 的 AI 驱动功能
- Microsoft Edge 将在 2025 年完全放弃 Adobe 的内置 PDF 引擎
- 如何安装具有新功能的 Windows 11 Moment 5 更新
- 华硕 Rog Ally 在 3 月 Windows 更新后遇到了性能问题
- Microsoft 正在将 Copilot 集成到 Windows 11 文件资源管理器上下文菜单中
- Windows 11 24H2 将更多控制面板功能移至“设置”
- Microsoft 在更改默认设置时停止在 Windows 11 或 10 中推广 Edge
- Windows 11 可能会使用 AI 将您的视频转换为水彩画、卡通和插图
- Microsoft为一款采用单脊折叠技术的新款 Surface 手机申请了专利
- Microsoft 在 Windows 11 上用 Web 应用程序替换经典 Outlook,但不会急于求成
- 如何在Minecraft中制作磁石
Win 11系统之家