Powershell脚本如何实现复杂功能?
摘要:目录简单了解Powershell脚本在 PowerShell 中发现命令使用 Get-Member 发现对象按类型搜索使用 Select-Object 筛选 Get-Member 结果选择数据获取完整响应排序使用格式设置和筛选编写你的第一个
目录简单了解Powershell脚本在 PowerShell 中发现命令使用 Get-Member 发现对象按类型搜索使用 Select-Object 筛选 Get-Member 结果选择数据获取完整响应排序使用格式设置和筛选编写你的第一个 PowerShell 代码Hello World!Powershell 中的编译代码基础语法认识须知查看配置文件声明参数if elseif else错误处理PowerShell变量、数组和哈希表变量创建变量变量类型变量的方法和属性字符串变量和方法日期变量和方法DateTime 属性DateTime 方法数组和哈希表定义数组数组的属性和方法获取使用数组列表定义哈希表使用哈希表
简单了解Powershell脚本
在 PowerShell 中发现命令
使用 Get-Member 发现对象
Get-Member的作用:
探查任何 PowerShell 命令输出对象的属性(Property)和方法(Method)
查看所有方法
这里会输出Get-Process 所有进程的方法
Get-Process | Get-Member -MemberType Method
-Name: 按名称查找特定成员(支持通配符)
这里会输出你 Get-Process 所有进程的有关于"*Handle*"这个通配符匹配的方法和属性
Get-Process | Get-Member -Name "*Handle*"
如果你要查看指定的进程、服务等等,你可以先进行筛选再给到Get-Member获取他的内容
其实和不指定进程的时候没有区别:两种操作方式,Get-Member显示的都是System.Diagnostics.Process类型的方法列表,与具体是哪个进程实例、有多少个实例无关。
Get-Member的用途:探索对象类型的结构和能力(有哪些属性和方法)。
# 获取ctfmon进程的所有方法
Get-Process -Name ctfmon | Get-Member -MemberType Method
等同于
Get-Process | Get-Member -MemberType Method
实际使用
属性查看
# 先通过Get-Member 获取某个东西的属性(不一定是进程),看你要查看哪个属性
Get-Process -Name 'ctfmon' | Get-Member -MemberType Properties
# 比如我查看了所有属性,想要查看Path属性,用法如下:
(Get-Process -Name 'ctfmon').Path
方法使用
# 先通过Get-Member 获取某个东西的方法有哪些(不一定是进程),看你要使用哪个方法
# 其实可以不指定进程名字,因为我们对进程的操作方法一般都是一样的!!!上面也有对此进行解释
# 不过我还是觉得-Name 指定一下好点,养成好习惯,尽可能减少失误的可能性
Get-Process | Get-Member -MemberType Method
按类型搜索
假设你调用了 PowerShell 命令来列出特定进程的所有成员。 结果的前几行看起来类似于以下输出:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
第一行指示类型为System.Diagnostics.Process。 使用此类型作为搜索参数,查找使用此类型的其他 cmdlet。 下面是一个示例命令:
Get-Command -ParameterType Process
# 当然也可以直接输入全称
Get-Command -ParameterType System.Diagnostics.Process
使用 Select-Object 筛选 Get-Member 结果
Select-Object 就是筛选特定列,决定要显示的列。
没啥好说的,不仅仅是搭配Get-Member,很多都可以,这里只是一个小例子
请记住,返回的答案已是响应中所有列的子集。
