zoukankan      html  css  js  c++  java
  • PowerShell 入门

    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.csdn.net/guoqiang1983"


    6 Get-Content
    别名:gc
    功能:从文件中读取内容
    举例:
    PS C:/> Get-Content D:/guoqiang/test.txt
    http://blog.csdn.net/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


     

  • 相关阅读:
    JavaScript设计模式样例八 —— 适配器模式
    JavaScript设计模式样例七 —— 原型模式
    JavaScript设计模式样例六 —— 抽象工厂模式
    JavaScript设计模式样例五 —— 建造者模式
    JS比较两个时间的时间差
    使用nginx实现纯前端跨越
    npm的使用总结
    优雅的格式化时间显示
    优雅的封装ajax,含跨域
    将自己的域名代理到Gitpages
  • 原文地址:https://www.cnblogs.com/dbasys/p/2127570.html
Copyright © 2011-2022 走看看