PowerShell 5值得拥有的四大特性

日期: 2016-03-03 作者:Adam Bertram翻译:邹雅玲 来源:TechTarget中国 英文

微软在Windows PowerShell 5研发过程中投入很多时间和精力,试图增加许多新功能特性。例如分类、PowerShellGet模块、PackageManagement模块以及新型Write-Information命令这些PowerShell 5中比较突出的特性已经受到许多行业人士的关注。 然而,PowerShell中仍有几十个非常有用的性能在数次更新中销声匿迹。PowerShell 5中有四项新特性,我认为这些特性是非常值得报导和关注的。

更出色的文件管理命令 Lee Holmes是微软公司PowerShell项目的一名高级软件开发工程师,几年前,他创建了一种非常受欢迎的脚本,叫做S……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

微软在Windows PowerShell 5研发过程中投入很多时间和精力,试图增加许多新功能特性。例如分类、PowerShellGet模块、PackageManagement模块以及新型Write-Information命令这些PowerShell 5中比较突出的特性已经受到许多行业人士的关注。

然而,PowerShell中仍有几十个非常有用的性能在数次更新中销声匿迹。PowerShell 5中有四项新特性,我认为这些特性是非常值得报导和关注的。

更出色的文件管理命令

Lee Holmes是微软公司PowerShell项目的一名高级软件开发工程师,几年前,他创建了一种非常受欢迎的脚本,叫做Send-File.ps1,该脚本可以将文件远程发送到 PowerShell会话中。该脚本实用性非常强,因为它并不再需要通过Server Message Block将文件从A点传送到B点。

有了该脚本,管理人员不用再担心在防火墙上再增开一个端口。通过远程TCP端口,文件副本也可以使用PowerShell。微软公司决定通过使用ToSession参数在Copy-Item命令中执行脚本功能,从而将该功能添加到本地代码库中。

图1. 微软公司使用了一种更加完美的方式来复制PowerShell会话间的文件或者文件夹

图1. 微软公司使用了一种更加完美的方式来复制PowerShell会话间的文件或者文件夹

图1中的例子向我们展示了如何使用远程电脑构建新的PowerShell会话,指定了本地文件来源、目的地以及可用的会话。不再需要编辑额外脚本文件。

增加了本地.zip支持功能

以前的PowerShell版本不支持创建和扩展.zip文件,我们不得不为了获得脚本功能而清除Internet记录。PowerShell 5可以使.zip文件编辑功能变得更加方便,因为这种支持功能被内置到Microsoft.PowerShell.Archive模块的编程语言中。该模块中包含了一种名为Compress-Archive的命令,可以创建.zip文件,以及另外一种名为Expand-Archive的命令,可以扩展或解压.zip文件。

图2. Compress-Archive可以获取一组文件并将其压缩到.zip文件中

图2. Compress-Archive可以获取一组文件并将其压缩到.zip文件中

在图2中,你可以看到,将一系列文件收集到文件夹中,然后传递到Compress-Archive压缩成.zip文件。同样可以实现逆向功能,你可以将.zip文件传递到 Expand-Archive中,然后扩展文件内容。

本地符号链接功能

Linux系统的Bash外壳具备创建文件系统符号链接功能已经有相当一段时间了。从技术角度来看,尽管通过.NET开发代码或者使用例如mklink.exe这样的命令行工具是有可能在以前的PowerShell版本中实现符号链接功能,但是,现在PowerShell 5却已经将其融入到本地化基础功能中。

通过在New-Item命令的ItemType参数中增加一种参数变量,你便可以创建本地符号链接,而不需要使用任何外部命令行工具或者.NET代码。

图3. ItemType参数与New-Item命令结合可以在PowerShell 5中建立符号链接

图3. ItemType参数与New-Item命令结合可以在PowerShell 5中建立符号链接

图3中,我们在C:WindowsTemp文件夹中创建了名为MySymLinkFile.txt的符号链接,并将该文件夹与目录中的text.txt文件相连接。各位要注意Mod属性以及代表符号链接的最后一个属性字母“I”。

用Get-ChildItem限制文件夹深度

PowerShell早已具备Get-ChildItem命令,可以列出许多供应商项目。使用Get-ChildItem命令来记录文件系统或者注册表中的文件、文件夹是该命令中常用的一种方法。文件系统及注册表中都是通过分层的形式来存储信息的。

系统管理人员可以使用-Recurse参数查找存储在子文件夹或者注册表中的项目,这种参数能够浏览分层项目,列出所有子文件夹或者注册表。但是,限制分层深度却一直是一项不小的挑战。微软试图使用–Depth参数开发Get-ChildItem,期望可以使该开发任务变得更加容易。

图4. 微软开发–Depth参数,将其用于Get-ChildItemcmdlet中,限定文件夹列表深度

图4. 微软开发–Depth参数,将其用于Get-ChildItemcmdlet中,限定文件夹列表深度

目前,我们的文件夹结构一般都是五级,在Get-ChildItem命令中使用–Recurse参数后,我可以列出每一个文件夹。但是,在图4中,我只想控制所有文件夹都保持在二级水平,那么,只有通过使用–Depth参数才能实现想要的层级数量效果。

以上仅仅是展现了PowerShell 5更新后的四个功能而已。要想查看所有功能,请点击题为《What's New in PowerShell Technet》文章,文中微软公司详细阐述了PowerShell 5的各项功能特性。

作者

Adam Bertram
Adam Bertram

自由撰稿人

相关推荐

  • 使用PowerShell 5轻松分析字符串

    微软研究院为完成FlashExtract项目而开发了ConvertFrom-String命令。接下来让我们首次谈谈 ConvertFrom-String是如何使用分隔符分析并将字符串转化成结构化对象的。

  • Windows Server 10技术预览版十大最佳特性

    微软在本月初大手笔发布了Windows 10、Windows Server 10和系统中心的技术预览版本。这些预览版本很明显是微软背离常态的产品。不知道给您带来了多少惊喜呢?