面向初学者的 Windows PowerShell 脚本编写教程
无论您是技术爱好者还是希望提高脚本编写技能的专业人士,我们都专门为您设计了这个Windows PowerShell 脚本编写教程供初学者使用。因此,如果您事先不了解 PowerShell 脚本编写,这篇文章将从基础知识开始。
我们将引导您完成安装过程,帮助您了解PowerShell环境,并逐步向您介绍PowerShell脚本编写的核心概念和功能。因此,如果您准备好学习 PowerShell 脚本编写,那么让我们一起开始这段赋能之旅吧!
什么是 Windows PowerShell?
PowerShell 由 Microsoft 开发,是命令行 shell 和脚本语言的混合体。它使用户能够自动执行任务并更有效地管理复杂的系统配置。凭借命令行处理、脚本编写功能和系统管理工具,PowerShell 为管理 Windows 操作系统提供了一个无缝且强大的平台。
PowerShell的特点和应用
因此,使用 PowerShell 您可以:
- 使用 cmdlet 进行开发。
- 自动化任务。
- 使用 PowerShell 脚本和 cmdlet 远程管理 Windows 操作系统设备。
- 访问所有类型的 .NET 框架。
- 倾听、转发与管理相关的事件并采取行动
- 通过其简单的语法控制服务器和工作站组件。
- 跨应用程序共享数据。
- 使用 BITS(后台智能传输服务)获得对设备之间文件传输的内置支持。
- 在本地设备或多个远程设备上在后台运行脚本作业。
- 与 VBScript 或其他脚本语言相比,脚本安全。
要了解更多信息,请参阅我们关于什么是 Windows PowerShell 以及升级到最新版本的功能和优势的详细文章。
面向初学者的 Windows PowerShell 脚本编写教程
因此,如果您是系统管理员,您可以利用 PowerShell 有效地解决问题,并避免将来在手动工作上投入时间。也就是说,在本面向初学者的 Windows PowerShell 脚本编写教程结束时,您不仅会学习 PowerShell 脚本编写,而且还会打下坚实的基础。
- 如何启动PowerShell?
- 验证脚本执行策略设置
- 什么是 PowerShell Cmdlet?
- Cmdlet 和命令之间的区别
- 什么是 PowerShell 脚本?
- PowerShell 脚本由哪些组件组成?
- 运行 PowerShell 脚本
1. 如何启动PowerShell?
PowerShell 已预安装在 Windows 中,因此您无需单独下载和安装。那么,启动 PowerShell 的方法如下:
右键单击开始,然后从菜单中选择Windows 终端。
这将打开PowerShell窗口。
要使用管理员权限打开 PowerShell,请右键单击开始,然后选择Windows 终端 (管理员)。
您现在可以在 PowerShell 中运行 cmdlet 或命令。
阅读:如何使用 PowerShell 自动执行任务
2. 验证脚本执行策略设置
出于安全考虑,在 PowerShell 中运行脚本会自动受到限制。因此,我们建议您验证在 PowerShell 中运行脚本的执行策略。要检查 PowerShell 执行策略,您必须创建并运行 PowerShell 脚本文件。
3. 什么是 PowerShell Cmdlet?
cmdlet 是一个简短且轻量级的命令,用于在 PowerShell 中执行特定操作。 Cmdlet 构成了遵循一致语法的 PowerShell 脚本和命令的基本块。它们用 .NET 编写,旨在使用 Get-Process、Stop-Service 或 New-Item 等简短命令执行单一功能。 。所以,这些更像是启动某件事的命令。
阅读:如何使用任务计划程序安排 PowerShell 脚本
4. Cmdlet 和命令之间的区别
也就是说,要学习 PowerShell 脚本编写,您必须了解 cmdlet 和命令之间的区别。 Cmdlet 与其他命令 shell 环境中的命令不同。就是这样:
- Cmdlet 是 .NET Framework 类对象,因此您无法单独运行这些命令。
- Cmdlet 可以轻松创建,因为它们比命令更短。
- 与 PowerShell 不同,cmdlet 不处理错误呈现、解析或输出格式。
- 由于已知 cmdlet 适用于对象,而不适用于文本流和对象。
- Cmdlet 一次仅处理一个对象,因为它们是基于记录的。
对于 PowerShell,差异如下:
- 虽然大多数命令包含 cmdlet,但还有其他类型的命令,例如函数、别名或外部可执行程序。
- Cmdlet 是 PowerShell 中的一种特定类型的命令,但命令可以包含更广泛的操作和功能。
因此,简而言之,cmdlet 是 PowerShell 中的命令,但并非 PowerShell 中的所有命令都一定是 cmdlet。
5. 什么是PowerShell脚本?
现在,为了自动执行管理任务,您将使用 cmdlet、函数、变量等在 PowerShell 中形成语句,此过程称为脚本编写。这是可帮助您自动执行管理任务的 PowerShell 语言。为了完成这些任务,您需要创建步骤,并且这些步骤进一步存储在扩展名为 .ps1 的文件中。该文件是您需要运行的脚本。
因此,以下是构成脚本步骤的组件。
阅读:如何打开或关闭 Windows PowerShell 脚本执行
6. PowerShell 脚本由哪些组件组成?
PowerShell 命令列表
- Get-Process - 获取与系统正在运行的进程相关的详细信息。
- Get-Service - 获取系统上服务的当前状态。
- Get-ChildItem - 提取目录中文件和文件夹的完整列表。
PowerShell 数据类型
一些常见的 PowerShell 数据类型包括:
- 字符串 - 单引号 (‘ ‘) 或双引号 (” “) 内的一系列字符,可以是字母、数字、符号和空格。
- 整数 - 这些是整数减去小数或小数部分。
- Double - 这些是具有小数精度的浮点数。例如,2.15 或-0.2。
- 布尔值 - 这些通常用于条件表达式和比较,可能的值为true或false。
- 哈希表 - 它是一组键值对,其中每个键必须像密码一样唯一。它们主要用于使用命名键存储和检索数据。
- 数组——它是一组属于同一数据类型的有序且有索引的元素。例如,一组名称或整数。要在 PowerShell 中创建数组,您必须将用逗号分隔并括在括号内的值列表分配给变量,如下所示:
$colors = ("red", "green", "blue")要单独访问数组的每个元素,可以使用索引运算符 [n]。一般来说,数组中第一个元素的索引始终为 0。请参考下面的示例:
$colors = ("red", "green", "blue")
Write-Host $colors[0] # Output from first element: red
Write-Host $colors[1] # Output from second element: green
Write-Host $colors[2] # Output from third element: blue
您还可以为索引分配新值,如下所示:
$colors = ("red", "green", "blue")
$colors[1] = "white"
Write-Host $colors[1] # Output: white
PowerShell 变量
这些是命令的参数,用于存储值。
变量名称以 $ 开头,然后跟在变量名称之后。请注意,变量名不区分大小写,例如,您可以同时编写 $colors 或 $Colors ,这并不重要。
要为变量赋值,必须使用 = 符号,如下所示:
$Color = "Red"$number = 20PowerShell 管道
PowerShell 管道(也称为管道)是一种运算符或符号 |,它将一个 cmdlet 的输出传递到另一个 cmdlet。这有助于创建对复杂任务有用的单行命令。
下面是一个帮助检索所有系统服务并根据状态对它们进行分类的示例:
Get-Service | Sort-Object -Property StatusPowerShell 运算符
|
Operators |
Symbols |
Purpose |
| Arithmetic Operators | +, -, *, /, % | Calculate numeric values |
| Assignment Operators | %=, +=, -=, =, *=, /= | Helps to assign, change, or change values to variables |
| Comparison Operators | -le, -ne, -gt, -lt, -eq, -ge | Binary operators that compare two integer or string values that return True/False based on whether the operator condition is met or not. |
| Logical Operators | -or, -xor, -and, -not, ! | Based on Boolean values, these add up multiple operator expressions and statements into complex conditionals. They return output in Boolean values. |
| Redirection Operators | >>, >, 2>>, 2>, and 2>&1 | Sends the output of a command or expression to a text file. |
| Split and Join Operators | -Split, -Join | Divides and adds substrings. |
| Type Operators | -is not, -is, -as | Finds or amend the .NET Framework type of an object. |
| Unary Operators | ++ (Increment), — (Decrement) | Increase or decrease the value of a variable by 1 |
要查找有关任何 cmdlet 的详细信息,您可以使用以下命令:
Get help for cmdlets
您可以参考我们关于基本 PowerShell 命令的详细文章,了解最常用的命令。
7.运行PowerShell脚本
虽然您可以使用记事本创建脚本,然后从 PowerShell 调用它,但最好使用 PowerShell 集成脚本环境 (ISE)。
虽然 Windows 11 中预装了 PowerShell ISE 应用程序,但如果您在计算机上找不到它,则可以通过可选功能安装 PowerShell ISE。
要启动 PowerShell ISE,请打开提升的 Windows PowerShell,输入以下命令并按 Enter:
powershell_ise.exe您可以通过其官方 Microsoft 页面获取与 PowerShell ISE 相关的更多信息。
要学习 PowerShell 脚本编写,请按照以下步骤创建和运行 PowerShell 脚本文件。我们还在下面指定了一个示例脚本,您可以在 PowerShell 窗口中运行该脚本:
# Prompt the user for their name
$name = Read-Host "Enter your name"
# Greet the user
Write-Host "Hello, $name! Welcome to PowerShell scripting."
输入脚本后,单击菜单栏中的绿色箭头图标来运行脚本或按F5。
接下来,在输入您的姓名:字段旁边输入您的姓名,然后按Enter。
它将生成如下问候语:
Hello, Madhu! Welcome to PowerShell scripting.阅读: Windows PowerShell ISE 与 Windows PowerShell:有什么区别?
如何快速学习 PowerShell 脚本编写?
要快速学习 PowerShell 脚本编写,请了解命令行界面基础知识和常见 cmdlet。掌握脚本基础知识和 Windows 管理很有用。优先考虑实践练习、使用在线教程、参与 PowerShell 社区并经常编写和测试小脚本以有效地培养您的技能。




