0021_PowerShell命令

TOC

PowerShell命令

参考:

命令类型

PowerShell命令有四种命令类型:cmdlet,Alias,Function,Application

Windows PowerShell命令类型

  • cmdlet:内置命令
  • Alias:别名,可以用来缩短常见的较长的cmdlet,部分DOS命令会被解释为别名
  • Function:内置功能函数,用于简化cmdlet功能组合,也有部分DOS命令会被解释为函数
  • Application:应用程序,用来打开Windows的应用程序,也有部分DOS命令被解释为应用程序

内置命令cmdlet

cmdlet概述

内置的命令很多,比如Get-Help;

定义:

  • Windows PowerShell的命令行
  • 管理的最小单位
  • 可以单独使用,也可以组合使用

构成:

  • “动词-名词”结构,

    比如Get-Command中: 动词:Get,名词:Command

  • tab键补齐机制

查询:(使用Get-Command)

由于动词数量比名词少,所以通常情况下可以按照动词来获取命令.

比如:

# 查看动词为get的所有命令
Get-Command -Verb Get或者get # 动词不区分大小写

类型:
cmdlet的类型名为System.Management.Automation.CmdletInfo,包含下列属性和方法

cmdlet的属性和方法

运行这个命令,其中的CmdletInfo就是cmdlet的属性和方法

Get-Command | Get-Member # 获取所有命令--| 获取属性,
Name MemberType Definition
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
CommandType Property System.Management.Automation.CommandTypes CommandType {get;}
DefaultParameterSet Property System.String DefaultParameterSet {get;}
Definition Property System.String Definition {get;}
HelpFile Property System.String HelpFile {get;}
ImplementingType Property System.Type ImplementingType {get;}
Module Property System.Management.Automation.PSModuleInfo Module {get;}
ModuleName Property System.String ModuleName {get;}
Name Property System.String Name {get;}
Noun Property System.String Noun {get;}
OutputType Property System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Management.Automation.PSTypeName, System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] OutputType {get;}
Parameters Property System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Management.Automation.ParameterMetadata, System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] Parameters {get;}
ParameterSets Property System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Management.Automation.CommandParameterSetInfo, System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] ParameterSets {get;}
PSSnapIn Property System.Management.Automation.PSSnapInInfo PSSnapIn {get;}
Verb Property System.String Verb {get;}
Visibility Property System.Management.Automation.SessionStateEntryVisibility Visibility {get;set;}
DLL ScriptProperty System.Object DLL {get=$this.ImplementingType.Assembly.Location;}
HelpUri ScriptProperty System.Object HelpUri {get=oldProgressPreference=ProgressPreference..

HelpUri隐藏内容

System.Object HelpUri {get=$oldProgressPreference = $ProgressPreference
          $ProgressPreference = 'SilentlyContinue'
          try
          {
          if ($psversiontable.psversion.Major -lt 3)
          {
          # ok to cast CommandTypes enum to HelpCategory because string/indentifier for
          # cmdlet,function,filter,alias,externalscript is identical.
          # it is ok to fail for other enum values (i.e. for Application)
          $commandName = $this.Name
          if ($this.ModuleName)
          {
          $commandName = "{0}{1}" -f $this.ModuleName,$commandName
          }

          $helpObject = get-help -Name $commandName -Category ([string]($this.CommandType)) -ErrorAction SilentlyContinue

          # return first non-null uri (and try not to hit any strict mode things)
          if ($helpObject -eq $null) { return $null }
          if ($helpObject.psobject.properties['relatedLinks'] -eq $null) { return $null }
          if ($helpObject.relatedLinks.psobject.properties['navigationLink'] -eq $null) { return $null }
          $helpUri = [string]$( $helpObject.relatedLinks.navigationLink | %{ if ($_.psobject.properties['uri'] -ne $null) { $_.uri } } | ?{ $_ } | select -first 1 )
          return $helpUri
          }
          else
          {
          [Microsoft.PowerShell.Commands.GetHelpCodeMethods]::GetHelpUri($this)
          }
          }
          catch {}
          finally
          {
          $ProgressPreference = $oldProgressPreference
          };}

查看自己Powershell版本Get-Host

PS F:	est1ddtest2> Get-Host


Name             : ConsoleHost
Version          : 5.1.18362.145  # 版本
InstanceId       : e91ff846-5f9f-47b0-aac6-33010722c2b5
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : zh-CN
CurrentUICulture : zh-CN
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

获取所有命令Get-Command

语法:

Get-Command [过滤类型 过滤条件] # 根据条件获取命令列表
过滤类型:
    -Name  名字
    -CommandType 类型
    -Verb 动作
    -Noun 名词
Get-Command | 对象  # 查看一个对象的属性和方法
Name ModuleName Help
Add-Computer Microsoft.PowerShell.Management help
Add-Content Microsoft.PowerShell.Management help
Add-History Microsoft.PowerShell.Core help
Add-Member Microsoft.PowerShell.Utility help
Add-PSSnapin Microsoft.PowerShell.Core help
Add-Type Microsoft.PowerShell.Utility help
Checkpoint-Computer Microsoft.PowerShell.Management help
Clear-Content Microsoft.PowerShell.Management help
Clear-EventLog Microsoft.PowerShell.Management help
Clear-History Microsoft.PowerShell.Core help
Clear-Item Microsoft.PowerShell.Management help
Clear-ItemProperty Microsoft.PowerShell.Management help
Clear-Variable Microsoft.PowerShell.Utility help
Compare-Object Microsoft.PowerShell.Utility help
Complete-Transaction Microsoft.PowerShell.Management help
Connect-WSMan Microsoft.WSMan.Management help
ConvertFrom-Csv Microsoft.PowerShell.Utility help
ConvertFrom-SecureString Microsoft.PowerShell.Security help
ConvertFrom-StringData Microsoft.PowerShell.Utility help
Convert-Path Microsoft.PowerShell.Management help
ConvertTo-Csv Microsoft.PowerShell.Utility help
ConvertTo-Html Microsoft.PowerShell.Utility help
ConvertTo-SecureString Microsoft.PowerShell.Security help
ConvertTo-Xml Microsoft.PowerShell.Utility help
Copy-Item Microsoft.PowerShell.Management help
Copy-ItemProperty Microsoft.PowerShell.Management help
Debug-Process Microsoft.PowerShell.Management help
Disable-ComputerRestore Microsoft.PowerShell.Management help
Disable-PSBreakpoint Microsoft.PowerShell.Utility help
Disable-PSSessionConfiguration Microsoft.PowerShell.Core help
Disable-WSManCredSSP Microsoft.WSMan.Management help
Disconnect-WSMan Microsoft.WSMan.Management help
Enable-ComputerRestore Microsoft.PowerShell.Management help
Enable-PSBreakpoint Microsoft.PowerShell.Utility help
Enable-PSRemoting Microsoft.PowerShell.Core help
Enable-PSSessionConfiguration Microsoft.PowerShell.Core help
Enable-WSManCredSSP Microsoft.WSMan.Management help
Enter-PSSession Microsoft.PowerShell.Core help
Exit-PSSession Microsoft.PowerShell.Core help
Export-Alias Microsoft.PowerShell.Utility help
Export-Clixml Microsoft.PowerShell.Utility help
Export-Console Microsoft.PowerShell.Core help
Export-Counter Microsoft.PowerShell.Diagnostics help
Export-Csv Microsoft.PowerShell.Utility help
Export-FormatData Microsoft.PowerShell.Utility help
Export-ModuleMember Microsoft.PowerShell.Core help
Export-PSSession Microsoft.PowerShell.Utility help
ForEach-Object Microsoft.PowerShell.Core help
Format-Custom Microsoft.PowerShell.Utility help
Format-List Microsoft.PowerShell.Utility help
Format-Table Microsoft.PowerShell.Utility help
Format-Wide Microsoft.PowerShell.Utility help
Get-Acl Microsoft.PowerShell.Security help
Get-Alias Microsoft.PowerShell.Utility help
Get-AuthenticodeSignature Microsoft.PowerShell.Security help
Get-ChildItem Microsoft.PowerShell.Management help
Get-Command Microsoft.PowerShell.Core help
Get-ComputerRestorePoint Microsoft.PowerShell.Management help
Get-Content Microsoft.PowerShell.Management help
Get-Counter Microsoft.PowerShell.Diagnostics help
Get-Credential Microsoft.PowerShell.Security help
Get-Culture Microsoft.PowerShell.Utility help
Get-Date Microsoft.PowerShell.Utility help
Get-Event Microsoft.PowerShell.Utility help
Get-EventLog Microsoft.PowerShell.Management help
Get-EventSubscriber Microsoft.PowerShell.Utility help
Get-ExecutionPolicy Microsoft.PowerShell.Security help
Get-FormatData Microsoft.PowerShell.Utility help
Get-Help Microsoft.PowerShell.Core help
Get-History Microsoft.PowerShell.Core help
Get-Host Microsoft.PowerShell.Utility help
Get-HotFix Microsoft.PowerShell.Management help
Get-Item Microsoft.PowerShell.Management help
Get-ItemProperty Microsoft.PowerShell.Management help
Get-Job Microsoft.PowerShell.Core help
Get-Location Microsoft.PowerShell.Management help
Get-Member Microsoft.PowerShell.Utility help
Get-Module Microsoft.PowerShell.Core help
Get-PfxCertificate Microsoft.PowerShell.Security help
Get-Process Microsoft.PowerShell.Management help
Get-PSBreakpoint Microsoft.PowerShell.Utility help
Get-PSCallStack Microsoft.PowerShell.Utility help
Get-PSDrive Microsoft.PowerShell.Management help
Get-PSProvider Microsoft.PowerShell.Management help
Get-PSSession Microsoft.PowerShell.Core help
Get-PSSessionConfiguration Microsoft.PowerShell.Core help
Get-PSSnapin Microsoft.PowerShell.Core help
Get-Random Microsoft.PowerShell.Utility help
Get-Service Microsoft.PowerShell.Management help
Get-TraceSource Microsoft.PowerShell.Utility help
Get-Transaction Microsoft.PowerShell.Management help
Get-UICulture Microsoft.PowerShell.Utility help
Get-Unique Microsoft.PowerShell.Utility help
Get-Variable Microsoft.PowerShell.Utility help
Get-WinEvent Microsoft.PowerShell.Diagnostics help
Get-WmiObject Microsoft.PowerShell.Management help
Get-WSManCredSSP Microsoft.WSMan.Management help
Get-WSManInstance Microsoft.WSMan.Management help
Group-Object Microsoft.PowerShell.Utility help
Import-Alias Microsoft.PowerShell.Utility help
Import-Clixml Microsoft.PowerShell.Utility help
Import-Counter Microsoft.PowerShell.Diagnostics help
Import-Csv Microsoft.PowerShell.Utility help
Import-LocalizedData Microsoft.PowerShell.Utility help
Import-Module Microsoft.PowerShell.Core help
Import-PSSession Microsoft.PowerShell.Utility help
Invoke-Command Microsoft.PowerShell.Core help
Invoke-Expression Microsoft.PowerShell.Utility help
Invoke-History Microsoft.PowerShell.Core help
Invoke-Item Microsoft.PowerShell.Management help
Invoke-WmiMethod Microsoft.PowerShell.Management help
Invoke-WSManAction Microsoft.WSMan.Management help
Join-Path Microsoft.PowerShell.Management help
Limit-EventLog Microsoft.PowerShell.Management help
Measure-Command Microsoft.PowerShell.Utility help
Measure-Object Microsoft.PowerShell.Utility help
Move-Item Microsoft.PowerShell.Management help
Move-ItemProperty Microsoft.PowerShell.Management help
New-Alias Microsoft.PowerShell.Utility help
New-Event Microsoft.PowerShell.Utility help
New-EventLog Microsoft.PowerShell.Management help
New-Item Microsoft.PowerShell.Management help
New-ItemProperty Microsoft.PowerShell.Management help
New-Module Microsoft.PowerShell.Core help
New-ModuleManifest Microsoft.PowerShell.Core help
New-Object Microsoft.PowerShell.Utility help
New-PSDrive Microsoft.PowerShell.Management help
New-PSSession Microsoft.PowerShell.Core help
New-PSSessionOption Microsoft.PowerShell.Core help
New-Service Microsoft.PowerShell.Management help
New-TimeSpan Microsoft.PowerShell.Utility help
New-Variable Microsoft.PowerShell.Utility help
New-WebServiceProxy Microsoft.PowerShell.Management help
New-WSManInstance Microsoft.WSMan.Management help
New-WSManSessionOption Microsoft.WSMan.Management help
Out-Default Microsoft.PowerShell.Utility help
Out-File Microsoft.PowerShell.Utility help
Out-GridView Microsoft.PowerShell.Utility help
Out-Host Microsoft.PowerShell.Utility help
Out-Null Microsoft.PowerShell.Utility help
Out-Printer Microsoft.PowerShell.Utility help
Out-String Microsoft.PowerShell.Utility help
Pop-Location Microsoft.PowerShell.Management help
Push-Location Microsoft.PowerShell.Management help
Read-Host Microsoft.PowerShell.Utility help
Receive-Job Microsoft.PowerShell.Core help
Register-EngineEvent Microsoft.PowerShell.Utility help
Register-ObjectEvent Microsoft.PowerShell.Utility help
Register-PSSessionConfiguration Microsoft.PowerShell.Core help
Register-WmiEvent Microsoft.PowerShell.Management help
Remove-Computer Microsoft.PowerShell.Management help
Remove-Event Microsoft.PowerShell.Utility help
Remove-EventLog Microsoft.PowerShell.Management help
Remove-Item Microsoft.PowerShell.Management help
Remove-ItemProperty Microsoft.PowerShell.Management help
Remove-Job Microsoft.PowerShell.Core help
Remove-Module Microsoft.PowerShell.Core help
Remove-PSBreakpoint Microsoft.PowerShell.Utility help
Remove-PSDrive Microsoft.PowerShell.Management help
Remove-PSSession Microsoft.PowerShell.Core help
Remove-PSSnapin Microsoft.PowerShell.Core help
Remove-Variable Microsoft.PowerShell.Utility help
Remove-WmiObject Microsoft.PowerShell.Management help
Remove-WSManInstance Microsoft.WSMan.Management help
Rename-Item Microsoft.PowerShell.Management help
Rename-ItemProperty Microsoft.PowerShell.Management help
Reset-ComputerMachinePassword Microsoft.PowerShell.Management help
Resolve-Path Microsoft.PowerShell.Management help
Restart-Computer Microsoft.PowerShell.Management help
Restart-Service Microsoft.PowerShell.Management help
Restore-Computer Microsoft.PowerShell.Management help
Resume-Service Microsoft.PowerShell.Management help
Select-Object Microsoft.PowerShell.Utility help
Select-String Microsoft.PowerShell.Utility help
Select-Xml Microsoft.PowerShell.Utility help
Send-MailMessage Microsoft.PowerShell.Utility help
Set-Acl Microsoft.PowerShell.Security help
Set-Alias Microsoft.PowerShell.Utility help
Set-AuthenticodeSignature Microsoft.PowerShell.Security help
Set-Content Microsoft.PowerShell.Management help
Set-Date Microsoft.PowerShell.Utility help
Set-ExecutionPolicy Microsoft.PowerShell.Security help
Set-Item Microsoft.PowerShell.Management help
Set-ItemProperty Microsoft.PowerShell.Management help
Set-Location Microsoft.PowerShell.Management help
Set-PSBreakpoint Microsoft.PowerShell.Utility help
Set-PSDebug Microsoft.PowerShell.Core help
Set-PSSessionConfiguration Microsoft.PowerShell.Core help
Set-Service Microsoft.PowerShell.Management help
Set-StrictMode Microsoft.PowerShell.Core help
Set-TraceSource Microsoft.PowerShell.Utility help
Set-Variable Microsoft.PowerShell.Utility help
Set-WmiInstance Microsoft.PowerShell.Management help
Set-WSManInstance Microsoft.WSMan.Management help
Set-WSManQuickConfig Microsoft.WSMan.Management help
Show-EventLog Microsoft.PowerShell.Management help
Sort-Object Microsoft.PowerShell.Utility help
Split-Path Microsoft.PowerShell.Management help
Start-Job Microsoft.PowerShell.Core help
Start-Process Microsoft.PowerShell.Management help
Start-Service Microsoft.PowerShell.Management help
Start-Sleep Microsoft.PowerShell.Utility help
Start-Transaction Microsoft.PowerShell.Management help
Start-Transcript Microsoft.PowerShell.Host help
Stop-Computer Microsoft.PowerShell.Management help
Stop-Job Microsoft.PowerShell.Core help
Stop-Process Microsoft.PowerShell.Management help
Stop-Service Microsoft.PowerShell.Management help
Stop-Transcript Microsoft.PowerShell.Host help
Suspend-Service Microsoft.PowerShell.Management help
Tee-Object Microsoft.PowerShell.Utility help
Test-ComputerSecureChannel Microsoft.PowerShell.Management help
Test-Connection Microsoft.PowerShell.Management help
Test-ModuleManifest Microsoft.PowerShell.Core help
Test-Path Microsoft.PowerShell.Management help
Test-WSMan Microsoft.WSMan.Management help
Trace-Command Microsoft.PowerShell.Utility help
Undo-Transaction Microsoft.PowerShell.Management help
Unregister-Event Microsoft.PowerShell.Utility help
Unregister-PSSessionConfiguration Microsoft.PowerShell.Core help
Update-FormatData Microsoft.PowerShell.Utility help
Update-List Microsoft.PowerShell.Utility help
Update-TypeData Microsoft.PowerShell.Utility help
Use-Transaction Microsoft.PowerShell.Management help
Wait-Event Microsoft.PowerShell.Utility help
Wait-Job Microsoft.PowerShell.Core help
Wait-Process Microsoft.PowerShell.Management help
Where-Object Microsoft.PowerShell.Core help
Write-Debug Microsoft.PowerShell.Utility help
Write-Error Microsoft.PowerShell.Utility help
Write-EventLog Microsoft.PowerShell.Management help
Write-Host Microsoft.PowerShell.Utility help
Write-Output Microsoft.PowerShell.Utility help
Write-Progress Microsoft.PowerShell.Utility help
Write-Verbose Microsoft.PowerShell.Utility help
Write-Warning Microsoft.PowerShell.Utility help

比如:

获取列表:

Get-Command # 获取所有命令
Get-Command -Name *名字*   # 获取name为这个匹配的所有的命令
Get-Command -CommandType  "类型" # 获取这个类型的命令(类型共四种)
Get-Command -Verb  动作 # 获取这个动作的命令(-*的所有命令,不区分大小写)
Get-Command -Noun 名词 # 获取这个名词的命令(*-名词的命令,不区分大小写))
# 比如   Get-Command -Noun Command    就可以获得 *-Command 等的命令

看一个对象的属性和方法:

Get-Command | Get-Member

查看命令作用Get-Help

Get-Help *命令* [可选参数]  # 查看一个命令的作用
可选参数:
-Detailed # 查看详细信息
-Full # 查看技术支持信息,可以当接口文档用了(比Detailed全)
-Examples #查看实例
-
# 命令的名字可以模糊查询

比如:获取命令help

PS F:	est1ddtest2> Get-Help Get-Command

名称
    Get-Command

语法
    Get-Command [[-ArgumentList] <Object[]>]  [<CommonParameters>]

    Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]  [<CommonParameters>]


别名
    gcm


备注
    Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
        -- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help。
        -- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Get-Command -Online" 或
           转到 https://go.microsoft.com/fwlink/?LinkID=113309。

比如:模糊获取

PS F:	est1ddtest2> Get-Help *comm*

Name                              Category  Module                    Synopsis
----                              --------  ------                    --------
Get-Command                       Cmdlet    Microsoft.PowerShell.Core ...
Invoke-Command                    Cmdlet    Microsoft.PowerShell.Core ...
Measure-Command                   Cmdlet    Microsoft.PowerShell.U... ...
Show-Command                      Cmdlet    Microsoft.PowerShell.U... ...
Trace-Command                     Cmdlet    Microsoft.PowerShell.U... ...
Invoke-CommandInDesktopPackage    Cmdlet    Appx                      ...
SafeGetCommand                    Function  Pester                    ...
Find-Command                      Function  PowerShellGet             ...

比如:-Detailed

PS F:	est1ddtest2> Get-Help Get-Command  -Detailed

名称
    Get-Command

语法
    Get-Command [[-ArgumentList] <Object[]>]  [<CommonParameters>]

    Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]  [<CommonParameters>]


参数
    -All

    -ArgumentList <Object[]>

    -CommandType <CommandTypes>

    -FullyQualifiedModule <ModuleSpecification[]>

    -ListImported

    -Module <string[]>

    -Name <string[]>

    -Noun <string[]>

    -ParameterName <string[]>

    -ParameterType <PSTypeName[]>

    -ShowCommandInfo

    -Syntax

    -TotalCount <int>

    -Verb <string[]>

    <CommonParameters>
        此 Cmdlet 支持常见参数: Verbose、Debug、
        ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、PipelineVariable 和 OutVariable。有关详细信息,请参阅
        about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216)。


别名
    gcm


备注
    Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
        -- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help。
        -- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Get-Command -Online" 或
           转到 https://go.microsoft.com/fwlink/?LinkID=113309。

比如:-Full

PS F:	est1ddtest2> Get-Help Get-Command  -Full

名称
    Get-Command

语法
    Get-Command [[-ArgumentList] <Object[]>]  [<CommonParameters>]

    Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]  [<CommonParameters>]


参数
    -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

    <CommonParameters>
        此 Cmdlet 支持常见参数: Verbose、Debug、
        ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、PipelineVariable 和 OutVariable。有关详细信息,请参阅
        about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216)。


输入
    System.String[]
    Microsoft.PowerShell.Commands.ModuleSpecification[]
    System.Management.Automation.CommandTypes
    System.Int32
    System.Management.Automation.SwitchParameter
    System.Object[]


输出
    System.Management.Automation.AliasInfo
    System.Management.Automation.ApplicationInfo
    System.Management.Automation.FunctionInfo
    System.Management.Automation.CmdletInfo
    System.Management.Automation.ExternalScriptInfo
    System.Management.Automation.FilterInfo
    System.Management.Automation.WorkflowInfo
    System.String
    System.Management.Automation.PSObject


别名
    gcm


备注
    Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
        -- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help。
        -- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Get-Command -Online" 或
           转到 https://go.microsoft.com/fwlink/?LinkID=113309。

比如:-Examples

PS F:	est1ddtest2> Get-Help Get-Command  -Examples

名称
    Get-Command

别名
    gcm


备注
    Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
        -- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help。
        -- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Get-Command -Online" 或
           转到 https://go.microsoft.com/fwlink/?LinkID=113309。

获知最后执行命令的状态

PowerShell提供了两个变量可以检测最后执行的命令是否成功:$lastExitCode$?

$lastExitCode:数字型变量,返回最后脚本或应用程序执行返回的退出码或出错级别(没有错误返回空)

img

$?:布尔型变量,返回最后执行命令的成功还是失败:

变量$?使用更通用的方式来描述最后的应用程序退出的状态,在以下应用程序发生错误的时候,PowerShell会设置$?为False:

  • 应用程序退出码非零;
  • cmdlet或脚本输出错误信息;
  • cmdlet或脚本捕获到终止错误或异常。

当命令执行没有错误的时候,PowerShell设置$?变量为True。

img

计算命令执行时间Measure-Command

如果想计算一个命令执行时间,可以使用Measure-Command命令

PS C:Usersjsy1> Measure-Command {ping 127.0.0.1}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 36
Ticks             : 30368179
TotalDays         : 3.51483553240741E-05
TotalHours        : 0.000843560527777778
TotalMinutes      : 0.0506136316666667
TotalSeconds      : 3.0368179
TotalMilliseconds : 3036.8179

命令的别名Get-ChildItem

PowerShell一些内置命令都有别名,方便记忆和输入,可以用Get-Help命令查看别名,如下Get-ChildItem的命令有三个别名:gcilsdir,输入任意一个都可以列举当前目录。

PS F:	est1ddtest2> Get-Help Get-ChildItem

名称
    Get-ChildItem

语法
    Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>]  [<CommonParameters>]

    Get-ChildItem [[-Filter] <string>]  [<CommonParameters>]


别名
    gci
    ls
    dir


备注
    Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
        -- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help。
        -- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Get-ChildItem -Online" 或
           转到 https://go.microsoft.com/fwlink/?LinkID=113308。

操作使用管理控制台历史命令Get-History

在PowerShell窗口中,按上下箭头键可以寻找历史命令进行调用,也可以运行Get-History命令查找,用Invoke-History Id方式进行调用

PS C:Usersjsy1> Get-History

  Id CommandLine
  -- -----------
   1 Get-Help Get-ChildItem
   2 Measure-Command ping 127.0.0.1
   3 Measure-Command {ping 127.0.0.1}
   4 ls
   5 ll
   6 ls


PS C:Usersjsy1> Invoke-History 3
Measure-Command {ping 127.0.0.1}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 20
Ticks             : 30202975
TotalDays         : 3.49571469907407E-05
TotalHours        : 0.000838971527777778
TotalMinutes      : 0.0503382916666667
TotalSeconds      : 3.0202975
TotalMilliseconds : 3020.2975

重定向输出Out-File

如果想把得到的结果输出到文件中,可以使用Out-File命令或者重定向操作符将命令输出的结果保存在文件中:

语法

Out-File [-FilePath] <string> [[-Encoding] {unknown | string | unicode | bigendianunicode | utf8 | utf7 | utf32 | ascii | default | oem}]  [<CommonParameters>]

Out-File [[-Encoding] {unknown | string | unicode | bigendianunicode | utf8 | utf7 | utf32 | ascii | default | oem}]  [<CommonParameters>]

案例

PS F:	est1ddtest2> Out-File  .	ext1.txt
PS F:	est1ddtest2> ls

    目录: F:	est1ddtest2

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2020/8/13      8:51              2 text1.txt

在这个文件夹下,会生成一个text1.txt文件,内容为空

获取文件内容Get-Content

语法
    Get-Content [-Path] <string[]>  [<CommonParameters>]
    Get-Content  [<CommonParameters>]
别名
    gc
    cat
    type

例如:

PS F:	est1ddtest2> "Powershell Routing" >test.txt
PS F:	est1ddtest2> Get-Content .	est.txt
Powershell Routing

记录PowerShell会话全文

  • 开始记录:Start-Transcript
  • 结束记录:Stop-Transcript

如果想生成当前会话的记录,可以运行Start-Transcript命令,它基于当前系统时间。如果想停止,运行Stop-Transcript

PS F:	est1ddtest2> Start-Transcript -Path h.txt                                                                       已启动脚本,输出文件为 h.txt
PS F:	est1ddtest2> Get-Command -Name *cess
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Block-FileShareAccess                              2.0.0.0    Storage
Function        Block-SmbShareAccess                               2.0.0.0    SmbShare
Function        Clear-AssignedAccess                               1.0.0.0    AssignedAccess
Function        Get-AppvVirtualProcess                             1.0.0.0    AppvClient
Function        Get-AssignedAccess                                 1.0.0.0    AssignedAccess
Function        Get-SmbShareAccess                                 2.0.0.0    SmbShare
Function        Grant-FileShareAccess                              2.0.0.0    Storage
Function        Grant-SmbShareAccess                               2.0.0.0    SmbShare
Function        Revoke-FileShareAccess                             2.0.0.0    Storage
Function        Revoke-SmbShareAccess                              2.0.0.0    SmbShare
Function        Set-AssignedAccess                                 1.0.0.0    AssignedAccess
Function        Start-AppvVirtualProcess                           1.0.0.0    AppvClient
Function        Unblock-FileShareAccess                            2.0.0.0    Storage
Function        Unblock-SmbShareAccess                             2.0.0.0    SmbShare
Cmdlet          Debug-Process                                      3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Enter-PSHostProcess                                3.0.0.0    Microsoft.PowerShell.Core
Cmdlet          Exit-PSHostProcess                                 3.0.0.0    Microsoft.PowerShell.Core
Cmdlet          Get-Process                                        3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Start-Process                                      3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Stop-Process                                       3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Wait-Process                                       3.1.0.0    Microsoft.PowerShell.Management


PS F:	est1ddtest2> Get-Help Get-Variable
名称
    Get-Variable

语法
    Get-Variable [[-Name] <string[]>]  [<CommonParameters>]


别名
    gv


备注
    Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
        -- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help。
        -- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Get-Variable -Online" 或
           转到 https://go.microsoft.com/fwlink/?LinkID=113336。



PS F:	est1ddtest2> Stop-Transcript                                                                                    已停止脚本,输出文件为 F:	est1ddtest2h.txt

输出的文件为

**********************
Windows PowerShell 脚本开始
开始时间: 20200813090647
用户名: DESKTOP-TPFM5VIjsy1
RunAs 用户: DESKTOP-TPFM5VIjsy1
配置名称:
计算机: DESKTOP-TPFM5VI (Microsoft Windows NT 10.0.18363.0)
主机应用程序: C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
进程 ID: 6636
PSVersion: 5.1.18362.145
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.18362.145
BuildVersion: 10.0.18362.145
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
已启动脚本,输出文件为 h.txt
PS F:	est1ddtest2> Get-Command -Name *cess

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Block-FileShareAccess                              2.0.0.0    Storage
Function        Block-SmbShareAccess                               2.0.0.0    SmbShare
Function        Clear-AssignedAccess                               1.0.0.0    AssignedAccess
Function        Get-AppvVirtualProcess                             1.0.0.0    AppvClient
Function        Get-AssignedAccess                                 1.0.0.0    AssignedAccess
Function        Get-SmbShareAccess                                 2.0.0.0    SmbShare
Function        Grant-FileShareAccess                              2.0.0.0    Storage
Function        Grant-SmbShareAccess                               2.0.0.0    SmbShare
Function        Revoke-FileShareAccess                             2.0.0.0    Storage
Function        Revoke-SmbShareAccess                              2.0.0.0    SmbShare
Function        Set-AssignedAccess                                 1.0.0.0    AssignedAccess
Function        Start-AppvVirtualProcess                           1.0.0.0    AppvClient
Function        Unblock-FileShareAccess                            2.0.0.0    Storage
Function        Unblock-SmbShareAccess                             2.0.0.0    SmbShare
Cmdlet          Debug-Process                                      3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Enter-PSHostProcess                                3.0.0.0    Microsoft.PowerShell.Core
Cmdlet          Exit-PSHostProcess                                 3.0.0.0    Microsoft.PowerShell.Core
Cmdlet          Get-Process                                        3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Start-Process                                      3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Stop-Process                                       3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Wait-Process                                       3.1.0.0    Microsoft.PowerShell.Management


PS F:	est1ddtest2> Get-Help Get-Variable

名称
    Get-Variable

语法
    Get-Variable [[-Name] <string[]>]  [<CommonParameters>]


别名
    gv


备注
    Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
        -- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help。
        -- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Get-Variable -Online" 或
           转到 https://go.microsoft.com/fwlink/?LinkID=113336。



PS F:	est1ddtest2> Stop-Transcript
**********************
Windows PowerShell 脚本结束
结束时间: 20200813090750
**********************

显示对象属性为列表或表格Format-List和Format-Table

默认是Format-Table的

语法:

命令 | Format-List或Format-Table

案例:

# 当前文件夹中有两个文件h.txt和text1.txt
# 原始命令
PS F:	est1ddtest2> ls


    目录: F:	est1ddtest2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2020/8/13      9:07           3598 h.txt
-a----        2020/8/13      8:51              2 text1.txt

# 显示为list
PS F:	est1ddtest2> ls | Format-List


    目录: F:	est1ddtest2



Name           : h.txt
Length         : 3598
CreationTime   : 2020/8/13 9:06:47
LastWriteTime  : 2020/8/13 9:07:50
LastAccessTime : 2020/8/13 9:07:50
Mode           : -a----
LinkType       :
Target         : {}
VersionInfo    : File:             F:	est1ddtest2h.txt
                 InternalName:
                 OriginalFilename:
                 FileVersion:
                 FileDescription:
                 Product:
                 ProductVersion:
                 Debug:            False
                 Patched:          False
                 PreRelease:       False
                 PrivateBuild:     False
                 SpecialBuild:     False
                 Language:


Name           : text1.txt
Length         : 2
CreationTime   : 2020/8/13 8:51:06
LastWriteTime  : 2020/8/13 8:51:06
LastAccessTime : 2020/8/13 8:51:06
Mode           : -a----
LinkType       :
Target         : {}
VersionInfo    : File:             F:	est1ddtest2	ext1.txt
                 InternalName:
                 OriginalFilename:
                 FileVersion:
                 FileDescription:
                 Product:
                 ProductVersion:
                 Debug:            False
                 Patched:          False
                 PreRelease:       False
                 PrivateBuild:     False
                 SpecialBuild:     False
                 Language:



# 显示table(默认)
PS F:	est1ddtest2> ls | Format-Table


    目录: F:	est1ddtest2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2020/8/13      9:07           3598 h.txt
-a----        2020/8/13      8:51              2 text1.txt

# table展示,限制显示字段
PS F:	est1ddtest2> ls | Format-Table Name,Length

Name      Length
----      ------
h.txt       3598
text1.txt      2





原文地址:https://www.cnblogs.com/ziyue7575/p/6b42ca7ea3947b7ec9178400ef4f843a.html