PowerShell 处理对象

来自《Windows Powershell入门指南》

处理对象

  虽然您最初可能没有意识到,但是在 Windows PowerShell 中工作时,所使用的是 .NET 对象。随着您经验的增加,对象处理能力变得更明显,而且您发现自己使用的是对象,甚至用对象进行思考。
  
  从技术上讲,.NET 对象是 .NET 类的实例,包含数据以及与该数据关联的操作。但是,可以将对象视为具有属性(与特性类似)方法(可以对对象执行的操作) 的数据实体。
  
  例如,在 Windows PowerShell中获取服务时,实际上是获取表示该服务的对象。查看有关服务的信息时,所查看的是其服务对象的属性。此外,启动服务时(即,在将服务的 Status 属性更改为“started”时),所使用的是服务对象的方法。
  
  类型相同的所有对象都具有相同的属性和方法,但是对象的每个实例可能具有不同的属性值。例如,每个服务对象都具有 Name 和 Status 属性。但是,每个服务都可以具有不同的名称和不同的状态。
  
  准备就绪后,了解对象是很容易的。若要查明 cmdlet 正获取对象的类型,请使用管道运算符 (|) 将“get”命令的结果发送到 Get-Member 命令。例如,以下命令将 Get-Service 命令检索的对象发送到 Get-Member。

Get-Service | Get-Member

  Get-Member 显示有关服务对象的信息,其中包括对象的类型名称及其属性和方法的列表。

   TypeName:System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, Sys...
Close                     Method        void Close()
Continue                  Method        void Continue()

  若要获取有关对象类的信息,请在 MSDN 中复制并粘贴类型名称,如
System.ServiceProcess.ServiceController。找到类后,可以阅读 MSDN 副主题,以了解基于该类的对象(如 Windows PowerShell 中的对象)的属性和方法。
  
  若要查找特定对象的所有属性的值,请使用管道运算符 (|) 将“get”命令的结果发送到Format-ListFormat-Table 命令。将 format cmdlet 的 Property 参数与表示所有的值(*) 一起使用。
  
例如,若要查找系统上 WinRM 服务的所有属性,请键入:

Get-Service WinRM | Format-List -Property *

以下显示一个结果示例。

Name                : WinRM
RequiredServices    : {RPCSS, HTTP}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Windows Remote Management (WS-Management)
DependentServices   : {}
MachineName         : .
ServiceName         : WinRM
ServicesDependedOn  : {RPCSS, HTTP}
ServiceHandle       :
Status              : Stopped
ServiceType         : Win32OwnProcess, Win32ShareProcess
StartType           : Automatic
Site                :
Container           :

  最初学习 Windows PowerShell 时,无需了解有关对象的任何信息,但是要意识到该概念。您将很快能够充分利用对象。

返回我的PowerShell学习笔记

上一篇:PowerShell 处理对象


下一篇:npm报错:无法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本