文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PowerShell 学习笔记(3)

2023-01-31 01:13

关注

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

不区分大小写

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

管道的传值:

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

使用括号自定制参数

例子1、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没测试」


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯