运维监控运维驿站部署运维

Powershell札记6_信息详解、管道、格式化输出

2019-06-26  本文已影响0人  皮皮大

获取帮助信息

PS中获取帮助信息有3种方法,后两种是cmdlet方式,使用广泛

PS C:\WINDOWS\system32> get-help   get-command  -parameter *

-All

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          (所有)
    别名                     无
    动态?                    false


-ArgumentList <Object[]>

    是否必需?                    False
    位置?                        1
    是否接受管道输入?            True (FromRemainingArguments)
    参数集名称          (所有)
    别名                     Args
    动态?                    false


-CommandType <CommandTypes>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          AllCommandSet
    别名                     Type
    动态?                    false


-FullyQualifiedModule <ModuleSpecification[]>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          (所有)
    别名                     无
    动态?                    false


-ListImported

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          (所有)
    别名                     无
    动态?                    false


-Module <string[]>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          (所有)
    别名                     PSSnapin
    动态?                    false


-Name <string[]>

    是否必需?                    False
    位置?                        0
    是否接受管道输入?            True (ByValue, ByPropertyName)
    参数集名称          AllCommandSet
    别名                     无
    动态?                    false


-Noun <string[]>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          CmdletSet
    别名                     无
    动态?                    false


-ParameterName <string[]>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            False
    参数集名称          (所有)
    别名                     无
    动态?                    false


-ParameterType <PSTypeName[]>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            False
    参数集名称          (所有)
    别名                     无
    动态?                    false


-ShowCommandInfo

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            False
    参数集名称          (所有)
    别名                     无
    动态?                    false


-Syntax

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          (所有)
    别名                     无
    动态?                    false


-TotalCount <int>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          (所有)
    别名                     无
    动态?                    false


-Verb <string[]>

    是否必需?                    False
    位置?                        已命名
    是否接受管道输入?            True (ByPropertyName)
    参数集名称          CmdletSet
    别名                     无
    动态?                    false

管道

get-location cmdlet  # 返回的是`pathinfo`对象,对象是一个信息报,报中包含各种相关的信息
PS C:\WINDOWS\system32> get-location |get-member


   TypeName:System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Equals       Method     bool Equals(System.Object obj)
GetHashCode  Method     int GetHashCode()
GetType      Method     type GetType()
ToString     Method     string ToString()
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   string Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Property   string ProviderPath {get;}
PS C:\WINDOWS\system32> get-location |get-member -static


   TypeName:System.Management.Automation.PathInfo

Name            MemberType Definition
----            ---------- ----------
Equals          Method     static bool Equals(System.Object objA, System.Object objB)
ReferenceEquals Method     static bool ReferenceEquals(System.Object objA, System.Object objB)

格式化输出

Powershell中支持4个格式化输出cmdlet,四个命令均需要管道命令输出对象作为输入,同时4个命令均有默认的输出属性。

PS C:\WINDOWS\system32> get-command  | format-wide

Add-ProvisionedAppxPackage                                                Add-ProvisioningPackage
Add-TrustedProvisioningCertificate                                        Apply-WindowsUnattend
Disable-PhysicalDiskIndication                                            Disable-StorageDiagnosticLog
Enable-PhysicalDiskIndication                                             Enable-StorageDiagnosticLog
Flush-Volume                                                              Get-DiskSNV
Get-PhysicalDiskSNV                                                       Get-ProvisionedAppxPackage
Get-StorageEnclosureSNV                                                   Initialize-Volume
Move-SmbClient                                                            Optimize-ProvisionedAppxPackages
Remove-EtwTraceSession                                                    Remove-ProvisionedAppxPackage
Remove-ProvisioningPackage                                                Remove-TrustedProvisioningCertificate
Set-EtwTraceSession                                                       Write-FileSystemCache
A:                                                                        Add-BCDataCacheExtension
Add-BitLockerKeyProtector                                                 Add-DnsClientNrptRule
Add-DtcClusterTMMapping                                                   Add-EtwTraceProvider
省略.....
PS C:\WINDOWS\system32> get-location | format-list

Drive        : C
Provider     : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\WINDOWS\system32
Path         : C:\WINDOWS\system32
PS C:\WINDOWS\system32> get-location | format-list -property path   # path 输出指定的path属性

Path : C:\WINDOWS\system32

---
PS C:\WINDOWS\system32> get-location | format-list -property *  # 利用*输出所有的属性

Drive        : C
Provider     : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\WINDOWS\system32
Path         : C:\WINDOWS\system32

PS C:\WINDOWS\system32> get-location | format-table

Path
----
C:\WINDOWS\system32


PS C:\WINDOWS\system32> get-location | format-table -property *  # 以表格的形式输出所有的路径

Drive Provider                             ProviderPath        Path
----- --------                             ------------        ----
C     Microsoft.PowerShell.Core\FileSystem C:\WINDOWS\system32 C:\WINDOWS\system32

利用property属性来输出指定的信息CPU、path、id等信息

PS C:\WINDOWS\system32> get-process | format-table  -property  path,cpu,id,pm

Path                                                                                                             CPU            Id        PM
----                                                                                                             ---            --        --
                                                                                                                              3228  83533824
                                                                                                                 1824.828125  7528 137388032
                                                                                                                 47.890625    3432  81133568
                                                                                                                 119.234375   8516   1884160
C:\Program Files\DellTPad\Apntex.exe                                                                             0.015625     8848   1957888
C:\Program Files\DellTPad\Apoint.exe                                                                             11.34375     7404   3551232

输出各种不同的进程process信息

PS C:\WINDOWS\system32> get-process | format-custom

class Process
{
  Id = 3228
  Handles = 1667
  CPU =
  SI = 0
  Name = 360EntClient
}

class Process
{
  Id = 7528
  Handles = 1180
  CPU = 1836.546875
  SI = 1
  Name = 360EntClient
}

class Process
{
  Id = 3432
  Handles = 888
  CPU = 48.390625
  SI = 1
  Name = 360tray
}
......
上一篇 下一篇

猜你喜欢

热点阅读