三大基柱(常用)

  • Get-Verb. 运行此命令时,将返回大多数命令遵循的谓词的列表。 此外,响应还会说明这些谓词执行哪些操作。 由于大多数命令都遵循这种命名方式,因此,它设置了命令的预期操作,这样有助于你选择适当的命令,也可帮助你在创建命令时为其命名。
  • Get-Command. 此命令会检索计算机上安装的所有命令的列表。
  • Get-Member. 它在基于对象的输出上运行,并且能够发现可用于命令的对象、属性和方法。
  • Get-Help. 以命令名称为参数调用此命令,将显示一个帮助页面,其中说明了命令的各个部分。

谓词

它是大多数 cmdlet 都遵循的一种命名标准。 谓词表示你尝试执行的操作,例如读取数据或更改数据。 PowerShell 有一个标准化的谓词列表。

使用 Get-Command 查找命令

根据名称筛选

你可以使用不同的参数筛选 Get-Command 的输出。 这样的筛选方式就是在命令上查询特定属性。 其中的思路是,你指定要作为筛选依据的属性,然后提供要匹配的字符串,字符串中可以使用通配符

根据名词和谓词进行筛选

 这种筛选针对的是命令名称的一部分。

  • 根据谓词进行筛选。 命令名称的谓词部分位于最左侧。 在命令 Get-Process 中,谓词部分为 Get。 若要根据谓词部分进行筛选,请指定 -Verb 作为参数

  • 根据名词进行筛选。 命令的最右边是名词部分。 在命令 Get-Process 中,名词部分是 Process。 若要根据名词进行筛选,请指定 -Noun 作为参数和字符串参数

  • 一般同时根据名词和谓词进行筛选,这样可以大大缩小筛选范围。

  • 注意一下:windows对大小写不敏感

使用帮助程序 cmdlet 筛选结果

除了使用参数进行筛选以外,还可以使用命令帮助你执行此任务。 下面的命令可以用作筛选器:

  • Select-Object. 这是一个非常通用的命令,可帮助你从一个或多个对象中选取特定属性。 另外,还可以使用此命令的参数来限制收到的响应。

  • 下面的 Select-Object 示例用于请求获得有限数量的记录:

    Get-Command | Select-Object -First 3
    

    上面示例的结果是从顶部往下数的前三个命令。

  • Where-Object. where object 可帮助你根据属性值从集合中选择对象。 此命令会采用一个表达式,你可以在其中说明要将哪些列与哪些值进行匹配。 若要查找其中的 ProcessName 以 p 开头的所有 process 对象,可以使用 Where-Object,如下所示:

    Get-Process | Where-Object {$_.ProcessName -Like "p*"}
    

    在上面的示例中,Get-Process cmdlet 会生成一个 process 对象集合。 要对响应进行筛选,可以使用管道“发送”命令 Where-Object。 使用管道“发送”表示通过管道 | 字符连接两个或更多个命令。 其中的思路是,一个命令的输出作为下一个命令的输入,从左向右进行读取。 Where-Object 使用表达式进行筛选。 此表达式本身使用 -Like 运算符和属于通配符表达式的字符串参数。

使用 Get-Member 浏览对象

当你能够找到所需的 cmdlet 后,需要进一步了解它生成的内容,即输出。

  • Get-Member cmdlet 将显示结果的属性和方法。 此外,它还会显示对象的类型。 将你要检查的输出发送到 Get-Member

    Get-Process | Get-Member
    

    结果显示返回的类型(以 TypeName 形式)以及对象的所有属性和方法。 下面是此类结果的一段摘录:

    TypeName: System.Diagnostics.Process
    
    Name        MemberType     Definition
    ----        ----------     ----------
    Handles     AliasProperty  Handles = Handlecount
    Name        AliasProperty  Name = ProcessName
    

    对象通常具有许多属性和方法,你可以对结果进行筛选,以便更轻松地找到要查找的内容。 例如,通过使用 -MemberType 参数,可以指定要查看所有方法,如下面的示例所示:

    Get-Process | Get-Member -MemberType Method
    

    在返回的响应中,PowerShell 通常只显示少量属性。 上面的响应中显示了 NameMemberType 和 Definition。 若要更改显示结果,可以使用 cmdlet Select-Object。 使用 Select-Object,可以指定要查看哪些列。 你可以为它提供列名称、以逗号分隔的列表或通配符 *。 下面的示例使用 Select-Object 检索 Name 和 Definition

    Get-Process | Get-Member | Select-Object Name, Definition
    

按类型搜索

搜索所需命令的另一种方法是,搜索在同一类型上运行的所有命令。 使用 Get-Member 后,收到的返回类型是响应的第一行,如下所示:

TypeName: System.Diagnostics.Process

现在可以使用此类型,并按如下所示搜索命令:

Get-Command -ParameterType Process

上面的调用将获得一个列表,其中是只在 Process 类型上运行的命令:

CommandType     Name                         Version    Source
-----------     ----                         -------    ------
Cmdlet          Debug-Process                7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Enter-PSHostProcess          7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Get-Process                  7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Get-PSHostProcessInfo        7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Stop-Process                 7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Wait-Process                 7.0.0.0    Microsoft.PowerShell.Managem…

Show-Command 作弊

该命令允许你指定你无法用对的命令名称,并以图形化的方式将命令的参数名称显示出来。 

 然后输入参数值,就可以运行或复制绝对正确的命令了。

运行远程命令 - PowerShell | Microsoft Docs

猜你喜欢

转载自blog.csdn.net/qq_52317104/article/details/120888565