如果您是初次接触 PowerShell 脚本语言,并想学习如何运行 PowerShell 脚本,您来对了博客文章。这篇博客将是一个教程,涵盖了运行脚本的常见方法以及可能出现的一些问题。
先决条件
本文将为您介绍如何在本地计算机上运行 PowerShell。如果您想跟着学,请确保在开始本文之前已经具备以下先决条件。
- A Windows 10 computer with Administrator privileges.
- Windows PowerShell 版本 5 或更高版本。您也可以使用 PowerShell v7。本教程将重点介绍 Windows PowerShell,因为 Windows 操作系统已经预装了它。
- 任何文本文件编辑器
处理执行策略
如果这是您第一次尝试执行 Windows PowerShell 脚本,您可能会遇到一个常见问题。PowerShell 可能会返回一个错误消息,指出脚本“无法加载,因为在此系统上禁止运行脚本”。
PowerShell在执行策略设置为Restricted、Remote Signed或All Signed时返回上述错误消息。
Restricted
是Windows客户端计算机的默认策略集。如果您第一次使用PowerShell,您的默认策略可能被设置为限制所有脚本。
您仍然可以在终端中执行单个命令,但不能运行脚本文件。限制包括以.ps1xml
、.psm1
或.ps1
结尾的任何文件。
Unrestricted
允许您运行任何脚本,但在执行之前会警告您,如果脚本是从互联网下载的。这通常是任何非Windows设备的默认策略。
Remote Signed
Remote Signed策略允许您运行数字签名的脚本,或者在本地计算机上编写的带有或不带有签名的任何脚本。
如果从互联网下载的脚本没有签名,您需要解锁该文件。您可以右键单击文件,选择属性来执行此操作。或者,您可以使用Unblock-File
PowerShell cmdlet来解锁特定的脚本文件。
在从互联网下载的脚本中运行时,使用Remote Signed策略是一个理想的选项。
All Signed
All Signed要求所有脚本都由受信任的发布者数字签名。这包括从互联网下载和在本地计算机上编写的脚本。
更改 PowerShell 执行策略
要更改执行策略:
- 以管理员身份打开 Windows PowerShell 以确保您具有最高权限来进行策略更改。

2. 打开后,运行以下 PowerShell 命令来设置计算机的执行策略。如上所述,执行策略可以是三种不同类型之一。本教程使用了一个既有用又安全的执行策略,即RemoteSigned。
由于本教程假定您已从互联网下载了GetServices.ps1脚本文件,请将执行策略设置为RemoteSigned。
RemoteSigned执行策略会强制您在 PowerShell 在您的系统上运行之前对从互联网下载的每个 PowerShell 脚本进行加密签名。
3. 您应该看到一个输出请求确认操作。输入Y并按回车键确认策略更改。
此时,请按照下一步来探索在您的计算机上运行 PowerShell 脚本的不同方法。
如何运行 PowerShell 脚本
要演示运行 PowerShell 脚本,实际上你需要一个脚本文件来运行!如果你手头没有一个,下载这个 ZIP 文件并提取其中的 PS1 文件。你会在里面找到一个名为 GetServices.ps1 的简单脚本文件。
每个 PowerShell 脚本都应以
.ps1
扩展名结尾。
使用控制台
一旦你准备好一个脚本,你可以以几种不同的方式执行 PowerShell 脚本文件。其中一种最常见的方式是通过 PowerShell 控制台。
要做到这一点:
- 打开 PowerShell 控制台如上所示。
2. 使用 Set-Location
PowerShell cmdlet 或 cd
别名导航到脚本所在的文件系统位置。本教程的脚本位于 C:\Temp 目录中。
3. 使用点号 (.
) 符号运行脚本。PowerShell 是一个也会查找命令名称的 shell。为了区分 PowerShell 命令和脚本,你必须在脚本前加一个点。这个点表示当前目录。
如何通过 PowerShell 位置从命令行运行 PowerShell 脚本
如果你不能或者宁愿不通过 PowerShell 控制台运行脚本,你也可以通过老式的命令行(命令提示符)来执行。
要通过命令提示符运行脚本,您必须首先启动 PowerShell 可执行文件(powershell.exe),使用 PowerShell 的位置 C:\Program Files\WindowsPowerShell\powershell.exe
,然后将脚本路径作为参数传递给它。
您可以通过在运行 PowerShell 可执行文件时简单地指定参数来在任何上下文中运行带有参数的脚本,例如
powershell.exe -Parameter 'Foo' -Parameter2 'Bar'
。
一旦您打开 cmd.exe,您就可以执行如下的 PowerShell 脚本。此示例正在运行引擎并将脚本路径作为参数传递给它 C:\Temp\GetServices.ps1。
请注意下面的示例正在使用 PowerShell 位置路径来运行脚本。如果文件夹不在您的路径中,则必须执行此操作。
PowerShell 7 的 PowerShell 位置使用了一个名为 pwsh.exe 的不同可执行文件,通常位于 C:\Program Files\PowerShell\7\pwsh.exe。
以下是一个便捷的 YouTube 视频,介绍了通过批处理文件执行脚本的方法,即 cmd.exe 执行。
使用 PowerShell ISE
如果您创建自己的脚本或编辑其他人的脚本,您可能会使用一个脚本编辑器,比如 PowerShell ISE 或者 Visual Studio (VS) Code。由于 ISE 随 Windows 附带,让我们专注于这种方法进行教程。
为调用ISE中的脚本:
- 导航到开始菜单,搜索PowerShell ISE并打开。

2. 点击文件 → 打开,找到您的脚本。

3. 打开脚本后,点击绿色运行按钮以执行脚本。此按钮将在底部的内置PowerShell终端中调用脚本。

示例脚本的输出
A PowerShell script can sometimes return output. This happens when the script you’re executing is built to return objects which is a fundamental component of PowerShell.
如果运行示例GetServices.ps1脚本,您将看到以下内容。此脚本运行Get-Service
cmdlet,返回安装在本地Windows计算机上的所有服务。
从脚本内运行PowerShell脚本
假设您有两个脚本,您想让一个调用另一个。也许您有一个名为GetUser.ps1的脚本和一个名为ResetPassword.ps1的脚本。在GetUser.ps1脚本中,您想执行ResetPassword.ps1以重置用户密码。
在调用脚本(GetUser.ps1)中,您会添加一行代码来执行另一个脚本,就像您从命令行调用脚本一样。
您可以看到下面有几个选项。通常,除非有特定原因要在另一个PowerShell会话中运行脚本,否则应选择在相同的会话或范围内运行另一个脚本以简化事务。