Powershell的几点基础知识

一、Powershell脚本不能执行的问题

  如果Powershell脚本不能执行,那可能的原因就是执行策略没有设置,执行策略有四种:

    1、受限(Restricted)  试图运行脚本时会有错误信息,计算机默认是这个,所以不能执行Powershell脚本。

    2、签名(Allsigned)    只能运行包含数字签名的脚本,当遇到未知签名脚本时,会询问是否信任该开发商。

    3、远程签名(RemoteSigned)  运行大多数脚本不提示,但要求源自Internet的脚本包含数字签名。

    4、不受限制的(Unrestricted)  不需要任何脚本包含数字签名,但会警告来自互联网的脚本。

  所以解决这个问题就需要设置执行策略,代码样例如下:

Set-ExecutionPolicy RemoteSigned

二、调用第三方的cmdlet

  在Powershell中,把包含扩展cmdlet的扩展程序称为snapin,调用第三方的cmdlet就要先安装对应的snapin,安装步骤如下:

    1、获取snapin的执行文件,在这里介绍一个网址:http://www.codeplex.com/PowerShellCX,这里可以找到一些snapin希望可以让你找到自己想用的。

    2、这步就是安装snapin,进入c:\Windows\Microsoft.NET\Framework64\V2.0.50727目录下执行以下代码,这里以AppVSnapin为例:

InstallUtil.exe -i c:\AppVSnapin\AppVSnapin.dll

    3、通过以上步骤就已经安装了snapin,下面就得确认是否成功安装,使用以下命令,这条命令显示的是所有手动安装的snapin的信息:

Get-PSSnapin -Registered

 三、管道符‘|’的作用

    管道符在Powershell的作用就是将前面命令的输出传入下一个命令当做输入,以下面例子为例:

Get-Process | Where-Object {$_.WorkSet -gt 500kb} | Sort-Object -Descending Name

    第一个管道符前面的Get-Process命令将自己的输出通过管道符传给后面的Where-Object命令,where-Object在前面输出基础上筛选出WorkSet大于500kb的进程信息,顺带一提$_这个符号代表当前输入。第二个管道符也是一样,这个管道符将前面的输出转为Sort-Object的输入进行处理。

posted on 2020-08-14 10:09  1548562170  阅读(188)  评论(0编辑  收藏  举报