【逆向】PowerShell命令基础

前言

个人理解PowerShell就是cmd的升级版,它本身包含了cmd的命令,又在其基础上加入了.NET Framework的强大功能。(其它背景请自行百度)

工具

PowerShell+ISE

命令介绍

PowerShell命令基本以(“动词-名词”)的形式组成。例如(“Get-Command”)具有见名知意的优点。
PowerShell命令灵活多变,一个操作往往可以通过几条不同的命令来完成,实际使用中需注意灵活变通。
有些命令比较常用,除了(“动词-名称”)版本外,PowerShell还提供了和Linux 一样的别名来简化输入。

命令类型

1 Cmdlet:  // 命令(功能强大,可以接收各类参数)
2 Alias:   // 别名(用于简化输入命令和函数的名称)
3 Function:// 函数(功能简单,不能接收各类参数)

获取命令

使用命令:“Get-Command”,别名:“gcm”,可以获取当前会话中所有可用的内置命令。

PS C:\Users\Sunset> get-command

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Add-AppPackage                                     2.0.1.0    Appx
Alias           Add-AppPackageVolume                               2.0.1.0    Appx
Alias           Add-AppProvisionedPackage                          3.0        Dism
Alias           Add-ProvisionedAppPackage                          3.0        Dism
Alias           Add-ProvisionedAppxPackage                         3.0        Dism
Alias           Add-ProvisioningPackage                            3.0        Provisio...

你也可以使用“-name”参数查看指定命令。

PS C:\Users\Sunset> gcm -name get-location
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-Location                                       3.1.0.0    Microsof...

获取别名

使用“Get-Alias”命令可以显示所有命令的别名。

PS C:\Users\Sunset> Get-Alias

CommandType     Name                                               Version    Source        
-----------     ----                                               -------    ------        
Alias           % -> ForEach-Object                                                         
Alias           ? -> Where-Object                                                           
Alias           ac -> Add-Content                                                           
Alias           asnp -> Add-PSSnapin                                                        
Alias           cat -> Get-Content                                                          
Alias           cd -> Set-Location                                                                                                                 

你可以使用“gcm”命令查看指定别名。

PS C:\Users\Sunset> gcm pwd

CommandType     Name                                               Version    Source        
-----------     ----                                               -------    ------        
Alias           pwd -> Get-Location  

你也可以使用“-Definition”参数查看指定命令的别名。

PS C:\Users\Sunset> Get-Alias -Definition Get-Location

CommandType     Name                                               Version    Source        
-----------     ----                                               -------    ------        
Alias           gl -> Get-Location                                                          
Alias           pwd -> Get-Location                                  

获取动词/名词

除了之前介绍的2种查询方式,你还可以通过动词(“-Verb”)/名词(“-Noun”)参数来查询命令。
查询动词以“Get”开头的命令。

PS C:\Users\Sunset> gcm -Verb Get

CommandType     Name                                               Version    Source        
-----------     ----                                               -------    ------        
Alias           Get-AppPackage                                     2.0.1.0    Appx          
Alias           Get-AppPackageDefaultVolume                        2.0.1.0    Appx          
Alias           Get-AppPackageLastError                            2.0.1.0    Appx          
Alias           Get-AppPackageLog                                  2.0.1.0    Appx          

查询名词以“Help”开头的命令。

PS C:\Users\Sunset> gcm -Noun Help

CommandType     Name                                               Version    Source        
-----------     ----                                               -------    ------        
Cmdlet          Get-Help                                           3.0.0.0    Microsoft.P...
Cmdlet          Save-Help                                          3.0.0.0    Microsoft.P...
Cmdlet          Update-Help                                        3.0.0.0    Microsoft.P...

使用通配符“*”查询特定范围的命令。

PS C:\Users\Sunset> gcm -Noun Hel*

CommandType     Name                                               Version    Source        
-----------     ----                                               -------    ------        
Cmdlet          Get-Help                                           3.0.0.0    Microsoft.P...
Cmdlet          Save-Help                                          3.0.0.0    Microsoft.P...
Cmdlet          Update-Help                                        3.0.0.0    Microsoft.P...

获取帮助

使用命令:“Get-Help”或“help”,别名:“man”,可以获取帮助信息。
查看“cls”命令帮助信息。

PS C:\Users\Sunset> man cls

名称
    Clear-Host
    
摘要
    
语法
    Clear-Host [<CommonParameters>]
    
说明
    
相关链接
    https://go.microsoft.com/fwlink/?LinkID=225747

备注
    若要查看示例,请键入: "get-help Clear-Host -examples".
    有关详细信息,请键入: "get-help Clear-Host -detailed".
    若要获取技术信息,请键入: "get-help Clear-Host -full".
    有关在线帮助,请键入: "get-help Clear-Host -online"

你也可以使用“-?”参数查看指定命令的帮助信息。

PS C:\Users\Sunset> cls -?

名称
    Clear-Host
    
摘要
    
语法
    Clear-Host [<CommonParameters>]
    
说明
    
相关链接
    https://go.microsoft.com/fwlink/?LinkID=225747

备注
    若要查看示例,请键入: "get-help Clear-Host -examples".
    有关详细信息,请键入: "get-help Clear-Host -detailed".
    若要获取技术信息,请键入: "get-help Clear-Host -full".
    有关在线帮助,请键入: "get-help Clear-Host -online"

参考

https://www.jianshu.com/p/c8f5c374466a
https://www.pstips.net/powershell-about-aliases.html

posted @ 2020-02-06 21:13  SunsetR  阅读(475)  评论(0编辑  收藏  举报