前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerShell 学习笔记(3)

PowerShell 学习笔记(3)

作者头像
py3study
发布2020-01-14 17:20:00
8280
发布2020-01-14 17:20:00
举报
文章被收录于专栏:python3python3

获取对象的过程中,最好先筛选出对象,再进行操作。(即筛选在排序左边)

不区分大小写 get-process | where {$_.handles –ge 1000}

使用where获取所有对象,用对象执行大括号里的代码,如果结果为rue,则返回该对象,如果结尾为false,则丢弃该对象 get-process *ss | where {$true} 大括号里的代码运算值永远为真,所以该命令可以返回所有以ss结尾的进程 Powershell3.0 : 简化版本的where   Get-Process | where handles -ge 1000

Foreach-Object

针对每一组输入对象进行操作 可以看到最后一条命令是批量针对所有名为bits的服务执行增加启动密码的效果 首先获取针对WMIObject win32服务的所有成员方法和属性,发现里头有Change这么一个方法 其次筛选change方法,并显示其可定义的参数 最后使用foreach来针对可定义的参数进行操作(第七个参数为System.String「String类型参数」 StartPassword) 保持不变的就写$null

p_w_picpath
p_w_picpath

管道的传值:

byValue: get-service | stop-service 通过获得的值匹配 byPropertyName :get-service | stop-process 和 get-process calc | dir 传递进来的属性名称必须与接收命令的参数名称相匹配 通过别名来使对象的属性「Name」保持一致

自定制属性:

例子1、获取adcomputer的Name属性,转换为可被其他命令接受的ComputerName属性 get-adcomputer –Filter * | select –property name,@{name='computerName' ;expression={$_.name}} name可以缩写为n,expression可以缩写为e 接下来可以用get-service来查看这些AD里的计算机bits服务的运行状态 get-adcomputer -Filter * | select -property @{n='ComputerName'; e={$_.name}} | get-service -name bits 也可以再加一句,以加入一条对应的计算机名 get-adcomputer -Filter * | select -property @{n='ComputerName'; e={$_.name}} | get-service -name bits | select -Property MachineName,status 例子2、以下命令获取了服务器名和C盘剩余空间(以GB为单位) Get-WmiObject win32_logicaldisk -Filter "deviceID='c:'" | Select-Object -Property __Server,@{n 'FreeGB ';e={$_.Freespace /1Gb -as [int]}} | Format-Table -AutoSize __SERVER FreeGB       --------      -------       08DC1         21 其中用于构造显示属性,第一个为__Server,第二个是自定义的FreeGB,用wmiobject对象的Freespace属性除以1/GB并以int类型显示 Select-Object -Property __Server,@{n='FreeGB ';e={$_.Freespace /1Gb -as [int]}}

例子3、批量导入AD用户

p_w_picpath
p_w_picpath

使用括号自定制参数

例子1、

p_w_picpath
p_w_picpath

例子2、获取AD里所有计算机的bios信息 -ExpandProperty <string>     指定要选择的属性,并指示应当尝试展开该属性。属性名中允许使用通配符。

Get-WmiObject -class win32_bios -computername (get-adcomputer -filter * | select -ExpandPropert y Name) 「Powershell 2.0] Get-WmiObject –class win32_bios –ComputerName (Get-ADComputer –filteer * ).name [Powershell3.0] get-CimInstance 支持管道输入,代替Get-WmiObject Get-ADComputer -Filter * | Get-WmiObject -class win32_bios -ComputerName {$_.Name} 「Powershell2.0报错,3.0没测试」

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档