เอกสารอ้างอิง PowerShell ที่ค้นหาและพิมพ์ได้——cmdlet, pipeline, ตัวแปร, ไฟล์, ลูป, ฟังก์ชัน, ออบเจกต์ และการดูแลระบบ ฟรี

การขอความช่วยเหลือและค้นหา

12
Get-Help Get-Process
แสดง help ของ cmdlet
Get-Help Get-Process -Examples
แสดงตัวอย่างการใช้ cmdlet
Get-Help Get-Process -Full
แสดง help เต็มรวมพารามิเตอร์
Get-Help about_Functions
อ่านหัวข้อแนวคิด about_
Update-Help
ดาวน์โหลดไฟล์ help ล่าสุด
Get-Command -Noun Process
แสดง cmdlet ที่ทำงานกับ noun
Get-Command -Verb Get
แสดง cmdlet ที่ใช้ verb ที่กำหนด
Get-Command *service*
ค้นหาคำสั่งด้วยชื่อแบบ wildcard
Get-Process | Get-Member
แสดง property และ method ของ object
Get-Alias ls
แสดงว่า alias หมายถึงคำสั่งใด
Get-Alias -Definition Get-ChildItem
แสดง alias ทั้งหมดของ cmdlet
$PSVersionTable
แสดงเวอร์ชันและ edition ของ PowerShell

ตัวแปรและชนิดข้อมูล

13
$x = 5
กำหนดค่าให้ตัวแปร
[int]$n = '42'
ประกาศตัวแปรที่ระบุชนิดชัดเจน
$null
ค่า null / ว่าง
$true; $false
literal แบบ boolean
$arr = @(1, 2, 3)
สร้าง array
$arr += 4
ต่อ element เข้า array
$arr[0]; $arr[-1]
เข้าถึง element แรกและสุดท้ายของ array
$hash = @{ Name = 'Ann'; Age = 30 }
สร้าง hashtable
$hash['Name']; $hash.Name
อ่านค่าจาก hashtable ด้วย key
$env:PATH
อ่านตัวแปรสภาพแวดล้อม
$env:MY_VAR = 'value'
ตั้งตัวแปรสภาพแวดล้อมสำหรับ session
Get-Variable
แสดงตัวแปรที่กำหนดทั้งหมด
[math]::Round(3.14159, 2)
เรียก method แบบ static ของ .NET

Pipeline และการกรอง

12
Get-Process | Where-Object { $_.CPU -gt 10 }
กรอง object ตามเงื่อนไข
Get-Process | ? CPU -gt 10
กรองด้วย alias ? และไวยากรณ์แบบย่อ
Get-Process | ForEach-Object { $_.Name }
รัน script block สำหรับแต่ละ object
Get-Process | % { $_.Kill() }
วนซ้ำด้วย alias %
Get-Process | Select-Object Name, Id
เก็บเฉพาะ property ที่กำหนด
Get-Process | Select-Object -First 5
เอา object N ตัวแรก
Get-Process | Sort-Object CPU -Descending
เรียง object ตาม property
Get-Process | Group-Object Company
จัดกลุ่ม object ตาม property
Get-Process | Measure-Object CPU -Sum
รวมค่าตัวเลข (sum, average)
Get-ChildItem | Select-Object -Unique
คืน object ที่ไม่ซ้ำ
1..5 | ForEach-Object { $_ * 2 }
ส่งช่วงผ่าน transform
Get-Process | Out-GridView
ส่งผลลัพธ์ไปยัง grid แบบโต้ตอบ

ไฟล์และพาธ

13
Get-ChildItem -Path C:\Logs
แสดงรายการในไดเรกทอรี (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
แสดงไฟล์ที่ match แบบเรียกซ้ำ
Get-Content .\file.txt
อ่านไฟล์ทีละบรรทัด
Get-Content .\file.txt -Tail 20
อ่าน N บรรทัดสุดท้ายของไฟล์
Set-Content .\file.txt -Value 'Hi'
เขียน (เขียนทับ) ข้อความลงไฟล์
Add-Content .\file.txt -Value 'Hi'
ต่อข้อความเข้าไฟล์
Copy-Item a.txt b.txt
คัดลอกไฟล์หรือไดเรกทอรี
Move-Item a.txt .\dir\
ย้ายหรือเปลี่ยนชื่อรายการ
Remove-Item a.txt -Force
ลบไฟล์หรือไดเรกทอรี
New-Item -ItemType Directory -Path .\dir
สร้างไฟล์หรือไดเรกทอรีใหม่
Test-Path .\file.txt
ตรวจสอบว่าพาธมีอยู่หรือไม่
Get-Location
แสดงไดเรกทอรีปัจจุบัน (alias pwd)
Set-Location C:\Temp
เปลี่ยนไดเรกทอรีปัจจุบัน (alias cd)

String และข้อความ

12
'Hello World' -match 'World'
ทดสอบ string กับ regex
'Hello' -replace 'l', 'L'
แทนที่ข้อความด้วย regex
'a,b,c' -split ','
แยก string เป็น array ด้วย regex
'a-b-c'.Split('-')
แยกด้วย method String ของ .NET
'a', 'b' -join ', '
รวม element ของ array เป็น string
Select-String -Path *.log -Pattern 'error'
ค้นหาแบบ grep ข้ามหลายไฟล์
'{0} of {1}' -f 3, 10
จัดรูปแบบ string ด้วย placeholder
' hi '.Trim()
ตัดช่องว่างหน้าและท้าย
'Hello'.ToUpper()
แปลง string เป็นตัวพิมพ์ใหญ่
'Hello'.Substring(0, 3)
ดึง substring ตาม index และความยาว
'Hello'.Contains('ell')
ทดสอบว่า string มีข้อความหรือไม่
'Hello'.Length
ดึงจำนวนอักขระ

Loop และเงื่อนไข

12
if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
แตกสาขาด้วย if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
จับคู่ค่ากับ case ต่างๆ
foreach ($i in $arr) { $i }
วนซ้ำบน collection
for ($i = 0; $i -lt 5; $i++) { $i }
loop แบบนับด้วย index
while ($x -lt 10) { $x++ }
วนขณะที่เงื่อนไขเป็นจริง
do { $x++ } while ($x -lt 10)
วนอย่างน้อยครั้งหนึ่ง แล้วค่อยทดสอบ
$x -eq 5; $x -ne 5
การเปรียบเทียบเท่ากันและไม่เท่ากัน
$x -gt 5; $x -lt 5
การเปรียบเทียบมากกว่าและน้อยกว่า
$x -ge 5; $x -le 5
การเปรียบเทียบมากกว่า/น้อยกว่าหรือเท่ากับ
'abc' -like 'a*'
การเปรียบเทียบแบบ wildcard
@(1, 2, 3) -contains 2
ทดสอบการเป็นสมาชิกใน array
break; continue
ออกหรือข้ามรอบ loop ปัจจุบัน

ฟังก์ชันและสคริปต์

12
function Get-Sum { param($a, $b) $a + $b }
นิยามฟังก์ชันพร้อมพารามิเตอร์
Get-Sum -a 2 -b 3
เรียกฟังก์ชันด้วย argument ที่ตั้งชื่อ
function Test { param([int]$n = 1) }
พารามิเตอร์ระบุชนิดพร้อมค่าเริ่มต้น
param([Parameter(Mandatory)]$Name)
บังคับให้ต้องส่งพารามิเตอร์
return $value
คืนค่าจากฟังก์ชัน
function F { [CmdletBinding()] param() }
สร้างฟังก์ชันขั้นสูง (common params)
Write-Verbose 'msg' -Verbose
ส่งสตรีมข้อความแบบ verbose
Write-Output $result
ส่ง object ไปยัง pipeline
Write-Error 'failed'
เขียนไปยังสตรีม error
.\script.ps1 -Arg value
รันไฟล์สคริปต์พร้อม argument
. .\functions.ps1
Dot-source สคริปต์เข้า session
try { } catch { $_ } finally { }
จัดการ error แบบ terminating

Object และ property

12
Get-Process | Select-Object -ExpandProperty Name
คืนค่า property ดิบ ไม่ใช่ object
(Get-Process).Name
เข้าถึง property ของแต่ละ object
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
เพิ่ม property ที่คำนวณได้
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
สร้าง object กำหนดเอง
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
ผูก property เข้ากับ object
$obj.PSObject.Properties.Name
แสดงชื่อ property ของ object
$obj | Format-Table -AutoSize
แสดง object เป็นตารางจัดแนว
$obj | Format-List *
แสดง property ทั้งหมดเป็น list
$obj | ConvertTo-Json -Depth 5
Serialize object เป็น JSON
Get-Content data.json | ConvertFrom-Json
แปลง JSON เป็น object
$obj | Export-Csv out.csv -NoTypeInformation
ส่งออก object เป็นไฟล์ CSV
Import-Csv data.csv
อ่านไฟล์ CSV เป็น object

โปรเซสและบริการ

12
Get-Process
แสดงโปรเซสที่กำลังทำงาน (alias ps)
Get-Process -Name chrome
ดึงโปรเซสตามชื่อ
Stop-Process -Name notepad -Force
ยุติโปรเซส
Start-Process notepad.exe
เปิดโปรเซสใหม่
Get-Service
แสดงบริการของ Windows
Get-Service -Name wuauserv
ดึงบริการตามชื่อ
Start-Service -Name wuauserv
เริ่มบริการที่หยุดอยู่
Stop-Service -Name wuauserv
หยุดบริการที่กำลังทำงาน
Restart-Service -Name wuauserv
รีสตาร์ทบริการ
Set-Service -Name wuauserv -StartupType Manual
เปลี่ยนโหมดเริ่มของบริการ
Get-EventLog -LogName System -Newest 20
อ่านรายการ event-log แบบคลาสสิกล่าสุด
Get-WinEvent -LogName Application -MaxEvents 20
Query event log แบบใหม่

Remoting และ job

12
Enter-PSSession -ComputerName Srv01
เริ่ม session ระยะไกลแบบโต้ตอบ
Exit-PSSession
ออกจาก session ระยะไกลแบบโต้ตอบ
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
รันคำสั่งบน host ระยะไกล
$s = New-PSSession -ComputerName Srv01
สร้าง session ระยะไกลแบบคงอยู่
Invoke-Command -Session $s -ScriptBlock { hostname }
ใช้ session ระยะไกลที่มีอยู่ซ้ำ
Remove-PSSession $s
ปิดและลบ session ระยะไกล
Start-Job -ScriptBlock { Get-Process }
รันคำสั่งเป็น background job
Get-Job
แสดง background job และสถานะ
Receive-Job -Id 1 -Keep
ดึงเอาต์พุตของ job
Wait-Job -Id 1
บล็อกจนกว่า job จะเสร็จ
Stop-Job -Id 1; Remove-Job -Id 1
หยุดและลบ background job
Get-Process | Start-ThreadJob { $input }
รัน thread job แบบเบาภายในโปรเซส

Module และ package

12
Get-Module
แสดง module ที่โหลดอยู่
Get-Module -ListAvailable
แสดง module ที่ติดตั้งทั้งหมด
Import-Module Pester
โหลด module เข้า session
Remove-Module Pester
ถอด module ออกจาก session
Find-Module -Name PSReadLine
ค้นหา module ใน gallery
Install-Module PSReadLine -Scope CurrentUser
ติดตั้ง module จาก gallery
Update-Module PSReadLine
อัปเดต module ที่ติดตั้ง
Uninstall-Module PSReadLine
ลบ module ที่ติดตั้ง
Get-ExecutionPolicy
แสดง execution policy ของสคริปต์ปัจจุบัน
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
อนุญาตให้สคริปต์ที่ลงนามและ local รันได้
Get-PSRepository
แสดง repository ของ package ที่ตั้งค่าไว้
$PROFILE
พาธของสคริปต์โปรไฟล์ผู้ใช้ปัจจุบัน

ไม่มีรายการที่ตรงกับ “:q”


แชร์สิ่งนี้
ต้องการความช่วยเหลือ?
พบปัญหากับเครื่องมือนี้หรือไม่? แจ้งทีมงานของเรา
รายงานปัญหา

เพิ่มเครื่องมือฟรีนี้ลงในเว็บไซต์ของคุณเอง — คัดลอกและวางโค้ดด้านล่าง