powershell 學習

 

get-command   查看當前powershell中所有的命令。
Get-Service   獲取表示本地計算機上服務的對象,包括正在運行和已停止的服務。可以通過制定服務名或服務的顯示名稱在只是Get-Service只獲取特定的服務,或者也可以使用inputout參數來提供表示要檢索的每個服務的服務對象
  Get-Help Get-Service -deiail Help
  Get-Help Get-Service -full Help
  -Name <string[]> 指定檢索服務名稱
  -Include <string[]> 只檢索指定服務
  -Exclude <string[]> 忽略指定服務
  <CommonParameters> -verbose -Debug -ErrorAction -ErrorVaribal -OutVaribal
  -DisplayName <string[]> 指定檢索服務的顯示名稱
  -inputObject <serviceController[]> 指定要檢索的serviceController對象
            eg: Get-Service [*] 檢索系統上所有服務
Get-Service wmi* 檢索以wmi開頭的服務
Get-Service -DisplayName *networl* 顯示其顯示名稱中包含network的服務
$service = get-service                   顯示以RPC開頭的服務。第一條命令獲取系統上的服務,並將它們存儲在$service變量中。第二個命令獲取$service變量中的服務,只包括那些以RPC開頭的服務。它使用IputObject參數來將存儲在該變量中的對象傳遞給Get-Service
get-service -inputobject $Service -include RPC*
get-service | where-object {$_.Status -eq "Running"} 只顯示當前正在運行的服務。它使用Get-Service cmdlet來獲取計算機上的所有服務。管道運算符 | 將結果傳遞給Where-Object cmdlet,後者只選擇Status屬性等於"Running"的服務。Status是服務對象的唯一屬性。若要查看所有屬性,請鍵入"get-service | get-member"
Resume-Service   恢復一項或多項掛起(暫停的)服務。爲每一個指定的服務向Windows服務控制器發送一條恢復消息。如果他們已掛起,則他們將恢復。如果當前正在運行,則忽略。可以通過服務名稱或顯示名稱來指定服務,也可以使用InputObject參數傳遞一個服務對象來代表您想要恢復的服務。
  -name <string[]> 參數名爲可選項。可以使用"-name"或其別名"-ServiceName",也可以忽略該參數名稱。
  -Include <string[]>  
  -Exclude <string[]>  
  -passthru <SwitchParameter> 通過管道傳遞此cmdlet創建的對象。默認情況下,此cmdlet不通過管道傳遞任何對象。
  -DisplayName <string[]>  
     
  -inputObject <ServiceController[]> 恢復由指定的ServiceController對象表示的服務。請輸入包含對象的變量,或者輸入可獲取對象的命令或表達式。
  -whattif 描述如果執行該命令會發生什麼情況
  -confirm 在執行命令之前提示您進行確認。
  <CommonParmeters> get-help about_commonparameters
Start-Service   啓動一個或多個已停止的服務
  $s = get-service wmi ##################################################################
  start-service -InputObject $s - passthru | format-list >> services.txt
Stop-Service   停止一個或多個正在運行的服務。
  -force <SwitchParameter> 覆蓋阻止命令成功執行的限制,但應確保所做更改不會危及安全性。例如,force將停止具有依賴服務的服務。
Restart-Service   停止並接着啓動一個或多個服務
  restart-service -displayname net* -exclude "net logon" 重啓顯示名稱 以"net"開頭的服務,"net logon"服務除外。
  get-service net* | where {$_,status -eq "stopped"} | restart-service 重啓計算機上所有停止的網絡服務。它使用get-service cmdlet獲取代表服務名稱以"net"開頭的服務的對象。(省略了可選的name參數),後者指選擇處於"stopped"狀態的服務。另一個管道運算符將選定的服務發送至Restart-Service。
Suspend-Service    
  get-service | where-object {$_.canpauseandcontinue -eq "true"} suspend-service -confirm 掛起計算機上所有可掛起的服務。它使用Get-Service cmdlet來獲取計算機上表示相應服務的對象。管道運算符 | 將結果傳遞給Where-object cmdlet,該cmdlet只選擇CanPauseAndCantinue屬性爲"true"的服務。另一個管道運算符將結果傳遞給Suspend-Service cmdlet。
Set-service    
New-Service    
get-* | get-member   若要查明cmdlet正獲取對象的類型,請使用管道運算符|將get命令發送到get-member
  get-service alerter | format-list -property name, CanPauseAndContinue 顯示 Alerter 服務的 CanPauseAndContinue 屬性的名稱和值的列表
  get-service | format-table -property name, CanPauseAndContinue 顯示所有服務的 CanPauseAndContinue 屬性的名稱和值的表
  get-service | format-table name, Servicetype, Canshutdown 使用 Format-Table 命令僅顯示服務的 Name、ServiceType 和 CanShutDown 屬性
  get-service schedule | format-list -propery * 若要查找特定對象的所有屬性值,請使用管道運算符|將get命令的結果發送到Format-List或Format-Table.(查找Schedule服務的所有屬性。)
  Page Up 跳轉到歷史緩衝區的第一個命令
  Page down 跳轉到歷史緩衝區的最後一個命令
  UpArrow 向後顯示歷史緩衝區
  DownArrow 向前顯示歷史緩衝區
  Home 跳躍到命令行的開頭
  End 跳躍到命令行的末尾
  Ctrl+LeftArrow 到最左側字符
  Ctrl+rightArrow 到右側單詞結尾
  Tab  
  f7 顯示歷史緩衝區(使用向上向下箭頭選擇)
get-childitem   獲取當前位置中的子項,如果當前位置爲文件系統目錄,則此命令獲取當前目錄中的文件和子目錄。如果該項不具有子項,則此命令將返回提示符,而不顯示任何內容。d目錄,a存檔,r只讀,h隱藏,s系統
  get-childitem . -include *.txt -recurse -force 檢索當前目錄及其子目錄中的所有.txt.文件。Path參數值中的點.表示當前目錄,而include參數指定文件擴展名。Rescurse參數只是ps遞歸檢索對象,並指示該命令的執行對象爲指定目錄及其內容。Force參數將隱藏文件添加到顯示中。
  get-childitem c:\windows\logs\* -include *.txt -exclude a* 列出log子目錄中的.txt文件,但名稱以字母a開頭的除外。它使用通配符*以指示log子目錄的內容,而不是目錄容器。因爲此命令未包含Recurse參數,所有Get-Childitem不會自動包括目錄的內容,您需要制定該內容。
  get-chileitem registry::hklm\software 檢索本地計算機內的HKEY_LOCAL_MACHINE\SOFTWARE項中的所有註冊表項。
  get-childitem -name 僅檢索當前目錄中的項的名稱
  get-childitem cert:\. -recurse -codesigningcert 獲取證書存儲區域中具有代碼簽名頒發機構的所有證書。
  get-childitem * -include *.exe 檢索當前目錄中具有.exe文件擴展名的所有項。通配符*表示當前目錄的內容(而不是容器)。使用include參數且不使用Recurse參數時,路徑必須指向內容,而不是容器。
get-alias   獲取當前會話的別名。
  get-alias -name g*, s* -exclude get-* 獲取所有以g或s開頭的別名,但以get-開頭的別名除外。
  get-alias -definition Get-chileitem 獲取Get-Childitem cmdlet的別名。
  get-alias | where-object {$_.options -match "readonly"} 檢索所有其Option屬性值爲ReadOnly的別名。提供了快速查找windows powershell 中內置別名的方法,因爲這些別名具有Readonly選項。
  get-alias -definition "*-pssession" -exclude e* -scope global 獲取所有以“-pssession"結尾的命令別名,但以"e"開頭的別名除外。該命令使用scopea參數將命令應用到全局作用域。當您希望獲取會話中的別名時,這對腳本比較有用。
     
  Get-WmiObject -class win32_networkadapterconfiguration -filter ipenabled=true -ComputerName . |Select-Object -Property IPaddress 查看服務器地址
select-string   查找字符串和文件中的文本
  -AllMatches [<switchparameter>] 在每個文本行中搜索多個匹配項。
  -CaseSensitive [<SwitchParameter>] 使匹配項區分大小寫。
  -Context <int[32]> 捕獲包含匹配項的行前後的指定行數。
  -Encoding <String[]> 指定 Select-String 在搜索文件時應採用的字符編碼。默認值爲 UTF8。
  -Exclude <string[]>  排除指定項。
  -Include <string[]> 只包括指定項。
  -InputObject <psobject>  指定要搜索的文本。請輸入包含文本的變量,或鍵入可獲取文本的命令或表達式。
  -List [<SwitchParameter>]  只返回每個輸入文件中的第一個匹配項。
   -NotMatch [<SwitchParameter>] 查找與指定模式不匹配的文本。
  -Path <string[]>  指定要搜索的文件的路徑。允許使用通配符。默認位置爲本地目錄。
  -Pattern <string[]>  指定要查找的文本。鍵入字符串或正則表達式。如果您鍵入字符串,則使用 SimpleMatch 參數。
   -Quiet [<SwitchParameter>] 返回布爾值(True 或 False),而不是 MatchInfo 對象。
   -SimpleMatch [<SwitchParameter>] 使用簡單匹配,而不是正則表達式匹配。
eg: "HELLO" , "hello" | select-string -pattren "HELLO" -casesensitive  此命令爲通過管道傳遞給 Select-String 命令的文本執行區分大小寫的匹配。因此,Select-String 只查找“HELLO”,因爲“hello”不匹配。因爲每個帶引號的字符串都被視爲一行,所以若不使用 CaseSensitive 參數,Select-String 會將這兩個字符串都識別爲匹配項。
  select-string -path *.xml -pattern "the the" 此命令在當前目錄中搜索所有擴展名爲 .xml 的文件,並顯示這些文件中包含字符串“the the”的各行。
  select-string -path $pshome\en-US\*.txt -pattern "@" 此命令在 Windows PowerShell 概念性幫助文件 (about_*.txt) 中搜索有關 at 符號 (@) 用法的信息。爲了指示路徑,此命令使用 $pshome 自動變量的值,該變量存儲 Windows PowerShell 安裝目錄的路徑。在此示例中,該命令搜索 en-US 子目錄,該目錄包含 Windows PowerShell 的美國英語版幫助文件。
   C:\PS>function search-help
    {
        $pshelp = "$pshome\es\about_*.txt", "$pshome\en-US\*dll-help.xml"
        select-string -path $pshelp -pattern $args[0]
    }

    這一簡單函數使用 Select-String cmdlet 在 Windows PowerShell 幫助文件中搜索特定字符串。在此示例中,該函數在“en-US”子目
    錄中搜索美國英語語言文件。
  $events = get-eventlog -logname application -newest 100               $events | select-string -inputobject {$_.message} -pattern "failed" ##################################################################
  get-childitem c:\windows\system32\* -include *.txt -recurse | select-string -pattern "Microsoft" -casesensitive 此命令檢查 C:\Windows\System32 子目錄中所有擴展名爲 .txt 的文件,並搜索字符串“Microsoft”。CaseSensitive 參數指明“Microsoft”中的“M”必須大寫,其餘字符必須小寫,以便 Select-String 按此條件查找匹配項。
  select-string -path process.txt -pattern idle, svchost -notmatch 此命令查找 Process.txt 文件中不包括“idle”或“svchost”字詞的文本行。
get-date   獲取系統時間
get-command get-command -name -*.exe 列出在 Windows PowerShell 中可用的可執行文件
get-process   獲取在本地計算機或遠程計算機上運行的進程。
  -ComputerName <String[]>     獲取指定計算機上運行的進程。默認值爲本地計算機。鍵入一臺或多臺計算機的 NetBIOS 名稱、IP 地址或完全限定的域名。要指定本地計算機,請鍵入計算機名稱、句點 (.) 或“localhost”。此參數不依賴於 Windows PowerShell 遠程處理。即使您的計算機未配置爲運行遠程命令,您也可以使用 Get-Process 的 Computer
        Name 參數。
  -FileVersionInfo [<SwitchParameter>] ##################################################################
   -Id <Int32[]> 過進程 ID (PID) 指定一個或多個進程。若要指定多個 ID,請使用逗號分隔 ID。要查找進程的 PID,請鍵入“get-process”。-InputObject <Process[]>指定一個或多個進程對象。輸入一個包含對象的變量,或鍵入可獲取對象的命令或表達式。
  -InputObject <Process[]> 指定一個或多個進程對象。輸入一個包含對象的變量,或鍵入可獲取對象的命令或表達式。
  -Module [<SwitchParameter>]  獲取已由進程加載的模塊。
eg: >Get-Process winword, explorer | format-list *  此命令獲取計算機上的有關 Winword 和 Explorer 進程的所有可用的數據。它使用 Name 參數來指定進程,但省略可選的參數名。管道運算符 (|) 將數據傳遞給 Format-List cmdlet,後者將顯示 Winword 和 Explorer 進程對象的所有可用屬性 (*)。也可通過其進程 ID 來標識這些進程。例如,“get-process -id 664, 2060”。
  get-process | where-object {$_.WorkingSet -gt 20000000} 此命令獲取所有工作集大於 20 MB 的進程。它使用 Get-Process cmdlet 來獲取所有正在運行的進程。管道運算符 (|) 將進程對象傳遞給 Where
    -Object cmdlet,後者只選擇 WorkingSet 屬性的值大於 20,000,000 字節的對象。WorkingSet 是進程對象的許多屬性中的一個。要查看所有屬性,請鍵入“Get-Process | Get-Member”。默認情況下,所有數量屬性的值以字節爲單位,儘管默認顯示以千字節和兆字節爲單位列出這些值。
  $a = get-process               get-process -inputobject $a | format-table -view priority
    
第一個命令獲取計算機上的所有進程,然後將其存儲在 $a 變量中。
 第二個命令使用 InputObject 參數將存儲在 $a 變量中的進程對象傳遞給 Get-Process cmdlet。管道運算符將對象傳遞給 Format-Tab
    le cmdlet,該 cmdlet 使用 Priority 視圖設置進程的格式。
  get-process powershell -fileversioninfo 此命令使用 FileVersionInfo 參數來獲取 PowerShell.exe 文件的版本信息,該文件是 PowerShell 進程的主模塊。
  get-process sql* -module 此命令使用 Module 參數來獲取已由進程加載的模塊。此命令獲取名稱以“sql”開頭的進程的模塊。
  $p = get-wmiobject win32_process -filter "name='powershell.exe'"
$p.getowner()
此命令演示如何查找進程的所有者。因爲 Get-Process 返回的 System.Diagnostics.Process 對象沒有返回進程所有者的屬性和方法,所以該 命令將使用Get-WmiObject cmdlet 來獲取表示該進程的 Win32_Process 對象。第一個命令使用 Get-WmiObject 來獲取 PowerShell 進程。此命令將其保存在 $p 變量中。第二個命令使用 GetOwner 方法來獲取 $p 中進程的所有者。
cd function:   進入函數驅動器
clear-host   刪除控制檯窗口內的所有文本
import-module <module-name>   將模塊從默認模塊位置導入到當前會話中
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章