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> | 將模塊從默認模塊位置導入到當前會話中 | |