概述

写下本篇文章源于参加Tech.Ed的一场关于Window PowerShell的课程。虽然之前也经常关注,但从没有亲自体验过。Windows PowerShell 是一种新的命令行外壳和脚本语言,用于进行系统管理和自动化任务,它建立在 .NET Framework 的基础上,可使 IT 专业人员和开发人员控制和自动完成Windows 和应用程序的管理。更为强大之处在于它可以调用.NET Framework中的类库,可以与COM、ADO、XML等交互。在本文中让我们一起来体会一下回归Doc操作的快感,进入强大无比的Windows PowerShell世界。

在Windows PowerShell中包括了:

1. 129 个命令行工具(称为“cmdlet”),用于执行常见系统管理任务,如管理服务、进程、事件日志、证书、注册表以及使用 Windows Management Instrumentation (WMI)。

2. 采用标准命名约定和通用参数的命令行工具,易于掌握和使用;以及用于对数据和对象进行排序、筛选以及格式设置的简便工具。

3. 对现有脚本语言、现有命令行工具以及多种 Windows 版本的支持,其中包括 Windows XP、Windows Server 2003、Windows Vista 以及 Windows Server 2008。

4. 方便的功能,使用户能够浏览数据存储(如注册表和证书存储),就像面对文件系统一样。

5. 用于管理位于不同存储中以及采用不同格式的 Windows 数据的标准实用程序,这些数据包括 Active Directory (ADSI)、Windows Management Instrumentation (WMI)、组件对象模型 (COM) 对象、ActiveX 数据对象 (ADO)、HTML 和 XML。

6. 在命令行进行的高级表达式分析和 .NET 对象处理,其中包括对对象进行流水线处理以帮助提高 IT 专业人员的工作效率。

7. 可扩展的接口,使独立软件供应商和企业开发人员能够构建自定义 cmdlet 以满足特有的应用程序和系统管理要求。

简单示例

在开始之前,先来看一个简单的示例,在.NET中获取当前系统所有进程的一段代码:

static void Main(string[] args){Process[] proceses = Process.GetProcesses();foreach (var item in proceses)    {Console.WriteLine(item.ProcessName);    }

Console.ReadLine();}

非常简单的一段代码,直接获取所有进程并显示出它们的名称,如下图所示:

在安装完Windows PowerShell之后,可以看到它的界面与常用的命令行界面非常相似。现在再使用Windows PowerShell来获取一下当前系统所有的进程,只有一个命令就可以完成:

Get-Process

输出如下图所示:

PowerShell命令

在Windows PowerShell中,内置了129个命令供我们使用,这些命令称之为“Cmdlet”。除了很多在Dos中的命令继续可以使用之外,还有PowerShell内置的一些命令。每个命令由两部分组成,前半部分表示动作,后半部分表示动作的标的,如Get-Help、Get-Command、Write-Host等。在Windows PowerShell中输入命令时,不需要输入全部名称,可以只输入其中几个关键字,PowerShell会自动匹配,如只输入get-he,然后按下“Tab”键,屏幕上就可以出现完整的Get-Help命令。

Get-Help、Get-Command是PowerShell中非常重要的两个命令,可以获取帮助和获取所有的命令列表,如输入:

Get-Command

结果如下图所示,列出了所有的命令:

与.NET Framework交互

Windows PowerShell更强大的地方在于它可以访问.NET Framework的类库,我们可以使用New-Object命令来创建一个.NET  Framework中的类实例,并保存在变量中,如下面的命令:

$d = New-Object -TypeName System.DateTime

这里使用New-Object来创建一个DateTime对象,使用-TypeName指定类型名称,创建的对象保存在$d变量中,输出结果如下图所示:

除此之外,还可以使用-ArgumentList来指定参数,如下图所示:

与COM交互

使用Windows PowerShell还可以完全与COM交互,这使的Windows PowerShell的功能更加强大,有了上面前面提到的访问WMI、与.NET Framework交互,再加上与COM交互,可以说Windows PowerShell几乎无所不能。如下面看一个例子,使用PowerShell来访问IE,可以使用如下命令来创建一个IE的对象,并让它导航到博客园首页:

$ie = New-Object -ComObject InternetExplorer.Application$ie.Visible = $true$ie.Navigate("http://www.cnblogs.com")$ie.Quit()

简单解释一下这段代码,首先创建一个IE的COM对象,并让它显示,然后导航到博客园首页,最后程序退出。如下图所示:

在这个过程中,大家会看到系统打开了一个IE窗口,并且导航到了博客园。

访问注册表

除此之外,Windows PowerShell还可以实现对注册表的完全控制,包括查询所有的Entry,或者修改、删除键值等,可以说是一切皆可控制,如使用下面的命令:

Get-ChildItem -Path hkcu:\

输出如下图所示,列出了HKEY_CURRENT_USER下面的信息:

创建别名

在Windows PowerShell中,还允许为命令创建自己熟悉的别名,这样对于某些太长的命令名可以使用自己的缩写来表示,或者对于某些不太容易记忆的命令,使用自己喜欢的名字来表示。

Set-Alias gh Get-Help

这里设置gh为Get-Help命令的别名,这样在后面的操作中,当输入gh后,执行的命名就是Get-Help,如下图所示:

输出文件

在Windows PowerShell中,我们还可以把操作的结果输出到一个文件中,可以使用Out-File命令,另外可以使用-FilePath来指定输出的路径和文件名,如下命令所示:

Get-Process | Out-File -FilePath C:\temp.txt

现在打开C盘的temp.txt文件,可以看到输出的结果如下所示:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName -------  ------    -----      ----- -----   ------     -- -----------     126       4    13272      10220    47            1204 audiodg     73       4     2936       8080    61     1.05   3580 conime    512       5     2188       4112    59     2.06    532 csrss    511       7     5704      19744   182    93.44    588 csrss   1249     109   127144     157128   561    44.67   6648 devenv     188       8    47088      73332   164 2,020.61   2508 dwm    2261      48    75040      72600   416   341.38   2548 explorer      0       0        0         24     0               0 Idle      664      28    36696      49076   173    14.78   3384 iexplore    969      35    74868      87576   328    43.92   7480 iexplore    404      10     7280        640    96     6.23   2812 kavstart      65       3     1368       3360    46     0.09    316 kissvc     80       5     6592       1012    62     1.28    496 kmailmon

以上所介绍只是Windows PowerShell强大功能的冰山之一角,除此之外,还可以与WMI交互,访问机器设备,对于输出结果格式化等等,这里不再介绍。

总结

本文中简单介绍了一下Windows PowerShell,相信通过这些介绍大家已经看到了Windows PowerShell的强大之处,而且在微软以后的产品中,都会支持使用PowerShell进行管理。

来源:http://www.cnblogs.com/Terrylee/archive/2008/11/09/Windows-PowerShell-Overview.html 

回归Dos操作的快感,进入PowerShell世界相关推荐

  1. 回归Dos操作的快感,进入PowerShell世界 (转)

    概述 写下本篇文章源于参加Tech.Ed的一场关于Window PowerShell的课程.虽然之前也经常关注,但从没有亲自体验过.Windows PowerShell 是一种新的命令行外壳和脚本语言 ...

  2. SQL语句在dos操作MySQL数据库

    #关键字# #create # #show # #use # #alter table # #add # #frist # #after # #rename ##表的更名# #change # #mo ...

  3. matlab空间截面回归,截面空间回归模型操作应用手册

    原标题:截面空间回归模型操作应用手册 SAR模型数据集包含对地理区域或其他单元的观测;所以需要的是有一些距离的度量标准来区分哪些单位彼此之间比较近. spregress命令对横断面数据进行建模.它要求 ...

  4. ewiews面板回归模型操作_EViews操作指南:eviews面板数据回归分析

    计量经济学实验指导书 实验一 EViews软件的基本操作 [实验目的] 了解EViews软件的基本功能,掌握软件的基本操作. [实验内容] 一.EViews软件的安装: 二.数据的输入与编辑: 三. ...

  5. dos 改某个目录下所有文件的时间_go语言入门学习笔记(2)-DOS操作及go语言变量学习...

    API:application program interface:应用程序编程接口. 就是我们go的各个包的各个函数. 我们想要了解这些函数我们可以通过Go的中文网在线标准库文档: https:// ...

  6. ewiews面板回归模型操作_Eviews3种面板模型的选择-F检验操作详情

    CSDN同步链接-Eviews3种面板模型的选择-F检验操作详情 之前有小伙伴问小编关于三种面板模型(不变系数.变截距.变系数)的选择,具体如何操作,所以今天小编亲自来实操咯. 今天看书又对这三种模型 ...

  7. windows命令行下常用命令 dos操作指令

    windows常用命令 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表 ...

  8. mysql 是dos程序_mysql Dos操作

    一.数据库操作 1.连接服务器  >mysql -h 服务器 -u 用户名 -p 密码 2.查看数据库  >show databases 3.创建数据库  >create datab ...

  9. windows cmd/dos操作防火墙

    1 查看防火墙状态 netsh advfirewall show allprofiles 2 开启防火墙 netsh advfirewall set allprofiles state on 3 关闭 ...

最新文章

  1. 免费网络推广浅析对网站首页优化的注意细节把控!
  2. windows 10占用cpu和内存过高
  3. Python使用you-get批量下载bilibili网站视频
  4. 【NetApp】NetBoot的使用方法
  5. BootStrap笔记-Model(模式对话框)样式修改
  6. Visual Studio 2019 16.6 Preview 2 发布
  7. 第五章:逻辑回归(Logistic 回归)
  8. c++MFC 截取字符串
  9. html5移动端选择城市,移动端城市选择插件(原创)
  10. Qt中的矩阵计算库eigen
  11. 软件工程作业——《人件》读书笔记
  12. 2020年中级数据库系统工程师考试笔记7—关系数据库1
  13. ArcGIS的运行许可文件ecp如何打开?
  14. 美国白宫将探讨人工智能 概念股分析
  15. php怎么改字体大小,phpstorm修改字体和大小
  16. 怎么做AE文字翻页动效?3步学会制作文字翻页
  17. selenium执行js脚本
  18. 数睿数据深度 | 中国软件网对话数睿数据总裁刘超:深挖数据驱动、企业级无代码
  19. 求乎其上,得乎其中;求乎其中,得乎其下也
  20. 如何使用SSM框架开发一套WEB薪资管理系统

热门文章

  1. 汉得宣布开源:基于容器的企业级应用 PaaS 平台
  2. hookup_2.10-0.2.3.jar包下载
  3. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
  4. phpMyAdmin操作之改管理员密码
  5. AngularJS内置指令
  6. Ubuntu 14.04.1 安装 python mysqldb
  7. mysql_secure_installation
  8. s:if 标签 字符串比较 正确用法和错误用法
  9. 为 Kerberos 连接注册服务主体名称
  10. hibernate 持久化