关于Powershell 你要知道的知识!

2021-04-07 12:19:40 浏览数 (1)

1.背景及介绍

在最初的时候,Powershell 是设计运行在windows机器上实现系统和应用程序管理自动化的命令行 脚本环境。Windows Powershell V1诞生与2006年,你可以把它看成是命令行提示符cmd.exe的扩 充,不对,应当是颠覆。powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将 Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居 当前所有shell之首。

现如今,PowerShell早已开源,并已经发布了许多版本。最初,Windows PowerShell建立在.NET Framework上,仅在Windows系统上工作。在现在的版本中,PowerShell使用.NET Core 3.1作为其运 行时。PowerShell在Windows,macOS和Linux平台上运行。

2.PowerShell版本

PowerShell Core是GitHub上的一个开源项目。有关在各种受支持的和实验性平台上安装PowerShell 的详细信息,请参阅以下文章。

在windows上安装PowerShell

在Linux上安装PowerShell

在macOS上安装PowerShell

在ARM上安装PowerShell

Tips:有关在Windows上安装旧版PowerShell的详细信息,请参阅《 安装Windows PowerShell》。

查看powershell版本

PowerShell中有许多自动变量可以存储状态信息。这些变量之一是 $PSVersionTable ,其中包含 一个哈希表,可用于显示相关的PowerShell版本信息:

3.PS的帮助系统

PowerShell中的编译命令称为cmdlet。Cmdlet发音为“ command-let”(不是CMD-let)。Cmdlet名称 采用单数“动词-名词”命令的形式,以使它们易于发现。例如,用于确定正在运行哪些进程的 cmdlet:Get-Process ,用于检索服务及其状态列表的cmdlet:Get-Service 。如何在 PowerShell中使用数千个命令(cmdlet),很好地使用帮助系统是使用PowerShell成功的关键。

3.1本地 在线

PowerShell的帮助文档提供了本地 在线的两种方式,在本地使用 help cmdlet 的命令,即可 看到关于这个 cmdlet 的使用详解,在后面跟上 -online 参数,就会打开电脑的默认浏览器,来 到该 cmdlet 的在线帮助页面。

本地:help cmdlet

语法:主要由多组左右方括号( [] )和尖括号( <> )组成,根据它们的用法,它们有两种不同的 含义。

[] :代表可选参数,可忽略

<> :代表必选参数,不可忽略

TIPS: 位置参数

可以省略名称,不输入,但值是必须输入的,系统会按照位置自动进行匹配是哪个参数 的值。

若带上名称,则可以在命令中的任意位置输入该参数和值,不受位置影响。

TIPS: 开关参数

不需要赋值的参数。比如:start-service 中的参数 "-WhatIf"

TIPS: 开关参数

参数:-Examples

在线:help cmdlet [-online]

3.2 更新本地

可使用 Update-Help 更新本地帮助系统(建议定期更新),以便该计算机无法访问Internet时,仍可 为我们提供帮助。该 Update-Help cmdlet 默认情况下,它需要Internet访问,并且您需要以管理员 身份运行PowerShell。

命令:Update-Help

3.3 模糊查询

命令:help *cmdlet*

3.4 详细帮助文档

使用参数:-full 、 -ShowWindow

-full:有些版本、文档,使用或不使用该参数输出文档是一样的。

-ShowWindow:

4 Providers of Powershell

PowerShell中的provider是一个接口,允许像文件系统一样访问数据存储。PowerShell中有许多内置 provider。

4.1 查看当前PS的种类

代码语言:javascript复制
PS D:> Get-PSProvider 
Name           Capabilities                        Drives 
----           ------------                        ------ 
Registry       ShouldProcess, Transactions         {HKLM, HKCU} 
Alias          ShouldProcess                       {Alias} 
Environment    ShouldProcess                       {Env} 
FileSystem     Filter, ShouldProcess, Credentials  {C, A, D} 
Function       ShouldProcess                       {Function} 
Variable       ShouldProcess                      {Variable}
Certificate    ShouldProcess                       {Cert} 
WSMan          Credentials                         {WSMan} 
/* 
- ShouldProcess: 可支持-whatIf、-Confirm参数 
- Filter: 支持-Filter参数 
- Credentials: 支持凭据参数(-Credentials)连接数据存储 
- Transactions: 支持事务,提交操作,回滚等
*/

如你所见,注册表,别名,环境变量,文件系统,函数,变量,证书和WSMan都有内置的提供程 序。

4.2 查看当前已连接的驱动器

4.3 操作实例

0 人点赞