[玩转系统] 欢迎使用 PowerShell 7
作者:精品下载站 日期:2024-12-14 08:09:27 浏览:16 分类:玩电脑
欢迎使用 PowerShell 7
PowerShell 7 是 PowerShell Core 和 Windows 内置的 Windows PowerShell 的继任者。本文向您简要概述了主要新功能,并解释了为什么值得更新。
PowerShell 7 - 亮点
PowerShell 7 是 Microsoft 推荐的适用于 Windows 的新 shell 环境。与 Windows PowerShell 不同,最新的 LTS 版本 PowerShell 7 基于 .NET Core 3.1。
这一变化的关键影响是,PowerShell 7 现在可以跨 Windows、Linux 和 MacOS 平台使用,不仅可以在本地使用,还可以在云中和混合基础设施中使用。
此外,.NET Core 3.1 的更新承诺提高性能、与 Windows PowerShell 模块更好的兼容性以及其他新功能,我们将在下文中讨论这些内容。
PowerShell 7 下载和安装
系统要求
与 Windows PowerShell 相比,Windows 安装中默认情况下尚未包含 PowerShell 7,并且 Microsoft 目前不打算删除 Windows 中预安装的 Windows PowerShell。
然而,正如上一段所述,PowerShell 7 是跨平台的,支持 Windows、macOS 和 Linux。根据 Microsoft Docs(截至 2020-07-30),PowerShell 7 目前可用于以下 x64 操作系统
- Windows 7、8.1 和 10
- Windows Server 2008 R2、2012、2012 R2、2016 和 2019
macOS 10.13 - 红帽企业 Linux (RHEL)/CentOS 7+
- 软呢帽 29+
- Debian 9+
- 乌班图 16.04+
- openSUSE 15+
- 阿尔派Linux 3.8+
- macOS 10.13+
安装
安装 PowerShell 7 的方法有多种。一般来说:由于 PowerShell 自 2016 年起开源,因此可以从 PowerShell GitHub 存储库免费下载安装文件。
下载完成后,只需双击该文件即可安装。
在 Windows 上,还可以通过 Windows PowerShell 中的“Steve Lee One-Liner”执行安装:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
同样,可以使用以下命令从控制台在 Linux 上安装 PowerShell 7:
sudo wget https://aka.ms/install-powershell.sh; sudobash install-powershell.sh; rminstall-powershell.sh
有关 Windows 和 Linux 上相应过程的详细信息,请参阅 Microsoft 高级云倡导者 Thomas Maurer 的博客。
在 Windows 上使用 PowerShell 7
2017 年底,微软支持宣布 PowerShell 将取代命令提示符作为文件资源管理器的命令 shell。
当然,您还可以将 PowerShell 7 与适用于 Windows 10 的新 Windows 终端结合使用。如果需要,您甚至可以并行使用 PowerShell 和命令提示符:默认情况下,Windows 终端使用 PowerShell 7,但您可以可以在选项卡中并行打开 Windows PowerShell、命令提示符、Azure Cloud Shell 和任何远程 shell (winrm/ssh)。如果您在 Windows 中安装了适用于 Linux 的 Windows 子系统,您甚至可以包含 Unix shell。
在 Linux 上使用 PowerShell 7
正如“系统要求”部分中已经描述的,PowerShell 7 正式支持许多 Linux 发行版,以及一些,例如 Arch Linux, Kali 和 Raspbian,由社区支持。
这些平台的集成不仅为现有的 PowerShell 用户带来了优势,他们现在可以将其专业知识转移到新的基础设施中。它还为 Linux 用户(分别是 Bash 用户)带来了优势,他们现在还可以在 PowerShell 中使用对象而不仅仅是字符串。
值得注意的是,SSH 是 Linux 计算机的 PowerShell 7 远程管理的关键组件,因为它可以在 Windows 和 Linux 计算机之间实现真正的 PowerShell 远程处理。
PowerShell 7 与 Windows PowerShell
兼容性
PowerShell 7 包含许多新的 cmdlet 和运算符,并且仅删除了少数 cmdlet,例如 WMI cmdlet。但是,并非所有 Windows PowerShell 模块都与新 shell 兼容。在这种情况下,Windows 仍然允许您并行使用 Windows PowerShell(如前文所述)。
您可以使用 Get-Module -ListAvailable 命令显示可与 PowerShell 7 一起使用的所有本地可用模块的列表(图 1)。
图 1:输出 PowerShell 模块以与 PowerShell 7 一起使用
有关 Microsoft 发布的本机与 PowerShell 7 配合使用或与 PowerShell 7 兼容的模块的概述,请参阅在线兼容性列表。
Windows 用户还可以使用带有 -UseWindowsPowerShell 参数的Import-Module cmdlet。此命令使您可以更轻松地切换到 PowerShell 7,并使您能够继续使用 Windows PowerShell 模块。该参数在 PowerShell 7 中创建一个代理模块,该模块使用本地 Windows PowerShell 进程隐式运行该模块中包含的所有 cmdlet。
当然,并非所有针对 Windows 优化的 cmdlet 在 Linux 和 macOS 版本中都可用。但同样,微软也在不断进行改进。但是,您可以预期 Linux 和 macOS 肯定永远不会拥有与 Windows 相同的 cmdlet 集。
差异
下表概述了 Windows PowerShell 和 PowerShell 7 之间的基本差异。
PowerShell 7 中的新功能
基于 SSH 的 PowerShell 远程处理
Powershell 7 最重要的新功能之一无疑是引入 SSH 作为 PowerShell 远程处理的网络协议。 SSH 远程处理适用于所有平台,从而实现真正的多平台 PowerShell 远程处理。
作为此更改的一部分,还向 New-PSSession、Enter-PSSession 和 Invoke- 添加了一组支持 SSH 远程连接的新参数。命令 cmdlet:
[-HostName ] [-UserName ] [-KeyFilePath ]
三元运算符“a ?乙:丙”
新的三元运算符 a a ? b : c 允许您制定简化的“if-else”语句。
语法如下:
[condition] ? [if-true] : [if-false]
[condition] 代表要计算的条件表达式。该评估的结果被转换为布尔值。这又决定了序列中执行哪个表达式。一个简单的例子。我们要检查等式 10*5=20 是 true还是 false:
$total = 10*5 -eq 20 ? 'yes' : 'no'
另一个例子,我们要检查所使用的系统是 MacOS、Linux 还是其他系统(Windows)。
# PowerShell 7
$IsMacOS? 'You are on a Mac' : $IsLinux? 'You are on Linux' : 'You must be on Windows’
# Windows PowerShell
If ($IsMacOS) { 'You are on a Mac' } elseif ($IsLinux) { 'You are on Linux' } else { 'You must be on Windows' }
管道链运营商 && 和 ||
可以与 | 一起使用的管道函数我们从一开始就认识到 PowerShell 相对于旧命令提示符的巨大优势。它允许串联多个命令来执行常见操作(可以说是“迷你脚本”)。
从 PowerShell 7 开始,可以有条件地将多个管道链接在一起。为此,PowerShell 7 提供了管道链运算符 && 和 ||。两个运算符的作用是管道的各个部分仅在特定条件下执行。
两个运算符之间的区别在于,当您使用&&时,仅当管道的左侧部分未返回错误时才会执行管道的右侧部分(“当前一个没有返回错误时执行”)。示例:
Write-Output 'Hello' && Write-Output 'World'
# Output
Hello World
在上面的示例中,管道的两个部分都执行没有错误。
相反,当使用 || 时,仅当管道左侧部分的命令返回错误时才执行管道右侧部分(“仅当前一个返回错误时才执行”) .示例:
Write-Output 'Hello' || Write-Output 'World'
# Output Hello
在第二个示例中,管道的左侧部分执行时没有错误,因此管道的右侧部分未执行。
另一个例子:
Get-Process notepad -ErrorAction SilentlyContinue || "Notepad process is not available"
如果记事本正在运行,则会显示有关该进程的信息,如果没有运行,则会显示文本“记事本进程不可用”(图 2)。
图 2:链接的 PowerShell 管道的输出
有关 PowerShell 7 中新管道链运算符的详细说明,请参阅 Microsoft 文档。
NULL 条件运算符:??和??=
与新的管道链运算符类似,新的 NULL 条件运算符用于执行条件查询:
NULL 合并运算符 ?? 如果左操作数不为 NULL,则返回其值。否则,它将计算正确的操作数并返回其结果。示例:应检查 $x 是否为 NULL。
# $x is assigned the value $null
$x = $null
# the new operator ?? is used to check whether the left operand $x is NULL
$x ?? 100
# since this is true, the right operand "100" is evaluated and its result is returned
100
如果左操作数的计算结果为 NULL,NULL 赋值运算符 ??= 将右操作数的值赋给左操作数。示例:如果 $x 为 NULL,则应为其分配值“100”。
# $x is assigned the value $null
$x = $null
# now ??= is used to check whether the left operand $x is NULL
$x ??= 100
# since this is true, the right operand "100" is evaluated and its result is assigned to the left operand
$x
100
ForEach-Object - 并行功能
Foreach-Object 命令以前只允许对输入对象集合顺序执行操作。管道中对象的并行处理只能通过使用PSWorkflow Cmdlt 来实现。
通过新的 -Parallel 参数集,PowerShell 现在在 ForEach-Object 循环中提供此选项:
ForEach-Object
[-InputObject ]
-Parallel
[-ThrottleLimit ]
[-TimeoutSeconds ]
[-AsJob]
[-WhatIf]
[-Confirm]
[]
ThrottleLimit 参数可用于限制并行处理的线程数量,以确保处理器核心不会过载。
对于不需要处理能力时涉及较长等待时间的脚本块,设置比可用处理器核心数更高的 ThrottleLimit 很有用。
应该注意的是,多线程本身会产生一些开销,因为必须为并行执行的每个脚本块创建单独的运行空间。因此,此过程仅适用于较长的计算密集型操作。
以下是可能用例的示例:应通过 Test-NetConnection 命令查询多个端口。在第一部分中,ForEach-object 循环按顺序处理:
# Sequential processing
Measure-Command {
$port = '53','80','88','443'
$port | ForEach-Object {
Test-NetConnection -ComputerName 172.30.5.10 -Port $_
}
} | Select-Object Minutes,Seconds
如图3所示,该操作顺序执行的持续时间为1分44秒。
图 3:Windows PowerShell 中 ForEach-Object 循环的顺序处理
第二部分,在PowerShell 7中进行操作,并添加参数-Parallel:
# Parallel processing
Measure-Command {
$port = '53','80','88','443'
$port | ForEach-Object -Parallel {
Test-NetConnection -ComputerName 172.30.5.10 -Port $_
}
} | Select-Object Minutes,Seconds
如图4所示,该操作的并行处理持续时间仅为15秒。
图 4:PowerShell 7 中 ForEach-Object 循环的并行处理
我们在网络研讨会“使用 PowerShell 7 成功实现自动化”中展示了更多并行处理的使用案例
PowerShell 7 中的错误处理:ConciseView 和 Get-Error Cmdlet
PowerShell 7 向 $ErrorView 变量添加了新选项,以使错误消息的显示更加用户友好:除了现有视图(NormalView 和 CategoryView)之外,
此外,新的Get-Error cmdlet提供了错误的全面详细视图,包括异常、堆栈跟踪等。
结论
上述功能只是 PowerShell 7 新增功能的一小部分示例。下面的链接集合提供了一些资源,您可以使用这些资源来了解最新版本。
了解最重要的新功能的另一种方法是参加 ScriptRunner 网络研讨会“使用 PowerShell 7 成功实现自动化”,您不仅可以了解 PowerShell 7 的其他新功能和使用场景,还可以了解如何在 ScriptRunner 中使用它们。
相关内容
- PowerShell |一次自动化世界...... - PowerShell 团队的官方博客
- GitHub - PowerShell/PowerShell 7:适用于每个系统的 PowerShell!
- PowerShell 7 文档 |微软文档
- 网络研讨会:使用 PowerShell 7 成功实现自动化
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag