[Windows Powershell]-學習筆記(2)

  1. 數學運算

咱們能夠把powershell當成一個計算器。如鍵入命令行那樣輸入數學表達式,回車,powershell會自動計算並把結果輸出。經常使用的加減乘除模(+,-,*,/,%)運算和小括號表達式都支持。 shell

powershell也能自動識別計算機容量單位,包括KB,MB,GB,TB,PB windows

 

  1. Powershell執行外部命令

Powershell能像cmd同樣執行外部命令, api

如使用netstat –an 查看網絡端口鏈接 數組

使用ipconfig 查看本機ip地址 網絡

使用route print查看路由信息 dom

 

啓動控制檯CMD,使用exit退出CMD ide

 

查看CMD的幫助命令,能夠經過/c來接收命令參數(help) ui

Cmd /c help this

 

啓動外部程序,如notepad,但爲何不能啓動winword呢,由於winword的路勁未包含在powershell的環境變量裏 spa

咱們還可使用&來執行文本命令,如cmd == &"cmd.exe"

 

  1. Powershell 命令集cmdlets

cmdlets是Powershell的內部命令,cmdlet的類型名爲System.Management.Automation.CmdletInfo,包含下列屬性和方法:

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=try
{
# 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)
$helpObject = get-help -Name ($this.Name) -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
}
catch {};}

下面是所有的Cmdlets命令

每一個命令有一個動詞和名詞組成,命令的做用一目瞭然。

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

 

  1. Powershell別名

cmdlet 的名稱由一個動詞和一個名詞組成,其功能對用戶來說一目瞭然。可是對於一個常常使用powershell命令的人天天敲那麼多命令也很麻煩啊。能不能把命令縮短一點呢?因而"別名"就應運而生了。Powershell內部也實現了不少經常使用命令的別名。例如Get-ChildItem,列出當前的子文件或目錄。它有兩個別名:ls dir,這兩個別名來源於unix shellwindowscmd
所以別名有兩個做用:

  • 繼承:繼承unix-shellwindows-cmd
  • 方便:方便用戶使用。

處理別名:

查詢別名所指的真實cmdlet命令。

    

查看可用別名

查看可用的別名,能夠經過" ls alias:" 或者 "Get-Alias"

如何查看全部以Remove打頭的cmdlet的命令的別名呢?

 

說明:dir alias:獲取的是別名的數組,經過where對數組元素進行遍歷,$_表明當前元素,alias的Definition爲String類型,由於powershell支持.net,.net中的string類有一個方法Startswith。經過where過濾集合在powershell中使用很是普遍。

有的cmdlet命令可能有2-3個別名,咱們能夠經過下面的命令查看全部別名和指向cmdlet的別名的個數。

 

建立本身的別名

給記事本建立一個別名,並查看別名

刪除別名 del alias:edit

Import-alias導入別名

Export-alias導出別名

相關文章
相關標籤/搜索