PowerShell 入门

本文介绍了PowerShell的基础知识,包括其历史背景、安装方法、基本概念如cmdlet和管道的使用,以及一些实用的命令示例。

PowerShell 入门 

 

一 PowerShell 介绍
PowerShell即开发代号为Monad的命令行外壳和脚本系统管理工具。 PowerShell是微软公司于2006年第四季度正式发布的, 它的出现标志着 微软公司向服务器领域迈出了重要的一步, 拉近了与Unix、 Linux等操作系统的距离。 PowerShell的前身命名为Monad, 在2006年4月25日正式发布beta版时更名为PowerShell,PowerShell是一款基于对象的shell, 建立在.Net框架之上, 目前支持.Net Framework 2.0. 能够运行在Windows XP SP2, Windows Vista, Windows 2003操作系统上。 能够同时支持WMI, COM, ADO.NET, ADSI等已有的Windows管理模型。

二 下载和安装
目前最新版本为:Windows PowerShell 2.0 Community Technology Preview (CTP)
http://www.microsoft.com/downloads/details.aspx?familyid=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&displaylang=en
下载PowerShell_Setup_x86.msi 首先要下载补丁包WS-Management v1.1安装后,才能正常安装PowerShell_Setup_x86.msi。

并下载补丁包 WS-Management v1.1
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=845289ca-16cc-4c73-8934-dd46b5ed1d33

三 执行方式
可以利用以下三种方式执行 Windows PowerShell:
位于『开始 / 所有程序』的『Windows PowerShell』快捷方式。
在『开始 / 运行』的『运行』命令窗输入 powershell。
在任何『命令提示字符』窗口的命令提示符号输入 powershell。

四 概念介绍

1 cmdlet
cmdlet是 Windows PowerShell 的指令,这相当于 DOS 或其它 shell 的内建指令。
cmdlet 的发音方式是 command-let。cmdlet 名称的格式都是以连字符号隔开的一对动词和名词,并且通常都是单数名词。例如可以在线查询 cmdlet 用法的 cmdlet 即为 get-help。cmdlet 名称的动词部分大致有 get、set、add、remove 等等。
注:Windows PowerShell 的操作与 DOS 相同,输入的字母都不分大小写。

2 管道
管道操作符 (|)
PowerShell中的的管道与传统环境中的管道有所不同。
在传统环境中,一个命令的结果作为一个单一的结果集被返回,也就是说整个结果集必须在任何信息传递到管道之前生成;第一个结果与最后一个结果是同时返回的。
但是在PowerShell中,所有的结果是按照管道的顺序连续产生的。一旦一个命令返回一个
结果,它就会把它传递到管道上,而该结果就立刻可以被管道上的下一个命令使用。


五 使用技巧

1 管道
#此命令显示正在运行的服务
get-service | where-object {$_.Status -eq "Running"}
或者gsv | where{$_.status -eq 'running'}
#可以加Select-Object 过滤属性
Get-Service | Where-Object{$_.Status -eq 'Running'} | Select-Object Displayname

2 格式化语句的输出
#以表格输出当前进程
 Get-Process | Format-Table
#以列表输出当前进程
 Get-Process | Format-Table
#以宽表的格式显示当前进程
 Get-Process | Format-Wide
 
3 控制语句的输出
#输出到指定文件
  Get-Process powershell | Format-List | Out-File  -FilePath D:/guoqiang/ps.txt
#追加文本 
 Get-Process powershell | Format-List | Out-File  -FilePath D:/guoqiang/ps.txt -append 


4 排序语句的输出
#降序排序
 Get-ChildItem C:/windows | Where-Object{$_.Length -gt 50000} | Sort-Object -property Length -descending
 
5 如何处理PowerShell的长语句
当命令以管道符合(|)结尾时,将进入“多行模式”,出现多行提示符“>>”,直至执行两次回车键才返回正常的提示符;
例如:
PS C:/> Get-Service |
>> Where-Object{$_.status -eq 'running'} |
>> Select-Object displayname
>>

DisplayName
-----------
Windows Audio
Background Intelligent Transfer Service

如果不是以(|)结尾,会报错;则要加反勾号(`)结尾告诉PowerShell要延续到下一行。
PS C:/> Get-Service |
>> Where-Object{$_.status -eq 'running'}
>> | Select-Object name
>>
An empty pipe element is not permitted.
At line:3 char:2
+ | <<<<  Select-Object name
PS C:/> Get-Service |
>> Where-Object{$_.status -eq 'running'} `
>> | Select-Object name
>>

Name
----
AudioSrv
BITS

如果想手工终止一个语句,在结尾加上(;)即可;
 

六 常用命令
1  get-help
别名:help
功能:
可以在线查询所有的 Windows PowerShell 指令和说明文件。
举例:
#列出所有的主题,包括指令和概念。
get-help *
#列出所有的主题,包括指令和概念,而且显示满整个窗口就暂停。
get-help * | more
#列出所有别名 并输出到文件中
 Get-Help * | Select-Object Name,synopsis | Out-File -FilePath D:/guoqiang/alias.txt
 
2 Set-Location
别名:cd
功能:
举例:
PS C:/> Get-ChildItem C:/


3 Get-Alias
别名:gal
功能:
举例:
PS C:/> Get-Alias | Select-Object name,definition

4 Get-Command
别名:gcm
功能:获取命令清单
举例:
PS C:/> Get-Command Get*


5 Set-Content
别名:sc
功能:向文件中写入数据
举例:
PS C:/> Set-Content D:/guoqiang/test.txt -value "http://blog.youkuaiyun.com/guoqiang1983"


6 Get-Content
别名:gc
功能:从文件中读取内容
举例:
PS C:/> Get-Content D:/guoqiang/test.txt
http://blog.youkuaiyun.com/guoqiang1983
PS C:/>

7 Set-ExecutionPolicy
别名:
功能:设置PowerShell脚本运行功能
    * Restricted,默认设置,不允许运行任何脚本。
    * AllSigned,仅运行受信任脚本(稍后会详细介绍)。
    * RemoteSigned,运行本地脚本,不管这些脚本是否受信任;如果是从 Internet 下载的脚本,则必须是受信任的脚本才能够运行。
    * Unrestricted,允许运行所有脚本,甚至是不受信任的脚本。
举例:
PS C:/> Set-ExecutionPolicy RemoteSigned

8 Set-PSDebug
别名:
功能:设置调试条件
举例:
PS C:/> Set-PSDebug -step
PS C:/> Get-Process

Continue with this operation?
   1+  <<<< Get-Process
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

 

9 Get-Process
别名:
功能:查看进程
举例:
PS C:/> Get-Process

10 Get-EventLog
别名:
功能:获取日志记录
举例:
PS C:/> Get-EventLog -newest 10 -logname system

 
11 get-service
功能:取得本地计算机上的服务.
举例:
#此命令显示正在运行的服务
get-service | where-object {$_.Status -eq "Running"}


七 学习PowerShell资源
1 TechNet Magazine: Windows PowerShell
http://technet.microsoft.com/zh-cn/magazine/cc135920.aspx


 

Microsoft Windows PowerShell 是一种新的命令行外壳和脚本语言,用于进行系统治理和自动化。Windows PowerShell 建立在 .NET Framework 的基础上,IT 专业人员可通过命令或脚本来治理计算机,从而通过系统自动化来提高工作效率。 Windows PowerShell 包括: * 129 个命令行工具(称为“cmdlet”),用于执行常见系统治理任务,如治理服务、进程、事件日志、证书、注册表以及使用 Windows Management Instrumentation (WMI)。 * 采用标准命名约定和通用参数的命令行工具,易于把握和使用;以及用于对数据和对象进行排序、筛选以及格式设置的简便工具。 * 对现有脚本语言、现有命令行工具以及多种 Windows 版本的支持,其中包括 Windows XP、Windows Server 2003、Windows Vista 以及 Windows Server(代码名称为“Longhorn”)。 * 方便的功能,使用户能够浏览数据存储(如注册表和证书存储),就像面对文件系统一样。 * 用于治理位于不同存储中以及采用不同格式的 Windows 数据的标准实用程序,这些数据包括 Active Directory (ADSI)、Windows Management Instrumentation (WMI)、组件对象模型 (COM) 对象、ActiveX 数据对象 (ADO)、HTML 和 XML。 * 在命令行进行的高级表达式分析和 .NET 对象处理,其中包括对对象进行流水线处理以帮助提高 IT 专业人员的工作效率。 * 可扩展的接口,使独立软件供给商和企业开发人员能够构建自定义 cmdlet 以满足特有的应用程序和系统治理要求。 安装本更新程序后,可能需要重新启动计算机。我们根据 Windows Vista 许可条款向您提供本更新程序并授予您使用许可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值