PowerShell入门

发布于 2019-07-22  365 次阅读


Powershell 是一个自动化引擎,命令行式的交互界面,脚本语言。结合.net进行开发,Powershell ISE进行开发,上面语言下面结果,基本用ISE进行开发,执行只需要Powershel。
PowerShell的一个主要的优点就是具有自动化重复性任务的能力。比如把大量数据存到CSV里面进行操作。有时候,这些重复性的任务是动作密集的(如系统维护,操作注册表,或者文件清理),并且包括复杂的有顺序的互相调用的命令。在这种情况下,可以通过编写脚本将这些操作组合到一起,这样可以节省时间,降低错误的发生。

Powershell基本命令

常用的获取系统服务、获取进程的命令。相关参数,ISE的帮助模式。

流、数据处理相关

Powershell数据模型:Service(某个服务或者说函数,其实也有各种属性,类似类和实例的关系,当然很明显这就在单个ps1文件里,那有内存回收吗?)、Processes、EventLogs、Files、Provides(文件系统、注册表、证书、环境变量)。把组件归纳出共同的属性,有了类型之后,就能查看组件的各个属性。
常用的数据类型:1.用$进行定义变量,相当于静态变量。 2.Powershell内置的变量有PSHome(安装目录)、$true、$False

可以用该语言的命令进行一些关于驱动的操作,如Test-Path、Join-Path、Split-Path、Get-item、Get-Childitem、invoke-item、Move-item、Claer-item。

就是以参数形式对结果进行怎么的下一步(忽略?Debug?)?影响所有命令,单个命令? Output、Continue、Debug、WhatIf、Confirm·····

AD,

注册表

可以查看某些路径的信息。可以直接修改注册表,来对windows进行修改。

管道

管道说白了就是一个处理事务的流程。这个事务的一系列处理流程就是管道。即在一组命令中,输出的命令结果成为下一个命令的输入参数,管道是并发的。Powershell里的|就代表这是个管道,连接的是一个个流程。多数的命令是支持管道的,比如,先下好服务(下载多个可以并行),然后开启服务。
常用管道处理命令:Select-Object(选取自己需要的内容)、Group-Object、Sort-Object、Msaeure-Object、系统文件导出csv、xml;文件导入,来批量修改电脑设置。即对管道结果进一步处理,或者将转换命令执行的结果为文本。管道数据的格式化。

PowerShell是基于对象进行管道操作的。但管道使用的不好会导致堵塞,因为它就是相当于一个下一步,但是因为使用不好会产生循环,类似死锁。

高级操作

{···}进行where-object、get-process判断、进入进程管理器的相关属性判断、foreach-object、{$_.kill()} 、-eq(条件判断以及循环指令) 、PSIsContainer、

数据类型

基本数据类型来源于.net。一般来说是随意声明的,但在声明强类型后则只能进行相关变量类型的操作。有的方法和属性只能在类型中使用,有的可以在实例中使用。转义字符

高级数据类型:数组、哈希表
字符串处理:split分割字符串,join连接字符串。此处的哈希表值可重复,键不可重复。

PowerShell 进阶使用

脚本使用

  1. 脚本的使用。输入地址启动即可。
    使用绝对路径、相对路径进行输出。以及因此带来的作用域范围,以及点元的融合形式。

  2. 脚本的编写。
    内容的编写、命令参数的使用、选择执行策略(多种执行策略,对不同用户进行不同操作)、对不同用户不同控制台(PowerShell和PowerShell ISE)进行不同设置。

函数的使用,写法更简单使用范围更小的脚本(参数的使用有两种方式,括号或者param)。

  1. 模块的使用
    编写完模块后可以将其放到网上供人下载使用 Get-Command -Module。3.0之前需要手动导入,3.0以后只要在模块路径下有相应模块就可以直接使用。

流程控制

  1. for、foreach、while、switch
    类似高级语言。for(···;···;···),常用来访问数组。