當涉及到 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
以獲取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
命令確認系統中的所有服務。
3. 現在,執行以下命令調用(Invoke-Expression
)您的 PowerShell 腳本(InvokeVerbDemo.ps1
)。將 $scriptPath
變數的值替換為您的腳本檔案路徑。
以下輸出顯示歡迎訊息和系統中所有服務的列表,確認成功執行您的腳本。

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

5. 最后,执行以下命令调用您的函数(Invoke-MyTask
)。
您將看到系統上運行的所有進程列表,包括它們的名稱和 CPU 使用情況,如下所示。

通過“測試”動詞驗證資源
在創建強大且防錯的 PowerShell 腳本時,確保輸入值和條件的準確性至關重要。而您可以利用的一個強大工具就是“測試”動詞。
通過使用“測試”動詞,您可以快速驗證給定的條件是否為真或假,根據結果執行不同的操作。在這個示例中,您將使用“測試”動詞驗證文件是否存在。
執行以下代碼以測試(Test-Path
)指定的$filePath
位置是否存在文件(C:\MyFolder\example.txt
),並根據結果打印相應的消息。

Test
verb結論
您現在對 PowerShell 的核准動詞以及如何在腳本和命令中有效使用它們有了基本的理解。通過利用這些動詞,您現在可以為各種任務和場景創建強大、高效且一致的 PowerShell 解決方案。
這個教程只是你成為熟練 PowerShell 用戶之旅的開始。為什麼不學習其他批准的動詞,比如 數據操作動詞(即 Export
、Import
、Sort
)和 生命周期動詞(即 Start
、Stop
)?立即將你的 PowerShell 技能提升到下一個水平吧!
Source:
https://adamtheautomator.com/powershell-approved-verbs/