【逆向】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