PowerShell 使用者不能錯過的 5 個技巧
2021-08-06
筆記如何使用 PowerShell 的 5 個語言技巧,讓管理伺服器更為有效率。介紹的技巧包括 Compare-Object 比對 Process 的異動情形、將資料轉換為 CSV 或 HTML、使用 PowerShell 檢視 CPU 使用中的 Process、使用 PowerShell 檢視 Eventlogs 以及如何使用 Where 過濾物件的方法 😎
說明
Compare Object
可以比較行為前後的 Process 變化情形,在 Trouble Shooting 的時候非常實用。
Get-Process | Export-Clixml c:\temp\prcesss.xml
# Do Some things...
Compare-Object
-ReferenceObject (Import-Clixml c:\temp\prcesss.xml)
-DifferenceObject (Get-Process) -property name
ConvertTo-html / ConvertTo-csv
可以將資料轉為 Html 或者 Csv 格式,扮演中間資料的介接工作或者資料成果的工作。
Get-Process | ConvertTo-html | Out-file c:\temp\file.html
Get-Process | ConvertTo-csv | Out-file c:\temp\file.csv
Get Busy Process
搭配 Where 以及 Sort 取得目前 CPU 使用中的 Process。
Get-Process | ? cpu -gt 10 | Sort-Object cpu -Descending
Minimalist 😏
gps | ? cpu -gt 10 | sort cpu -d
Multiple conditions
如果想要在 Where 中結合多個查詢條件,可以使用 -and
來連結:
Get-Service | ? {$_.status -eq 'running' -and $_.name -like 'b*'}
EventLog
不使用 Eventvwr 而是改使用 PowerShell 查詢事件的方法。要查詢 Security Event 必須以提升執行 PowerShell 的執行權限才能查詢:
Get-EventLog system -Newest 5
Get-EventLog application -Newest 5
# elevated needed
Get-EventLog security -Newest 5