如何以管理员身份运行PowerShell脚本

5,511 阅读5分钟

PowerShell是一个面向对象的命令行自动化工具,主要由系统管理员和IT专家用于自动化与操作系统有关的各种任务。PowerShell有其扩展版本,称为PowerShell ISE。它允许你创建脚本并运行它们。PowerShell ISE控制台由两部分组成:一个脚本窗格和一个输出窗格。脚本是在脚本窗格中编写的,而脚本的输出可以在输出窗格中看到。

PowerShell ISE支持两种类型的用户权限。

标准权限:这 类权限只能做特定的任务。例如,由于安全问题,你不能使用所有专门要求 "以管理员身份运行"的系统功能。为了克服这个问题,建议使用PowerShell的管理员权限。

管理员权限: 这个权限允许你完成所有的任务,包括标准权限的任务。

在这篇文章中,我们将说明用管理员权限运行PowerShell脚本的各种方法。

方法1

打开你的PowerShell ISE的一个主要方法。

点击任务栏上的 "搜索"图标。打开后,输入 "PowerShell ISE"进行搜索。右键点击 "PowerShell ISE",并点击 "以管理员身份运行"。

一旦它被打开,你可以写一个脚本,保存它,并使用管理员权限执行它。

方法2

在这个方法中,我们将使用Windows内置的 "运行"对话,以管理员身份运行脚本。

按 "Windows键+R"来打开 "运行"对话框。对话框打开后,输入 "PowerShell ISE"并点击确定。

可以看到,该脚本是以标准权限打开的。

方法3

我们也可以使用PowerShell cmdlet "Start-Process"和一个标志"-Verb"将标准脚本重定向到管理员脚本。复制并粘贴以下命令来重定向到管理员权限。

> Start-Process PowerShell ISE -Verb runAs

当你执行该命令时,另一个PowerShell ISE控制台将以管理员权限打开。

方法4

这种方法用于使用Windows任务管理器打开PowerShell。首先,从你的键盘上按 "ctrl+shift+esc"来打开任务管理器。

一旦它被打开,导航到任务管理器的菜单栏上的 "文件"选项。

点击 "文件",你会得到两个选项。你必须点击 "运行新任务"。

通过点击 "运行新任务",一个 "运行"对话框将被打开。

在 "运行"的搜索栏中输入 "PowerShell ISE"。要以管理员权限运行,请勾选搜索栏下面的选项,然后点击 "确定"来运行该任务。

方法5

你可以使用内置的Windows任务调度器,以管理员身份执行PowerShell ISE。首先,你必须打开任务调度器。点击任务栏中的搜索图标,然后输入 "任务调度器"。

一旦它被打开,你可以在 "行动"选项卡下看到 "创建任务"选项。点击 "创建任务"选项。

它将打开一个新的窗口。在这里,你必须输入一些信息,如任务的 "名称"。你可以为任务设置任何名称。你必须选择 "以最高权限运行"选项,以管理员身份运行该任务。然后,从下拉菜单 "为其配置"中选择你的操作系统。

在定制了这个标签后,点击菜单栏上给出的 "行动"标签。点击 "新建",向任务添加一个动作。

你必须给出 "PowerShell ISE"文件的**.exe**路径,它可以在这里找到。

32bit Operating System C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe

64bit Operating System C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe

或者

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe

给出ISE文件的路径并点击 "OK"。

点击 "OK",完成任务的创建。新任务被添加到**"**Task Scheduler Library"的 "Task Scheduler "中。要运行该任务,点击 "任务调度库",你会发现一个任务 "PowerShell ISE"。点击该任务并运行该任务。PowerShell ISE将以管理员权限启动。

除了这些方法之外,还可以对PowerShell ISE进行一些检查。

如何检查PowerShell ISE的权限

假设你正在使用PowerShell或PowerShell ISE。在这种情况下,你可以进行安全检查以确认当前会话是否使用了管理员权限。在PowerShell终端复制并粘贴以下命令。

> [Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544'

注意:有两种可能性。

False :如果PowerShell ISE的当前会话没有使用管理员权限,那么它将返回 "False"。

True:如果命令的输出返回 "True",那么意味着你是以管理员权限运行脚本。

如何限制脚本以管理员身份运行

如果你忘记以管理员身份运行脚本,PowerShell脚本有一个检查选项。它将检查脚本的权限。如果脚本是以管理员身份运行的,它将启用脚本的执行。但是,如果该脚本没有使用管理权限,它将不允许执行。在PowerShell ISE脚本中复制并粘贴以下命令来检查。

> #Requires -RunAsAdministrator

我们创建了一个简单的脚本,打印出一个整数值,并将脚本保存为 "check.ps1"。如果该脚本没有使用管理员权限,那么它将显示如下图所示的错误信息。

我们将尝试运行相同的脚本**(check.ps1**),要求完全相同。但是,我们是以管理员权限打开PowerShell的。在这种情况下,它将不会停止脚本的执行,如下图所示。

结论

在一个安全的计算环境中,用户的权限被仔细分配并严格监控。所有这些限制都与各自组织或公司的隐私和安全有关。因此,为了获得更好的隐私,应该对用户的权限进行相应的分配。

在这篇文章中,我们已经展示了用管理员权限打开PowerShell脚本的不同方法。这个指南将使你能够限制PowerShell脚本只能以管理员权限运行。此外,你也可以检查当前PowerShell会话的权限。