当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 批准的动词入门指南

作者:精品下载站 日期:2024-12-14 13:14:22 浏览:13 分类:玩电脑

PowerShell 批准的动词入门指南


当涉及到 PowerShell 脚本时,一致的命名约定使构建强大的解决方案的任务变得更加容易。好消息是,您在编写脚本和命令时可以使用 PowerShell 认可的动词。

在本教程中,您将通过一系列示例了解在 PowerShell 中使用哪些已批准的动词。

立即开始并升级您的 PowerShell 脚本!

先决条件

本教程包括动手演示。如果您想继续操作,请确保您的系统运行 PowerShell 5.1 或更高版本。本教程使用 Windows 11 和 PowerShell 7。

检索 PowerShell 批准的动词列表

在 PowerShell 中,cmdlet 是小型的单功能命令,用于在 PowerShell 环境中执行特定操作。

PowerShell 中的每个 cmdlet 都有一个唯一的名称,该名称遵循动词-名词对格式,其中:

  • 名称的动词部分描述 cmdlet 执行的操作。 PowerShell 中使用的一些常见动词如下:
Get

检索信息。

Set

更改或更新设置。

New

创造新的东西。

Remove

删除或移除某些东西。

  • 名称的名词部分标识执行操作的实体或对象,即采取操作的目标。该名词通常描述 cmdlet 与之交互的对象的类别或类型,例如命令、进程、服务或文件。

要查看可用于脚本的所有已批准动词:

执行以下 Get-Verb cmdlet 以获取 PowerShell 批准的动词的完整列表。

Get-Verb

下面的输出仅显示了可用于脚本的几个动词。

[玩转系统] PowerShell 批准的动词入门指南

现在,运行与下面相同的命令,但这一次,您将通过通配符搜索列出所有以 re 开头的已批准动词。这样做可以将动词列表缩小到与重置、调整大小、重做等相关的动词。

Get-Verb re*

如下所示,当您心中有一个特定的操作并希望找到与该操作密切匹配的动词时,缩小动词列表的范围会很有帮助。

[玩转系统] PowerShell 批准的动词入门指南

通过 New 动词创建新资源

您刚刚在 PowerShell 中检索了批准的动词列表,但是如何在脚本中或运行命令时使用这些动词?您将在代表您希望创建的资源类型(即用户、文件、服务)的名词前添加 New 动词。

但在本例中,您将创建一个新资源,特别是一个新用户,如下所示:

执行以下 New-LocalUser 命令创建一个名为 John Smith 的新用户,并使用密码 (Password123) 并将该帐户设置为永不过期 ( -AccountNeverExpires)。

New-LocalUser -Name "John Smith" -AccountNeverExpires -Password (ConvertTo-SecureString -AsPlainText "Password123" -Force

[玩转系统] PowerShell 批准的动词入门指南

通过 Get 动词检索资源信息

除了创建新资源之外,PowerShell 还具有一个动词,可让您检索有关任何现有资源的信息。在 PowerShell 中,Get 动词通常用于检索或获取有关特定资源的信息,例如操作系统、服务、文件和其他对象。

要通过 Get 动词检索资源信息:

运行下面的 Get-LocalUser 命令来获取有关特定本地用户 (John Smith) 的信息。

Get-LocalUser -Name "John Smith"

下面的输出显示用户帐户 John Smith启用(活动)。

[玩转系统] PowerShell 批准的动词入门指南

通过 Set 动词修改现有资源

想象一下,您在看到某个资源的信息后发现有些问题。如何修改现有资源?不用担心! PowerShell 批准的动词 Set 动词允许您对现有资源进行更改。

Set 动词允许您通过修改资源的属性或配置来进行调整,而不是重新创建资源。

要通过 Set 动词修改现有资源:

执行以下命令将 $myVariable 的值设置为 Hello 并将 $myVariable 的值修改为 Hello, World!。这些命令不提供输出,但您将在以下步骤中验证更改。

# Define a variable resource
$myVariable = "Hello"

# Modify the value of an existing variable resource
Set-Variable -Name myVariable -Value "Hello, World!"

现在,运行下面的 Get-Variable 命令来检索有关您的资源 ($myVariable) 的信息。

Get-Variable -Name myVariable

如下所示,输出显示变量的名称和值。

[玩转系统] PowerShell 批准的动词入门指南

通过 Invoke 动词触发操作或调用命令

为什么不在 PowerShell 脚本中自动运行命令,而不是像在前面的示例中那样手动运行命令?如何? Invoke 动词允许您以编程方式启动操作或调用命令。

使用 PowerShell 脚本和 Invoke 动词,您可以一次运行多个 PowerShell 命令,而无需在控制台中全部输入。

要了解如何通过 Invoke 动词触发操作:

1. 执行以下 Invoke-Expression 命令来调用 Get-Date 命令,该命令可让您检索当前日期和时间。

Invoke-Expression -Command "Get-Date"

下面的输出显示通过 Invoke 动词成功执行了 Get-Date 命令。

[玩转系统] PowerShell 批准的动词入门指南

2. 接下来,使用您首选的代码编辑器创建一个 PowerShell 脚本文件(即 InvokeVerbDemo.ps1),并填充以下代码。

此代码显示 (Write-Host) 欢迎消息并调用 Get-Service cmdlet 以列出系统中的所有服务。

# Display a warm welcome message
Write-Host "Welcome to the Invoke Example!"

# Invoke the Get-Service cmdlet
Invoke-Command -ScriptBlock { Get-Service }

3. 现在,运行以下命令来调用 (Invoke-Expression) PowerShell 脚本 (InvokeVerbDemo.ps1)。将 $scriptPath 变量的值替换为脚本文件的路径。

$scriptPath = "C:\PowerShellScripts\InvokeVerbDemo.ps1"
Invoke-Expression -Command $scriptPath

下面的输出显示了欢迎消息和系统中所有服务的列表,这确认了脚本的成功执行。

[玩转系统] PowerShell 批准的动词入门指南

4. 编写一个可以随时调用的可重用函数(即 Invoke-MyTask),而不仅仅是命令,如下所示。从本质上讲,函数增强了 PowerShell 脚本的可维护性和可重用性。

在此示例中,Invoke-MyTask 函数封装了在调用时执行以下操作的命令:

  • 在控制台上显示 (Write-Host) 字符串 Executing MyTask...
  • 检索所有进程的列表 (Get-Process) 并仅选择 (Select-Object) NameCPU > 每个进程的属性。
# Define a custom function using the Invoke verb
function Invoke-MyTask {
    # Your custom task goes here
    Write-Host "Executing MyTask..."
    Get-Process | Select-Object Name, CPU
}

[玩转系统] PowerShell 批准的动词入门指南

5. 最后,执行以下命令来调用您的函数 (Invoke-MyTask)。

Invoke-Expression -Command Invoke-MyTask

您将看到系统上运行的所有进程及其名称和 CPU 使用情况的列表,如下所示。

[玩转系统] PowerShell 批准的动词入门指南

通过 Test 动词验证资源

在制作健壮且防错的 PowerShell 脚本时,确保输入值和条件的准确性至关重要。用于此目的的一个强大工具是 Test 动词。

通过使用 Test 动词,您可以快速验证给定条件是否具有 true 或 false 值,从而使您能够根据结果执行不同的操作。在此示例中,您将通过 Test 动词验证文件是否存在。

执行以下代码来测试 (Test-Path) 指定 $filePath 处是否存在文件 (C:\MyFolder\example.txt) >,并根据结果打印一条消息。

# Define a file path.
$filePath = "C:\MyFolder\example.txt"

# Test if the file exists, and print a message depending on the result
if (Test-Path $filePath) {
    Write-Host "The file exists at $filePath."
}
else {
    Write-Host "The file does not exist at $filePath."
}

[玩转系统] PowerShell 批准的动词入门指南

结论

您现在对 PowerShell 认可的动词以及如何在脚本和命令中有效使用它们有了基本的了解。通过利用这些动词,您现在可以为各种任务和场景创建强大、高效且一致的 PowerShell 解决方案。

本教程只是您成为熟练 PowerShell 用户的旅程的开始。为什么不学习其他认可的动词,例如数据操作动词(即 ExportImportSort)和生命周期动词(即 >开始停止)?立即将您的 PowerShell 技能提升到新的水平!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯