PowerShell快速入门01-认识PowerShell
文章目录
PowerShell简介
PowerShell是构建于.NET和.NET Core上基于任务的命令行shell和脚本语言。最初仅是Windows组件,后于2016年8月18日开源并跨平台支持。PowerShell可帮助系统管理员和高级用户快速自动执行用于管理操作系统(Linux、macOS 和 Windows)。
使用PowerShell命令可以从命令行管理计算机。PowerShell provider(提供程序)可让你访问数据存储(如注册表和证书存储),与你访问文件系统一样方便。
PowerShell由两部分组成,第一部分是Windows PowerShell,是为.NET Framework编写的,主要是面向Windows系统。另一部分是跨平台的PowerShell Core,是为.NET Core编写的,用于Linux、macOS 和 Windows等。
虽然.Net Framework和.Net Core高度兼容,但它们之间的API有所不同。 Windows PowerShell 和 PowerShell Core 中的API也有所不同。 打算在这两种环境中使用的模块需要了解这些差异。
Windows操作系统既可以运行Windows PowerShell,也可以运行PowerShell Core。
在PowerShell中,管理任务通常由cmdlet(发音为command-let)执行,这是执行特定操作的专用.NET类。可以将cmdlet集合至脚本、可执行文件(一般是独立应用程序)中。现在(2019年 9/25日),Windows PowerShell的最新版本是5.1,PowerShell Core的最新版本是6.2。
这个教程主要是介绍Windows PowerShell。以后的教程中我会把Windows Powershell简略成Powershell。
Windows PowerShell特点
- 开放开源。PowerShell在GitHub上的项目地址是https://github.com/powershell/powershell。
- 简单易用。所有的命令都是cmdlet形式,仅一行命令就能实现其他语言多行才能实现的功能。例如,Get-Service显示所有的服务。
- 交互式命令行和交互式脚本编写环境。Windows命令行提供了一个可访问命令行工具和基本脚本的交互式shell。 交互式脚本环境提供了编写,调试,运行Powershell脚本的环境。
- 面向对象。PowerShell基于对象而非文本。命令输出的是一个对象。可以将输出对象通过管道发送给另一个命令以作为其输入。
启动Windows PowerShell
PowerShell是一个脚本引擎 dll,嵌入到多个主机中。 启动的最常见主机是交互式命令行PowerShell.exe和交互式脚本环境PowerShell_ISE.exe。
Windows 10打开PowerShell交互式命令行PowerShell.exe有三种方式。
方式一,开始菜单中启动PowerShell。
单击“开始” ,在搜索框中键入 PowerShell,然后单击“Windows PowerShell” 。
在“开始” 菜单中,依次单击“开始” 、“Windows PowerShell”文件夹,然后单击“Windows PowerShell” 。
方式二,在命令行处启动PowerShell。
在Cmd.exe、Windows PowerShell 或 Windows PowerShell ISE 中,键入PowerShell并回车。
方式三,快捷键按下 Window + R 打开运行对话框,键入PowerShell并回车。
Windows PowerShell启动交互式脚本环境PowerShell_ISE.exe和PowerShell.exe是类似的,只不过键入的命令是PowerShell_ISE。
Windows PowerShell编辑器-Windows PowerShell ISE
Windows PowerShell集成脚本环境(ISE)是 Windows PowerShell的主机应用程序,是默认的编辑器。让你可以在直观的图形环境中编写、运行和测试脚本与模块。 其主要功能,如语法着色、Tab 自动补全、可视调试、Unicode 遵从和上下文相关帮助,将为你带来丰富的脚本编写体验。但是,ISE处于维护模式,可能不会添加任何新功能。 此外,不支持具有PowerShell v6及更高版本的ISE。 想要使用图形工具管理PowerShell脚本等的用户应考虑使用Visual Studio Code。
PowerShell ISE初次打开的画面如下。
PowerShell ISE关键功能
Windows PowerShell ISE中的关键功能包括:
- 多行编辑:若要在“命令”窗格中的当前行下插入一个空行,请按 SHIFT + ENTER。
- 选择性执行:要运行部分脚本,请选择要运行的文本,然后单击“运行脚本”按钮。 或者,按F8。
- 上下文相关帮助:键入命令然后按下F1。例如,键入Invoke-Item,然后按 F1。 帮助文件将打开到Invoke-Item cmdlet的文章。 Windows PowerShell ISE允许你自定义其外观的某些方面。 它还具有其自己的Windows PowerShell配置文件脚本。
在Windows PowerShell ISE中获取帮助
在“帮助”菜单上,单击“Windows PowerShell帮助”。 或者,按F1。 打开的文件介绍了Windows PowerShell ISE和 Windows PowerShell,其中包括Get-Help cmdlet中提供的所有帮助。
Windows PowerShell文件
不仅可以在PowerShell交互式命令行上面输入命令执行,还可以将命令写入到文件后再执行。PowerShell的文件扩展名是.ps1。
PowerShell交互式命令行上面运行get-service命令。如下,
将get-service命令保存为文件后,在ISE上大家文件并运行。如下,
PowerShell专业术语
术语(汉语) | 术语(英语) | 描述 |
---|---|---|
二进制模块 | binary module | 一个Windows PowerShell模块,其根模块是一个二进制模块文件 (.dll)。 二进制模块可能包含或不包含模块清单。 |
通用参数 | common parameter | 一个参数,它由Windows PowerShell引擎添加到所有cmdlet、高级函数和工作流中。 |
使用点获取来源 | dot source | 在Windows PowerShell中,若要启动一个命令,可在该命令前键入一个点和一个空格。 采用点获取其来源的命令运行在当前范围而非新范围中。 命令创建的任何变量、别名、函数或驱动器都创建于当前范围,并在命令完成时提供给用户。 |
动态模块 | dynamic module | 一个仅存在于内存中的模块。 New-Module和Import-PSSession命令会创建动态模块。 |
动态参数 | dynamic parameter | 在某些情况下添加到Windows PowerShell的cmdlet、函数或脚本的一个参数。Cmdlet、函数、提供程序和脚本可以添加动态参数。 |
格式设置文件 | formatting file | 一个Windows PowerShell XML文件,它具有.format.ps1xml扩展名且定义Windows PowerShell 如何基于对象的.NET Framework类型来显示对象。 |
全局会话状态 | global session state | 包含 Windows PowerShell 会话用户可访问的数据的会话状态。 |
主机 | host | Windows PowerShell引擎用于与用户进行通信的接口。 例如,主机指定 Windows PowerShell 和用户之间处理提示的方式。 |
主机应用程序 | host application | 将 Windows PowerShell 引擎加载到其进程中并使用它执行操作的程序。 |
输入处理方法 | input processing method | Cmdlet 可用于处理其以输入形式所接收的记录的一种方法。 输入处理方法包括 BeginProcessing 方法、ProcessRecord 方法、EndProcessing 方法以及 StopProcessing 方法。 |
清单模块 | manifest module | 一个 Windows PowerShell 模块,它具有一个清单且其 RootModule 项为空。 |
模块清单 | module manifest | 一个 Windows PowerShell 数据文件 (.psd1),描述模块的内容并控制模块的处理方式。 |
模块会话状态 | module session state | 包含 Windows PowerShell 模块公用和专用数据的会话状态。 此会话状态中的私有数据不可供 Windows PowerShell 会话的用户使用。 |
非终止错误 | non-terminating error | 不能阻止 Windows PowerShell 继续处理命令的错误。 |
名词 | noun | 在 Windows PowerShell cmdlet 名称中连字符后面的单词。 名词描述了 cmdlet 在其上进行操作的资源。 |
参数集 | parameter set | 可用于相同的命令中以执行特定操作的一组参数。 |
管 | pipe | 在 Windows PowerShell 中,将前一个命令的结果作为输入发送到管道中的下一个命令。 |
管道 | pipeline | 一系列由管道运算符 ( |
PSSession | PSSession | 一种由用户创建、管理和关闭的 Windows PowerShell 会话类型。 |
根模块 | root module | 在模块清单的 RootModule 项中指定的模块。 |
运行空间 | runspace | 在 Windows PowerShell 中,在其中执行管道中每个命令的操作环境。 |
脚本块 | script block | 在 Windows PowerShell 编程语言中,可作为单个单元使用的语句或表达式的一个集合。 脚本块可以接受参数并返回值。 |
脚本模块 | script module | 一个 Windows PowerShell模块,其根模块是一个脚本模块文件 (.psm1)。 脚本模块可能包含或不包含模块清单。 |
脚本模块文件 | script module file | 一个包含 Windows PowerShell 脚本的文件。 该脚本定义脚本模块导出的成员。 脚本模块文件具有.psm1文件扩展名。 |
shell | shell | 用于将命令传递到操作系统的命令解释器。 |
开关参数 | switch parameter | 一个不带实参的形参。 |
终止错误 | terminating error | 阻止 Windows PowerShell 处理命令的错误。 |
事务 | transaction | 一个工作的原子单元。 必须将事务中的工作作为一个整体来完成;如果该事务的任何部分失败,那么整个事务都会失败。 |
类型文件 | types file | 一个 Windows PowerShell XML 文件,它具有 .ps1xml 扩展名且扩展 Windows PowerShell 中 Microsoft.NET Framework 类型的属性。 |
动作 | verb | 在 Windows PowerShell cmdlet 名称中连字符前面的单词。 它说明该 cmdlet 将执行的操作。 |
Windows PowerShell | Windows PowerShell | 为 IT 管理员提供全面控制以及实现系统管理任务自动化的一个命令行 Shell 和基于任务的脚本技术。 |
Windows PowerShell 命令 | Windows PowerShell command | 导致操作被执行的管道中的元素。Windows PowerShell 命令可以在键盘上输入或以编程方式调用。 |
Windows PowerShell 数据文件 | Windows PowerShell data file | 具有 .psd1 文件扩展名的文本文件。 Windows PowerShell 将数据文件用于多种用途,例如存储模块清单数据和存储用于脚本国际化的已翻译的字符串。 |
Windows PowerShell 驱动器 | Windows PowerShell drive | 一个提供直接访问数据存储的虚拟驱动器。 它可以由 Windows PowerShell 提供程序定义或是在命令行中创建。 在命令行创建的驱动器是特定于会话的驱动器,并在会话关闭时丢失。 |
Windows PowerShell 集成脚本环境 (ISE) | Windows PowerShell Integrated Scripting Environment (ISE) | 一个 Windows PowerShell 主机应用程序,使你能够运行命令并在友好、语法着色、符合 Unicode 的环境中编写、测试和调试脚本。 |
Windows PowerShell 模块 | Windows PowerShell module | 一个独立的可重用单元,使你能够对 Windows PowerShell 代码进行分区、组织和抽象化。 模块可以包含 cmdlet、提供程序、函数、变量和其他可作为单个单元导入的资源类型。 |
Windows PowerShell 提供程序 | Windows PowerShell provider | 一个基于 Microsoft .NET Framework 的程序,用于使专用数据存储中的数据在 Windows PowerShell 中可用,以便你可以查看和管理它。 |
Windows PowerShell 脚本 | Windows PowerShell script | 以 Windows PowerShell 语言编写的脚本。 |
Windows PowerShell 脚本文件 | Windows PowerShell script file | 具有 .ps1 扩展名且包含以 Windows PowerShell 语言编写的脚本的文件。 |
Windows PowerShell 管理单元 | Windows PowerShell snap-in | 定义一组可以添加到 Windows PowerShell 环境中的 cmdlet、提供程序和 Microsoft .NET Framework 的资源。 |
Windows PowerShell 工作流程 | Windows PowerShell Workflow | 工作流是一系列经过编程的连接步骤,会执行长期运行的任务,或是需要在多个设备或托管节点之间协调多个步骤。 Windows PowerShell 工作流使 IT 专业人员和开发人员可以按工作流的形式创作多设备管理活动序列,或工作流中的单个任务。 Windows PowerShell 工作流使你能够调整 Windows PowerShell 脚本和 XAML 并将其作为工作流运行。 |
参考资料:
维基百科-PowerShell https://ja.wikipedia.org/wiki/PowerShell#PowerShell_7
转载请注明本网址。