Powershell 初学者教程:学习 Powershell 脚本
什么是PowerShell?
Windows PowerShell的 是一种面向对象的自动化引擎和脚本语言。它主要为 IT 专业人员和系统管理员设计,用于控制和自动化 Windows OS 和其他应用程序。它提供了引人注目的新概念来扩展您获得的知识以及您在 Windows 命令提示符和 Windows 脚本宿主环境。
它结合了脚本的灵活性、命令行速度和基于 GUI 的管理工具的强大功能。它可帮助系统管理员减少未来的人工劳动时间,从而让您高效地解决问题。我们将介绍学习 PowerShell 时应该了解的所有重要方面。
这是 Powershell 脚本基础的完整指南...让我们开始吧!
为什么使用 Powershell?
以下是使用 Powershell 的一些重要原因:
- Powershell 为操作系统提供了良好集成的命令行体验
- PowerShell 允许完全访问 .NET 框架中的所有类型
- 受到系统管理员的信任。
- PowerShell 是一种操作服务器和工作站组件的简单方法
- 它通过创建更简单的语法面向系统管理员
- PowerShell 比运行更安全 VBScript中 或其他脚本语言
PowerShell 历史
PowerShell 的第一个版本 1.0 于 2006 年发布。如今,PowerShell 的版本是 7.2。随着时间的推移和版本的更迭,PowerShell 的功能和托管环境显著增强。
让我们看一下 Powershell 的版本历史:
- PowerShell 版本 1 支持本地管理 Windows 服务器2003“
- PowerShell 2.0 与 Windows 7和 Windows 服务器 2008 R2。此版本支持远程处理并增强了 PowerShell 的功能,如事务、后台作业、事件、调试等。
- PowerShell 3.0 作为 Windows 管理框架。它安装在 Windows 8和 Windows 服务器2012。您可以添加和安排作业、会话连接、自动模块加载等。
- PowerShell 4.0 附带 Windows 8.1和 Windows 服务器 2012 R2。此版本增加了对所需状态配置、增强调试、网络诊断的支持。
- PowerShell 5.0 作为内部组成部分发布 Windows 管理框架5.此版本提供的功能包括远程调试、类定义、.NET枚举等。
- PowerShell 7.2 发布。它基于 .NET 6.0 构建。此版本提供新的运算符、简化和动态的错误视图、自动新版本通知等。
接下来在本 Powershell 脚本教程中,我们将了解 Powershell 的功能。
Powershell 的功能
- PowerShell Remoting:PowerShell 允许在远程计算机上调用脚本和 cmdlet。
- 后台作业:它可以帮助您异步调用脚本或管道。您可以在本地机器或多台远程操作的机器上运行您的作业。
- 交易:启用 cmdlet 并允许开发人员执行
- 晚间: 此命令可帮助您监听、转发和处理管理和系统事件。
- 网络文件传输: Powershell 使用后台智能传输服务 (BITS) 技术为机器之间的优先、异步、节流文件传输提供本机支持。
如何启动 PowerShell
现在,在本 Powershell 脚本教程中,我们将学习如何在 Windows OS。
PowerShell 已预安装在所有最新版本的 Windows。我们需要启动 PowerShell,为此我们需要遵循给定的步骤:
步骤1) 在以下位置搜索 PowerShell Windows. 选择并点击
步骤2) Power Shell 窗口打开
PowerShell 命令
cmdlet 也称为 Command let,是 Windows 基础 PowerShell 环境中使用的轻量级命令。PowerShell 在命令提示符中调用这些 cmdlet。您可以使用 PowerShell APIS 创建和调用 cmdlet 命令。
Cmdlet 与命令
Cmdlet 与其他命令 shell 环境中的命令有以下不同之处?
- Cmdlet 是 NET框架。 类对象不能单独执行
- Cmdlet 仅需十几行代码即可构建
- 解析、输出格式和错误显示不由 cmdlet 处理
- Cmdlet 进程作用于对象。因此文本流和对象不能作为管道的输出传递
- Cmdlet 是基于记录的,因此它每次处理一个对象
大多数 PowerShell 功能来自 Cmdlet,它始终采用动词-名词格式,而不是复数。此外,Cmdlet 返回对象而不是文本。cmdlet 是一系列命令,多于一行,存储在扩展名为 .ps1 的文本文件中。
cmdlet 始终由动词和名词组成,用连字符分隔。一些用于学习 PowerShell 的动词如下:
- 积极 — 得到某物
- 开始 — 运行某物
- 输出 — 输出某些内容
- Stop 停止 — 停止正在运行的事情
- 选择 — 定义某事
- 新建 — 创造一些东西
PowerShell命令
以下是重要的 PowerShell 命令列表:
得到帮助: 有关 PowerShell 命令和主题的帮助
示例:显示有关命令 Format-Table 的帮助信息
Get-Help Format-Table
获取命令: 获取有关任何可调用的信息
Powershell 脚本示例:生成计算机上安装的 cmdlet、函数列表
Get-Command
获取服务: 查找其中包含单词“service”的所有 cmdlet。
示例:获取所有以“vm”开头的服务
Get-Service "vm*"
获取-会员: 展示一个对象能做什么
示例:获取 vm 进程的成员。
Get-Service "vm*" | Get-Member
其他命令:
- 获取模块显示命令包
- 获取内容此 cmdlet 可以获取文件并处理其内容并对其进行某些操作。
- Get- get 查找以单词“get-”开头的所有 cmdlet
示例:创建文件夹
New-Item -Path 'X:\Guru99' -ItemType Directory
输出:
Powershell 数据类型
特殊变量
特殊变量 | 描述 |
---|---|
$错误 | 显示最新错误的错误对象数组 |
$主机 | 显示当前托管应用程序的名称 |
$个人资料 | 存储默认 shell 的用户配置文件的完整路径 |
$PID | 存储进程标识符 |
$PSUI文化 | 它保存了当前 UI 文化的名称。 |
$NULL | 包含空值或 NULL 值。 |
$False | 包含 FALSE 值 |
$真 | 包含 TRUE 值 |
PowerShell脚本
Powershell 脚本存储在 .ps1 文件中。默认情况下,您不能通过双击文件来运行脚本。这可以保护您的系统免受意外损害。要执行脚本:
步骤 1:右键单击它,然后单击“使用 PowerShell 运行”。
另外还有一个限制脚本执行的策略,可以通过Get-ExecutionPolicy命令查看这个策略。
您将获得以下输出之一:
- 受限— 不允许使用脚本。这是默认设置,因此当您运行该命令时它将第一次显示。
- 使用AllSigned— 您可以运行由受信任的开发人员签名的脚本。借助此设置,脚本将在执行之前要求您确认是否要运行它。
- 下RemoteSigned— 您可以运行您的或由受信任的开发人员签名的脚本。
- 无限制— 你可以运行任何你想运行的脚本
更改执行策略的步骤
步骤1) 打开提升的 PowerShell 提示符。右键单击 PowerShell 并“以管理员身份运行”
步骤2) 输入以下命令
- GET-ExecutionPolicy
- 设置执行策略不受限制
- 在提示中输入 Y
- GET-ExecutionPolicy
第一个 PowerShell 脚本
在记事本中写入以下命令
Write-Host "Hello, Guru99!"
PowerShell 脚本的扩展名为 ps1。将文件另存为 FirstScript.ps1
在 Powershell 中,使用命令调用脚本
& "X:\FirstScript.ps1"
什么是 PowerShell ISE?
这个 Windows PowerShell 集成脚本环境 (ISE) 是 Windows PowerShell。在此 ISE 中,您可以在基于窗口的 GUI 环境中运行命令、编写测试和调试脚本。您可以进行多行编辑、语法着色、制表符补全、选择性执行和许多其他操作。
Windows PowerShell ISE 还允许您在控制台窗格中运行命令。但是,它还支持可用于同时查看脚本源代码和可插入 ISE 的其他工具的窗格。
您甚至可以同时打开多个脚本窗口。这在调试使用其他脚本或模块中定义的函数的脚本时特别有用。
我们在记事本中创建的相同脚本可以在 ISE 中创建
- 将代码粘贴到编辑器中
- 保存脚本
- 使用 F5 运行脚本
- 观察控制台中的输出
范例2:
以下代码将免费赠送 虚拟内存 在你的机器中
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
PowerShell的 Concepts
现在,在本 Powershell 初学者教程中,我们将学习重要的 Powershell 概念:
cmdlet | Cmdlet 是用 VB 或 C# 等 .net 语言编写的构建命令。它允许开发人员通过加载和编写 PowerShell 管理单元来扩展 cmdlet 集。 |
功能 | 函数是用 PowerShell 语言编写的命令。它可以在不使用其他 IDE 的情况下进行开发,例如 Visual Studio中 和开发人员。 |
脚本 | 脚本是磁盘上带有 .ps1 扩展名的文本文件 |
应用 | 应用程序是现有的 Windows 程序。 |
如果 | 告诉 cmdlet 不要执行,但告诉您如果 cmdlet 运行会发生什么。 |
确认 | 指示 cmdlet 在执行命令之前进行提示。 |
详细 | 提供更高级别的细节。 |
调试 | 指示 cmdlet 提供调试信息。 |
错误动作 | 指示 cmdlet 在发生错误时执行特定操作。允许的操作包括继续、停止、静默继续和查询。 |
误差变量 | 它指定保存错误信息的变量。 |
输出变量 | 告诉 cmdlet 使用特定变量来保存输出信息 |
输出Buffer | 指示 cmdlet 在调用管道中的下一个 cmdlet 之前保留特定数量的对象。 |
使用 PowerShell 脚本的优点
- PowerShell 脚本非常强大,可以用更少的行完成很多事情。
- 变量以 $ 形式声明
- 变量可用于保存命令、对象和值的输出。
- 变量的“类型”不需要指定。
PowerShell 与命令提示符
PowerShell的 | 命令提示符 |
---|---|
PowerShell 与 Windows 操作系统。它提供了交互式命令行界面和脚本语言。 | 命令提示符是 Microsoft。它是一个简单的 win32 应用程序,可以与任何 win32 对象进行交互和对话 Windows 操作系统。 |
PowerShell 使用所谓的 cmdlet。它可以在运行时环境或自动化脚本中调用。 | 命令提示符没有提供此类功能。 |
PowerShell 将它们视为对象。因此,输出可以通过管道作为输入传递给其他 cmdlet。 | 命令提示符甚至是 *nix shell,从 cmdlet 生成的输出不仅仅是文本流,而是对象的集合。 |
PowerShell 在特性、能力和内部功能方面非常先进。 | 命令提示符非常基础。 |
Powershell 的应用
如今,PowerShell 已成为 IT 管理员的理想选择,因为它简化了大型企业网络中的管理操作和工作量。例如,假设您正在管理一个包含四百多台服务器的大型网络。现在您想要实施一种新的安全解决方案。此安全解决方案依赖于需要在这些服务器上运行的某项服务。
您当然可以登录到每台服务器,查看它们是否安装并运行了该服务。但是,这肯定会造成很多人为错误,因为您的员工需要在这个非生产性流程上花费大量时间。
但是,如果您使用 PowerShell,那么只需几分钟即可完成此任务。这是因为整个操作都是通过一个脚本完成的,该脚本收集有关服务器上运行的服务的信息。
结语
- Windows PowerShell 是面向对象的自动化引擎和脚本语言
- Powershell 为操作系统提供了良好集成的命令行体验
- PowerShell 第一个版本 1.0 于 2006 年发布
- PowerShell 允许在远程计算机上调用脚本和 cmdlet
- PowerShell 已预安装在所有最新版本的 Windows
- cmdlet 是在 Windows 基础 PowerShell 环境中使用的轻量级命令
- Get、Start、Out、Stop、Set、New 是重要的 PowerShell 命令
- Boolean、Byte、Chat、Decimal、Decimal、Long 是 PowerShell 的重要数据类型
- $Error. $Host、$Profile、$PID、$PSUICulture、$NULL 是 PowerShell 中使用的一些特殊变量
- 这个 Windows PowerShell 集成脚本环境 (ISE) 是 PowerShell 的默认编辑器
- PowerShell 与 Windows 操作系统,而命令提示符是操作系统提供的默认命令行界面 Microsoft
- PowerShell 已成为 IT 管理员的理想选择,因为它简化了大型企业网络中的管理操作和工作量