如何开始使用PowerShell?

71

我曾经尝试过 PowerShell V1 的早期测试版,但自从它发布正式版本以来就没有再使用过。如何最好地开始使用 PowerShell?

应该使用哪个版本的 PowerShell(V1.0 vs 2.0 CTP's)?你在使用 PowerShell 做什么?有没有可以简化使用 PowerShell 的工具(比如开发环境)?


4
这个问题最好拆分成不同的部分,特别是最后一个关于IDE的问题。 - halr9000
15个回答

50

学习PowerShell的话,有很多很好的资源:

  1. Technet Virtual Labs (介绍Windows PowerShell)
  2. PowerShellCommunity.org - 论坛、博客、脚本库
  3. powershell on irc.freenode.net

  4. PowerShell播客 - PowerScripting.net 和 Get-Scripting.blogspot.com

对于IDE样式的环境,你有PowerShell Analyzer(免费)和PowerGUI(免费)、PowerShell Plus(商业)、PrimalScript(商业)和Admin Script Editor(商业)。

我尽可能地将所有事情都用PowerShell来完成。现在,我正在看 Psake,这是一个基于PowerShell的构建脚本环境。我使用它来管理我的Active Directory、Hyper-V、Twitter、一些键盘自动化(在winforms应用程序中托管PowerShell以获取按键),以及其他很多东西。另一个要检查的很酷的项目是PSExpect用于测试。我还将其用于数据库访问——通过应用程序监视对数据库行所做的更改。它也集成到我的网络监控解决方案中。

我还计划将PowerShell用作我正在开发的项目的脚本引擎。

编辑如果你只是学习PowerShell,我建议你专注于V1。当你变得更加熟练后,再看看CTP,但是从CTP到实际发布的V2,可能会有太多的变化,使其不适合作为你的学习工具。

版本2已经发布,可从XP SP3、Server 2003、Vista和Server 2008中获取,并在Win7和Server 2008 R2的盒装版本中提供。你所学习的V1知识仍然很有用,但现在我建议你集中精力学习V2,因为它具有更出色的功能集。

祝你好运!


据我所知,V1更偏向于面向开发人员的版本,而V2则更加面向IT,因为对于V2来说,人们不必通过打开Visual Studio来创建更复杂的cmdlet。 - dance2die
@Sung V1只是第一个版本。PowerShell的理念一直是以任务为导向的方式呈现命令。V2使得高级管理员扩展功能变得更加容易。 - Steven Murawski
@Sung 我期望每次更新都有更好的表现! :) - Steven Murawski
1
作为对最受欢迎答案的更新 -- V2 已于 2009 年 10 月底作为 Windows Management Framework Core 的一部分进行了隐秘发布(适用于 XP 和所有后续操作系统版本)-- http://support.microsoft.com/kb/968929 - Steve Gilham

23

以下是逐个回答你的问题。

下载 v2.0 的 CTP。我使用过 1.0 和 2.0 版本,并没有发现后者存在任何稳定性问题,而且它具有更多的功能

最好的方法是学习三个基本命令,并开始尝试使用。

步骤 1 - 使用 Get-Command 查找可用命令

例如,要查找所有“get”命令,只需键入:

*Get-Command get**

例如,要查找所有“set”命令,只需键入:

*Get-Command set**

步骤 2 - 使用 Get-Help 学习如何使用每个命令

要获取有关 Get-Command 命令的基本帮助,请键入:

Get-Help Get-Command

要获取更多信息,请键入:

Get-Help Get-Command -full

步骤 3 - 使用 Get-Member 发现对象属性和方法

Powershell 是一种面向对象的脚本语言。一切都是具有属性和方法的完整 .Net 对象。

例如,要获取 Get-Process 命令发出的对象的属性和方法,请键入:

Get-Process | Get-Member

还有一些其他的概念需要理解,如管道和正则表达式,但如果你已经做过一些脚本编写,这些应该已经很熟悉了。

我如何使用它?

有两个用途:

  1. 处理来自大规模分布式网格应用程序的日志文件。对此,它已被证明非常有价值和强大。
  2. 快速测试 .Net 类。

我赞同快速测试.NET类。能够在交互式脚本环境(REPL)中探索是一件大好事。当然,也要始终阅读文档... - GlennS

16

投票支持《PowerShell实战》(或者是《PowerShell无为》?),这本书非常好。《Windows PowerShell Cookbook》也是一本很不错的书,从一个非常不同的角度来解决问题。 - Jay Bazuzi

6
我刚发现了这本免费电子书,它链接在Windows PowerShell博客中: 掌握PowerShell

+1,因为它是一份出色的“入门PowerShell”的资源! - Zach Bonham

4

4
找到你需要解决的问题并使用PowerShell坐下来直到解决它。不要放弃并尝试其他方法。然后再找另一个、再找另一个…… 开始时,你可能需要花费更长的时间,但你将建立起可以用于未来的知识和脚本库。有一天你会回过头来发现你已经"知道"PowerShell了。这是非常棒的! :)

2

请查看PowerGUI,一个PowerShell图形用户界面和脚本编辑器。虽然我还没有使用它,但我看了示例视频,感觉非常好。此外,该网站维护有样本脚本库。

这里是另一个优秀的PowerShell参考资料。


2

1

我认为养成自动化小任务的习惯是训练PowerShell技能的好方法。例如,编写一个临时脚本而不是手工处理繁琐的文本处理任务。可能在最初的几次尝试中需要更长时间,但随着你变得更快并建立起一系列有用的代码片段,你可以节省很多时间。


我同意你的想法,是的,我们可以从自动化日常小任务开始,这是训练PowerShell的好方法。最简单的事情是在不打开命令提示符的情况下查找IP。我们可以从任何简单的网站开始,比如PS教程http://www.powershelltutorial.net/或computerpeformance.co.uk。 - Manoj Patil

1

PowerShell CTP不支持生产环境,并且在发货之前会有很多变化。我建议关注许多PowerShell博客(不要忘记PowerScripting播客)。这个主题没有缺乏好书。如果你想花一点钱,SAPIEN Technologies在www.scriptingoutpost.com上有一些自学材料。我相信Don Jones已经为CBT Nuggets制作了一系列培训视频。你可以在concentratedtechnology.com上找到更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接