Powershell基础

一.对象

 从事开发工作的都知道,面向对象的概念是为了更好用程序语言解决现实问题二提出的。

  在Powershell中,对象是值我们收集信息或者执行操作的行为。包括属性和方法。Powershell中的一切皆为对象。我们所有的操作都是对对象的操作。

二.Get-Member

  Get-Member 可以现实有关命令返回的 .NET 对象的信息。该信息包括对象的类型、属性和方法。

  若要使用 Get-Member,请使用管道运算符 (|) 将命令结果发送到 Get-Member。例如:

  get-Service | get-member

  此命令显示 Get-Service 实际上返回了一组 System.ServiceProcess.ServiceController 对象 -- 计算机上的每个服务都有一个对象。

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System....
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef Creat...
Dispose                   Method        System.Void Dispose()
Equals                    Method        bool Equals(System.Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(int command)
GetHashCode               Method        int GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeServ...
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
Start                     Method        System.Void Start(), System.Void Sta...
Stop                      Method        System.Void Stop()
ToString                  Method        string ToString()
WaitForStatus             Method        System.Void WaitForStatus(System.Ser...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {...
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Con...
DependentServices         Property      System.ServiceProcess.ServiceControl...
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeH...
ServiceName               Property      System.String ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceControl...
ServiceType               Property      System.ServiceProcess.ServiceType Se...
Site                      Property      System.ComponentModel.ISite Site {ge...
Status                    Property      System.ServiceProcess.ServiceControl...

TypeName:对象的类型

Property:对象所拥有的属性    如要显示对象的属性请键入 : (Get-Service <服务名称>).<属性名称>  例如:(get-service alerter).canpauseandcontinue

Method:对象所拥有的方法      如要执行对象的方法请键入:(Get-Service <服务名称>).<方法名称()> 例如:(get-service schedule).stop()

三.CmdLet参数

  

  Cmdlet 参数的标识方法是在参数名称前放一个连字符 (-)。(在 Windows PowerShell 中斜杠(/ )不用于参数。)

  键入参数名称时,可以键入整个名称,但是只需键入必要的字符数,能够将该参数名称与 cmdlet 的其他参数名称区分开即可。

  例如,Get-Help cmdlet 具有一个名为“Detailed”的参数,但是可以键入“-det”,这就足以将它与 Get-Help 的Debug 参数区分开。

  一些参数名称是可选的。可以通过键入参数值而不是键入参数名称来使用参数。但是,如果省略参数名称,则参数值出现在命令中的位置必须与它出现在语法图表中的位置相同。

  例如,Get-Help cmdlet 具有一个 Name 参数,该参数指定 cmdlet 或概念的名称。可以键入 Name 参数的名称,也可以省略它。若要获取 Get-Alias 命令的帮助,可以键入:get-help -name get-alias 或 get-help get-alias

  若要查找可选参数名称,请参阅帮助文件中的语法块。可选参数名称出现在方括号中,例如:Get-Help Get-Command

名称
    Get-Command

摘要
    获取有关 cmdlet 以及有关 Windows PowerShell 命令的其他元素的基本信息。

语法
    Get-Command [[-Name] <string[]>] [-CommandType {Alias | Function | Filter |
     Cmdlet | ExternalScript | Application | Script | All}] [[-ArgumentList] <O
    bject[]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParame
    ters>]

    Get-Command [-Noun <string[]>] [-Verb <string[]>] [[-ArgumentList] <Object[
    ]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParameters>]

如上:Get-Command 帮助信息中语法部分  方括号[-name],[-Syntax]等都为可选参数名称

四.命令输出格式

在 Windows PowerShell 中,使用Fromat cmdlet设置输出格式,主要有以下四种:

  • Format-List   列表格式  可指定显示的属性  如:Format-list  -Property * (*显示所有 默认显示所有,还可指定显示名称用,隔开如name,type)
  • Format-Custom  可根据试图来定义显示的格式
  • Format-Table   表格式 可指定显示的属性   如:Format-list  -Property * (*显示所有 默认显示所有,还可指定显示名称用,隔开如name,type)
  • Format-Wide   一个对象只显示一个属性的表格式 可指定显示的属性  如:Format-list  -Property * (*显示所有 默认显示所有,还可指定显示名称用,隔开如name,type)

Windows PowerShell 调用默认的格式化程序,该程序由所显示的数据类型确定。格式化程序确定显示输出的哪些属性以及用列表还是表显示它们。

例如,使用 Get-Service cmdlet 时,默认显示是一个包含三列的表,如下所示:


C:/PS> get-service

Status   Name               DisplayName

------   ----               -----------

Running  AdtAgent           Event Forwarder

Stopped  Alerter            Alerter

Running  ALG                Application Layer Gateway Service

若要设置 cmdlet 的输出格式,可使用管道运算符 (|) 将命令输出发送到 Format cmdlet。

例如,以下命令将 Get-Service 命令的输出发送到 Format-List cmdlet。因此,对于每个服务,服务数据被设置为列表格式。


C:/PS> get-service | format-list

Name                :AdtAgent

DisplayName         :Event Forwarder

Status              :Running

DependentServices   : {}

ServicesDependedOn  :{eventlog, dnscache}

CanPauseAndContinue :False

CanShutdown         :True

CanStop             :True

ServiceType         :Win32OwnProcess

Name                :Alerter

DisplayName         :Alerter

Status              :Stopped

DependentServices   : {}

ServicesDependedOn  :{LanmanWorkstation}

CanPauseAndContinue :False

CanShutdown         :False

CanStop             :False

ServiceType         :Win32ShareProcess

Name                :ALG

DisplayName         :Application Layer Gateway Service

Status              :Running

DependentServices   : {}

在此格式中,显示了所有的信息,而不是默认显示的三列,因为默认的格式化程序 Format-Table 因无法在屏幕上显示三列以上的信息。

除了确定数据出现在列表中还是表中之外,还可以确定显示对象的哪些属性。例如,Get-Service 的默认显示仅显示服务对象的 Status、Name 和 DisplayName 属性。

若要查看对象的所有属性,请使用管道运算符 (|) 将命令输出发送到 Get-Member cmdlet。

例如,若要查看服务对象的所有属性,请键入:


get-service | get-member -membertype *property

TypeName:System.ServiceProcess.ServiceController

Name                MemberType    Definition

----                ----------    ----------

Name                AliasProperty Name = ServiceName

CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}

CanShutdown         Property      System.Boolean CanShutdown {get;}

CanStop             Property      System.Boolean CanStop {get;}

Container           Property      System.ComponentModel.IContainer Container {get;}

DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}

DisplayName         Property      System.String DisplayName {get;set;}

MachineName         Property      System.String MachineName {get;set;}

ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}

ServiceName         Property      System.String ServiceName {get;set;}

ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}

ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}

Site                Property      System.ComponentModel.ISite Site {get;set;}

Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

由于所有这些属性都在 Get-Service 为每个服务检索的对象中,因此可以显示其中任一属性或所有属性。使用Format cmdlet 的 Property 参数可以选择要显示的属性以及在其中显示它们的其他属性。例如,以下命令使用Format-Table 命令仅显示服务的 Name、ServiceType 和 CanShutDown 属性。

get-service | format-table name,Servicetype,Canshutdown

显示:

Name                                      ServiceType               CanShutdown
----                                      -----------               -----------
AdobeFlashPlayerUpdateSvc             Win32OwnProcess                     False
AeLookupSvc                         Win32ShareProcess                     False
AERTFilters                           Win32OwnProcess                     False
ALG                                   Win32OwnProcess                     False
AppIDSvc                            Win32ShareProcess                     False
Appinfo                             Win32ShareProcess                     False
AppMgmt                             Win32ShareProcess                     False
aspnet_state                          Win32OwnProcess                      True
AudioEndpointBuilder                Win32ShareProcess                     False
AudioSrv                            Win32ShareProcess                     False
AxInstSV                            Win32ShareProcess                     False

以上只是对显示格式的一个大概的描述及基本使用,如需要详细了解各个用法用途可使用get-help查看。

Powershell基础

时间: 2024-11-07 14:30:08

Powershell基础的相关文章

Powershell基础知识(二)

上一节主要介绍Powershell可发现,面向对象,一致性等特性,以及Powershell命令是基于.Net对象等重要概念,以及Powershell命令的命名规范,详细内容点击这里. 这一节的Powershell基础知识主要包含以下知识点 获取命令的摘要信息. 获取命令的帮助信息. 总结. 获取命令的摘要信息 Powershell命令 Get-Command 可检索当前shell中所有可用的命令名称.在Powershell提示符输入 Get-Command ,输出的内容类似以下内容(以下只写出输

powershell 基础

目录 本教程概述 用到的工具 标签 简介 0x01使用简介 0x02脚本编写 0x03实例讲解 本教程概述 本课我们学习powershell使用. 用到的工具 cmd.exe   powershell 标签 powershell基础 简介 Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能. 它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script

8. PowerShell - 基础概要,变量,字符和字符串操作,运算符操作

PowerShell脚本的基础概要 常量,变量的使用 各种字符串的操作 对运算符的操作 数组,哈希表:创建.修改合并数组和哈希表 条件判断:if, switch 语句 逻辑判断:使用运算符进行判断 循环控制:while, do-while, do- until , for,foreach 语句 模块化:组织和调整代码:使用切当的数据类型,调用其它脚本函数 WMI对象: WMI命名空间的概念,WMI所提供的功能,查看和使用WMI命名空间. WMI的类:get-wmiobject;  查询WMI A

Powershell基础知识(一)

上节介绍了Windows自带的Powershell开发工具:命令行行窗体和集成开发环境ISE的启动及一些配置注意事项,具体细节使劲戳Powershell开发工具. 这一节介绍Powershell的基础知识,包含以下知识点 Powershell的一些特性 理解Powershell中的一些重要概念 理解Powershell中命令的命名规范 总结 Powershell的一些特性 Powershell对命令行和脚本环境添加了许多新的功能,以此来改善Powershell的管理和脚本脚本交互能力,想对于其他

PowerShell基础系列

Windows脚本初探之PowerShell初识 http://281816327.blog.51cto.com/907015/1369562 PowerShell远程管理Windows Server(1):域环境 http://281816327.blog.51cto.com/907015/1397239 PowerShell远程管理Windows Server(2):公网访问[web形式] http://281816327.blog.51cto.com/907015/1414739 Powe

windows powershell基础

目录: 1.管道和重定向 2.命令执行 3.变量 4.数组和哈希表 #@()创建数组,使用","把每个值分隔开,@{}创建哈希表,用";"把每个值分隔开 5.常用命令 get-help  查看帮助 get-command 查询命令 get-member  查看对象的成员信息 get-verb  获取所有动词 get-content 或者type  查看内容 $psversiontable   查看powershell版本 ls env:    查看所有环境变量 ls

PowerShell_零基础自学课程_1_初识PowerShell

欢迎转载本系列文章:转载请注明出处:www.cnblogs.com/volcanol 自从微软推出.Net以来,微软旗下的windows体系就发生了很大的变化,首先是操作系统的界面的变化,例如vista与XP的界面变化, 其次是一些应用的变化,例如在XP下就没有Aero桌面效果,而在Win7下就有Aero桌面效果(本人没有用过vista,不知道有没有Aero的效果). 但这些都是用户直观的感受,除了这些还有更深层次的变化,如C++的CLR和CLI.以及一些时下非常流行的技术(像WPF.WCF还有

利用Powershell在IIS上自动化部署网站

本文主要讲如何通过Powershell在IIS上自动化部署ASP.NET网站,而不涉及Powershell的基本语法,如果没有Powershell基础的同学也可以把本文作为学习Powershell的基石,通过学习本文中的脚本再去查阅具体的语法,可能会达到事半功倍的效果. 一般我们建立网站大致需要以下几个步骤: 1.安装.NET Framework 2.安装了IIS 3.注册.启用ISAPI和CGI限制 4.建立网站 5.设置默认首页.身份验证.设置MIME类型 6.绑定域名或IP地址 7.设置权

PowerShell 数组以及XML操作

PowerShell基础 PowerShell数组操作 将字符串拆分成数据的操作 cls #原始字符串 $str = "abc,def,ghi,mon" #数据定义 #$StrArray = New-Object Collections.Generic.List[string] $StrArray = @() #拆分 $StrArray = $str.Split(",") $len = $StrArray.Count Write-Host "数据中元素总数