PowerShell 使用者不能錯過的 5 個技巧

2021-08-06

筆記如何使用 PowerShell 的 5 個語言技巧,讓管理伺服器更為有效率。介紹的技巧包括 Compare-Object 比對 Process 的異動情形、將資料轉換為 CSV 或 HTML、使用 PowerShell 檢視 CPU 使用中的 Process、使用 PowerShell 檢視 Eventlogs 以及如何使用 Where 過濾物件的方法 😎

logo

說明

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

相關連結

PowerShell 使用者不能錯過的 5 個技巧

Powershell 使用物件與資料結構 (Array, Hash)

PowerShell 常用指令筆記