一、什么是Windows PowerShell ?

  官方说明 http://technet.microsoft.com/zh-cn/library/cc196356.aspx

  Windows PowerShell 不仅仅是一种脚本语言。Windows PowerShell 是一种引擎,通过运行命令来执行管理任务,例如:创建一个用户帐户、配置一个服务、删除一个邮箱等等。

  Windows PowerShell 提供多种途径,让你可以指定执行哪些命令。例如,你可以在一个命令行控制台窗口手动输入一个命令的名称。你也可以在一个集成脚本环境(integrated scripting environment,即ISE)输入多个命令,这种环境为你提供更多的丰富的图形化命令行环境。Windows PowerShell 还可以集成到一个应用程序,允许多个命令被运行,以响应用户的操作,例如,用户点了一个按钮或图标。你可以将一系列的命令输入到一个文件文件,然后通知 shell 运行文件中的多个命令。

  在理想的世界里,Windows PowerShell 是一个单一的、集中的管理功能。理想理念里,你可能使用一个图形用户界面(GUI),有按钮、图标、对话框,以及在后台运行 Windows PowerShell 命令的其它元素。如果 GUI 不允许你完全按照你的想法实现一个任务,你可能绕过 GUI,然后选择按你想要的顺序和途径,直接在命令行控制台运行那些同样的命令。许多 Microsoft 的产品都内置了那些确切的方式,包括 Microsoft Exchange Server 2007 和 Microsoft Exchange Server 2010。 Active Directory Administrative Center 也是这样的被集成到 Windows Server 2008 R2 。因此,你可以选择使用 GUI 在后台运行 Windows PowerShell 命令,或者选择在 Windows PowerShell 控制台或 ISE 直接运行命令。

  由于有了这个选项,你可以直接运行命令或者作为 GUI 的一部分被运行,因此 Windows PowerShell 非常受人关注。在这方面,Microsoft 认识到并确认了一些任务在一个GUI中非常容易实现,尤其是那些不是经常执行的任务。一个 GUI 可以引导你实现复杂的操作,可以帮助你更容易地理解你的选择和那些选项。然而,Microsoft 也认识到,如果你需要重复执行某些任务,一个 GUI 可能会使任务变得低效。 通过以 Windows PowerShell 命令的形式搭建尽可能多的管理功能,你可以对那些给定的任务做出正确的选择:是 GUI 用起来更容易,还是强大的自定义的命令行外壳。 

  随着时间的推移,Windows PowerShell 可能替换你曾经用过的那些低级的管理工具。例如,Windows PowerShell 已经实现了支持 Visual Basic Script Edition (VBScript),因为 shell 已经接近 VBScript 能实现的那些功能,然而在一些案例中,shell 提供了更容易的方法来实现相 的任务。Windows PowerShell 还可能替换你使用的 Windows Management Instrumentation (WMI)。尽管 WMI 仍然非常有用,它却也是复杂的使用。Windows PowerShell 可以在底层的 WMI 功能上包裹一些特定任务的命令。你的技术仍然使用 WMI,但是你的操作变得更容易,因为你可以运行易用、基于任务的命令。

 

二、安装Windows PowerShell 2.0 安装

1、安装需求

  Windows Server 2008 R2 和 Windows 7 (OS version=6.1)已经默认安装 Windows PowerShell  2.0。

  对于Windows Server 2003、Windows Server 2008、Windows XP 和 Windows Vista,Windows PowerShell  2.0 需要从官网下载 Windows Management Framework Core (WinRM2.0 和 Windows PowerShell 2.0)。http://support.microsoft.com/kb/968929

  Windows PowerShell  2.0 需要 Microsoft .NET Framework 2.0 with SP1。

  Windows PowerShell  ISE 需要 Microsoft .NET Framework 3.5 with SP1。

 

2、示例:使用“服务器管理器”安装 PowerShell 1.0

  Windows Server 2008 自带了 PowerShell 1.0,可以直接添加这个功能。打开“服务器管理器”,然后“添加功能”。 

Windows PowerShell:(1)简介及安装过程_Powershell 

Windows PowerShell:(1)简介及安装过程_Powershell_02 

Windows PowerShell:(1)简介及安装过程_Powershell_03 

 

3、Windows Server 2008 x86 安装示例

  PowerShell 2.0 默认集成在 Windows Server 2008 R2、Windows 7 操作系统。对于OS version 低于6.1的操作系统,需要到官网下载安装包。找到这个下载的文件,然后运行。 例如,Windows Server 2008 x86 的安装过程如下: 

Windows PowerShell:(1)简介及安装过程_Powershell_04  

  如果本机已经安装过Windows PowerShell 2.0,则会出现以下提示:

Windows PowerShell:(1)简介及安装过程_Powershell_05 

  安装时,实际使用的是Windows Update的更新功能。 

Windows PowerShell:(1)简介及安装过程_Powershell_06 

  安装完成之后,重启Windows。 

Windows PowerShell:(1)简介及安装过程_Powershell_07 

  安装完成之后,会自动删除原有的PowerShell 1.0。

Windows PowerShell:(1)简介及安装过程_Powershell_08 

  注意:如上图所示,在 x64 操作系统环境,菜单上会显示x86和x64两个版本。

 

4、验证安装

  PowerShell 默认安装在 %SystemRoot%\System32\WindowsPowerShell 目录。

PowerShell 1.0

Windows PowerShell:(1)简介及安装过程_Powershell_09

PowerShell 2.0

Windows PowerShell:(1)简介及安装过程_Powershell_10

    除了在“开始”菜单的“附件”可以看到“Windows PowerShell”程序组,还可以在“管理工具”列表中看到“Windows PowerShell Moduls”。

Windows PowerShell:(1)简介及安装过程_Powershell_11

 

三、安装 ISE

1、Windows Server 2008 

  Windows Server 2008  在运行 PowerShell 2.0 的安装包时,就自动安装了 ISE 。

 

2、Windows Server 2008 R2

  Windows Server 2008 R2 默认没有安装ISE。打开“服务器管理器”,然后“添加功能”。  

Windows PowerShell:(1)简介及安装过程_Powershell_12 

  ISE 是运行在GUI的,除了需要图形界面的驱动程序之外,还需要安装 .NET Framework 3.5 sp1 。 

 

Windows PowerShell:(1)简介及安装过程_Powershell_13

 

四、Windows PowerShell 语法概述

  Windows PowerShell 引入了 cmdlet(读作“command-let”)的概念,这是内置到 shell 中的一个简单的单一功能命令行工具。可以分别使用每个 cmdlet,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。Windows PowerShell 包括一百多个基本的核心 cmdlet,您可以编写自己的 cmdlet 并与其他用户共享它们。

1、常规的cmdlets

  常规的cmdlets主要有4类:

(1)Get cmdlets 用来获取数据

(2)Set codlets 用来创建或修改数据

(3)Format cmdlets 用来格式化数据(-List 、-Custom 、-Table 、-Wide)

(4)Out cmdlets 用来直接输出到指定的目标。

  可以将多个cmdlets组合起来,实现多个操作。

  语法一般为3部分。第一部分为动词(Verb),第二部分为名词(Noun),第三部分为参数(parameters)。例如:

Get-ADUser  ZhangS
Set-ADUser  -Department "Marketing"
Get-ADUser  -Filter 'Name  -like  "SvcAccount" '

 

2、管道

  cmdlets可以作为其它cmdlets的管道。例如: 

Get-ADUser ZhangS | Set-Department "Marketing"

Get-Process | Sort-Object Handles | Format-Table

 

3、参数

  对于常规的参数:(1)为Windows PowerShell 提供一致的界面;(2)使用参数从而不会导致发生错误;(3)参数可能在某些 cmdlets 中不会发生任何效果。(4)例如:

Get-help about_commonparameters

  对于可选的参数,使用时输入一个参数值,而不用输入参数的名称。在语法示例时,用方括号显示它的名称。例如:

Get-help [[-Name] <string>] 

 

五、Windows PowerShell 3.0

  Windows PowerShell v3将伴随着Microsoft Hyper-V 3.0和Windows Server 2012发布。PowerShell v3是一个Windows任务自动化的框架,它由一个命令行shell和内置在这个.NET框架上的编程语言组成。

  PowerShell v3采用新的cmdlet让管理员能够更深入到系统进程中,这些进程可以制作成可执行的文件或脚本(script)。一条cmdlet是一条轻量命令,Windows PowerShell运行时间在自动化脚本的环境里调用它。Cmdlet包括显示当前目录的Get-Location,访问文件内容的Get-Content和结束运行进程的Stop-Process。

  PowerShell v3在Windows Server 8中装载了Windows Management Framework 3.0。PowerShell runtime 也能嵌入到其它应用。