关于 PowerShell 脚本编写,一致的命名约定可以使构建健壮解决方案的任务变得更加容易。好消息是,在编写脚本和命令时,您可以使用 PowerShell 批准的动词。
在本教程中,您将通过一系列示例了解在 PowerShell 中使用的批准动词。
立即开始,提升您的 PowerShell 脚本水平吧!
先决条件
本教程包括动手演示。如果您希望跟随操作,请确保您的系统运行 PowerShell 5.1 或更高版本。本教程使用 Windows 11 和 PowerShell 7。
检索 PowerShell 批准动词列表
在 PowerShell 中,cmdlet 是在 PowerShell 环境中执行特定操作的小型、单一功能命令。
PowerShell 中的每个 cmdlet 都有一个遵循动词-名词对格式的唯一名称,其中:
- 名称的动词部分描述了 cmdlet 执行的操作。在 PowerShell 中使用的一些常见动词如下:
Verb | Function |
---|---|
Get |
Retrieves information. |
Set |
Changes or updates settings. |
New |
Creates something new. |
Remove |
Deletes or removes something. |
- 名称的名词部分标识执行操作的实体或对象,即要执行操作的目标。名词通常描述了 cmdlet 与之交互的对象的类别或类型,例如命令、进程、服务或文件。
要查看您的脚本可以使用的所有已批准动词:
执行以下Get-Verb
cmdlet以获取PowerShell批准动词的完整列表。
下面的输出只显示了一些您可以在脚本中使用的动词。

现在,运行与下面相同的命令,但这次,您将通过通配符搜索列出所有以re
开头的已批准动词。这样做会将动词列表缩小到与重置、调整大小、重做等相关的动词。
如下所示,在您有特定操作并希望找到与该操作紧密匹配的动词时,缩小动词列表是有帮助的。

通过New
动词创建新资源
您刚刚在PowerShell中检索到了一组批准的动词,但在脚本或运行命令时,如何使用这些动词呢?您将在要创建的资源类型(即用户、文件、服务)前加上New
动词。
但在这个示例中,您将创建一个新的资源,具体而言是一个名为John Smith
的新用户,方法如下:
执行以下New-LocalUser
命令以创建一个名为John Smith
的新用户,密码为Password123
,并设置账户永不过期-AccountNeverExpires
。

通过Get
动词检索资源信息
除了创建新资源外,PowerShell 还有一个动词,可以让您检索有关任何现有资源的信息。在 PowerShell 中,Get
动词通常用于检索有关特定资源(如操作系统、服务、文件和其他对象)的信息。
通过Get
动词检索资源信息的步骤:
运行下面的Get-LocalUser
命令,以获取有关特定本地用户(John Smith
)的信息。
下面,输出显示用户帐户John Smith是启用的(活动的)。

Get
verb通过Set
动词修改现有资源
想象一下,在查看某个资源的信息后,您注意到有些不对劲。如何修改现有资源?不用担心!PowerShell 批准的动词Set
允许您对现有资源进行更改。
与重新创建资源不同,Set
动词允许您通过修改其属性或配置来进行调整。
通过Set
动词修改现有资源的步骤:
执行以下命令将$myVariable
的值设置为Hello
,并修改$myVariable
的值为Hello, World!
。这些命令不会提供输出,但你将在下一步中验证更改。
现在,运行下面的Get-Variable
命令来检索有关你的资源($myVariable
)的信息。
如下所示,输出显示了变量的名称和值。

通过Invoke
动词触发操作或调用命令
与在前面的示例中手动运行命令不同,为什么不在PowerShell脚本中自动化它们呢?如何做到?Invoke
动词允许你以编程方式启动操作或调用命令。
通过PowerShell脚本和Invoke
动词,你可以一次运行多个PowerShell命令,而无需在控制台中全部键入。
要查看通过Invoke
动词触发操作的工作原理:
1. 执行以下Invoke-Expression
命令来调用Get-Date
命令,该命令让你检索当前日期和时间。
下面的输出显示了通过Invoke
动词成功执行Get-Date
命令。

Invoke
verb2. 接下来,使用您喜欢的代码编辑器创建一个PowerShell脚本文件(即InvokeVerbDemo.ps1),并填充以下代码。
此代码显示(Write-Host
)欢迎消息,并调用Get-Service
cmdlet列出系统中的所有服务。
3. 现在,运行以下命令以调用(Invoke-Expression
)您的PowerShell脚本(InvokeVerbDemo.ps1
)。将$scriptPath
变量的值替换为您的脚本文件的路径。
下面的输出显示了欢迎消息和系统中所有服务的列表,这证实了您的脚本成功执行。

Invoke
verb4. 而不只是命令,编写一个可重复使用的函数(例如,Invoke-MyTask
),您可以随时调用,如下所示。实际上,函数可以增强PowerShell脚本的可维护性和可重用性。
在这个例子中,Invoke-MyTask
函数在调用时封装了以下命令:
- 在控制台上显示(
Write-Host
)字符串Executing MyTask...
。 - 检索所有进程的列表(
Get-Process
),并仅选择每个进程的Name
和CPU
属性(Select-Object
)。

5. 最后,执行以下命令以调用您的函数(Invoke-MyTask
)。
你将看到系统上运行的所有进程的列表,包括它们的名称和CPU使用情况,如下所示。

通过Test
动词验证资源
在创建强大且抗错误的PowerShell脚本时,确保输入值和条件的准确性至关重要。在这个目的上,您可以利用Test
动词这一强大工具。
通过使用Test
动词,您可以快速验证给定条件是否为真或假,从而能够根据结果执行不同的操作。在这个例子中,您将通过Test
动词验证文件是否存在。
执行以下代码进行测试(Test-Path
)验证文件是否存在(C:\MyFolder\example.txt
)在指定的$filePath
,并根据结果打印相应的消息。

Test
verb结论
您现在对PowerShell批准的动词有了基本的了解,以及如何在脚本和命令中有效使用它们。通过利用这些动词,您现在可以为各种任务和场景创建强大、高效且一致的PowerShell解决方案。
这个教程只是你成为熟练的PowerShell用户之旅的开始。为什么不学习其他经过批准的动词,比如数据操作动词(即导出
、导入
、排序
)和生命周期动词(即启动
、停止
)?立即将你的PowerShell技能提升到更高的水平吧!
Source:
https://adamtheautomator.com/powershell-approved-verbs/