เบเบฒเบเบชเบปเปเบเบญเบญเบเบเปเปเบเบงเบฒเบกเบเบญเบเบเปเบฒเบชเบฑเปเบเบขเบนเปเปเบเบเปเบญเบเบขเปเบฝเบกเบเบปเบงเปเบเบเบฒเบชเบฒ PowerShell เปเบกเปเบเบเบฝเบเปเบเปเบงเบดเบเบตเบเบฒเบเบชเบฐเปเบเบเบเปเปเบกเบนเบเปเบเบฎเบนเบเปเบเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเปเบเบปเปเบฒเปเบเบเบญเบเบกเบฐเบเบธเบ. เปเบเปเบเบดเบเปเบฅเปเบงเบงเบฑเบเบเบธเบ
เบเบฒเบชเบฒ:
เบงเบฑเบเบเบธเปเบ PowerShell
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบทเปเบงเปเบฒเบงเบฑเบเบเบธเปเบกเปเบเบเบฒเบเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบญเบเบเปเบญเบเบเปเปเบกเบนเบ (เบเบธเบเบชเบปเบกเบเบฑเบ, เปเบซเบเบเบฒเบ, เปเบฅเบฐเบญเบทเปเบเป) เปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบเบธเบเปเบเปเบเบเบงเบเบกเบฑเบ (เบงเบดเบเบตเบเบฒเบ). เปเบเบเบชเปเบฒเบเบเบญเบเบกเบฑเบเบเบทเบเบฅเบฐเบเบธเปเบงเปเปเบเบเบเบฐเปเบเบ, เปเบเบดเปเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเปเบกเปเบเบญเบตเบเปเบชเปเบเบฑเปเบเบฎเบฝเบเบเบตเปเปเบเปเปเบเปเบเบฅเบฐเบเบฐเบเบญเบก .NET Core เบเบตเปเปเบเบฑเบเปเบญเบเบฐเบเบฒเบ. เบกเบฑเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบงเบฑเบเบเบธ COM, CIM (WMI) เปเบฅเบฐ ADSI. เบเบธเบเบชเบปเบกเบเบฑเบ เปเบฅเบฐเบงเบดเบเบตเบเบฒเบเปเบกเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบเปเบเปเบฝเบงเบเบฑเบเบเปเปเบกเบนเบ; เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบ PowerShell, เบงเบฑเบเบเบธเบชเบฒเบกเบฒเบเบเบทเบเบชเบปเปเบเบเปเบฒเบเปเบเบฑเบ argument เบเบฑเบ functions เปเบฅเบฐ cmdlets, เบกเบญเบเบซเบกเบฒเบเบเปเบฒเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบซเปเบเบฑเบเบเบปเบงเปเบ, เปเบฅเบฐเบเบฑเบเบกเบต.
เปเบเบดเปเบเปเบเบเบชเปเบฒเบเบเบญเบเบงเบฑเบเบเบธ
เบเบปเบงเบขเปเบฒเบ, เปเบซเปเบเปเบฒเปเบเบตเบเบเบฒเบ cmdlet Get-Process, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฐเบเบงเบเบเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฅเบฐเบเบปเบ:
เบกเบฑเบเบเบฐเบชเบฐเปเบเบเบเปเปเบกเบนเบเบเปเปเบเบงเบฒเบกเบเบตเปเบกเบตเบฎเบนเบเปเบเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเปเปเบเปเปเบซเปเบเบงเบฒเบกเบเบดเบเปเบเปเบเปเบฝเบงเบเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบงเบฑเบเบเบธเบเบตเปเบชเบปเปเบเบเบทเบเปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒ. เปเบเบทเปเบญเบเบฑเบเปเบเปเบเบเบปเบเบเบฐเบฅเบดเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบฎเบฝเบเบฎเบนเปเบงเบดเบเบตเบเบฒเบเบเบงเบเบชเบญเบเปเบเบเบชเปเบฒเบเบเบญเบเบงเบฑเบเบเบธ, เปเบฅเบฐ Get-Member cmdlet เบเบฐเบเปเบงเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบฅเบทเปเบญเบเบเบตเป:
Get-Process | Get-Member
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบเบฐเปเบเบเปเบฅเบฐเปเบเบเบชเปเบฒเบ, เปเบฅเบฐเบเปเบงเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบ, เบเบปเบงเบขเปเบฒเบ, เบชเบฐเปเบเบเบเบฝเบเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบงเบฑเบเบเบธเบฅเบงเบกเบขเบนเปเปเบเบงเบฑเบเบชเบฐเบเบธเบเปเบญเบ:
Get-Process | Get-Member -MemberType Property
เบเบงเบฒเบกเบฎเบนเปเบเบตเปเบเบฐเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฒเบเบเปเบฅเบดเบซเบฒเบเปเบเบเปเบเปเบเบญเบเบซเบผเบทเบเบฝเบเบชเบฐเบเบดเบเบเบญเบเบเปเบฒเบเปเบญเบ: เบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฐเบเบงเบเบเบฒเบ hung เปเบเบเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบชเบฐเบซเบเบญเบ.
เบเบฒเบเบเบฑเปเบเบเบญเบเบงเบฑเบเบเบธ
PowerShell เบญเบฐโเบเบธโเบเบฒเบโเปเบซเปโเบงเบฑเบโเบเบธโเบเบตเปโเบเบญเบโเบชเบฐโเบซเบเบญเบโเบชเบฐโเบเบฒเบโเบเบฒเบโเบชเบฐโเปเบเบฒเบฐโเปเบโเบซเบเบถเปเบโเบเบตเปโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเปเบฒเบโเบเปเปโเปเบเปโ:
Where-Object { ะฑะปะพะบ ััะตะฝะฐัะธั }
เบเบปเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบงเบเบฅเบฑเบญเบเบชเบฐเบเบฃเบดเบเบเบฒเบเปเบเบงเบปเบเปเบฅเบฑเบเบเปเบญเบเปเบเบฑเบเบเปเบฒ boolean. เบเปเบฒเบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ ($true), เบงเบฑเบเบเบธเบเบตเปเบเปเบญเบเปเบเบปเปเบฒเปเบเบซเบฒ Where-Object cmdlet เบเบฐเบเบทเบเบชเบปเปเบเบเปเบฒเบเบเปเปเบเบฑเปเบ, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ ($false) เบกเบฑเบเบเบฐเบเบทเบเบฅเบถเบเบญเบญเบ. เบเบปเบงเบขเปเบฒเบ, เปเบซเปเบชเบฐเปเบเบเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ Windows Server เบเบตเปเบขเบธเบ, i.e. เบเบนเปโเบเบตเปโเบกเบตโเบเบธเบโเบชเบปเบกโเบเบฑเบโเบชเบฐโเบเบฒโเบเบฐโเปเบเปโเบเบทเบโเบเบฑเปเบโเปเบเบฑเบ "เบขเบธเบโเปเบเบปเบฒโเบเบฒเบโ"โ:
Get-Service | Where-Object {$_.Status -eq "Stopped"}
เบญเบตเบเปเบเบทเปเบญ เปเบถเปเบ เบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบเบฒเบเปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบปเบงเปเบฑเบเบชเบท, เปเบเปเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบเบฐเปเบเบเปเบฅเบฐเปเบเบเบชเปเบฒเบเบเบฒเบเปเบเบเบญเบเบงเบฑเบเบเบธเบเบตเปเบเปเบฒเบเบเปเปเบเบฑเปเบเบเปเปเบเบฒเบ:
Get-Service | Where-Object {$_.Status -eq "Stopped"} | Get-Member
เบเบฒเบเบเบฑเบเบฎเบฝเบเบงเบฑเบเบเบธ
เปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบธเบเปเบเปเบเบเปเปเบเบญเบเบงเบฑเบเบเบธ, เบกเบฑเบเบเบฐเบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบฑเบเบฅเบฝเบเบชเบดเปเบเบเบญเบ. cmdlet เบเบฒเบเบเบฑเบเบฎเบฝเบ-เบงเบฑเบเบเบธเปเบกเปเบเบเปเบฒเบเบเบทเปเบเบญเบเบเบธเบเบชเบปเบกเบเบฑเบ (เบเบฐเปเบเบเบฒเบเบเบฑเบเบฎเบฝเบ) เปเบฅเบฐเบชเบปเปเบเบเบทเบเบงเบฑเบเบเบธเบเบตเปเบเบฑเบเบฎเบฝเบเบเบฒเบกเบเปเบฒเบเบญเบเบเบงเบเบกเบฑเบ. เบกเบฑเบโเบเปเบฒเบโเบเบตเปโเบเบฐโเบเบฑเบโเบฅเบฝเบโเบฅเปเบฒโเบเบฑเบโเบเบปเบโเบเบฐโเบฅเบดเบโเบเบญเบโเบเบฐโเบเบงเบโเบเบฒเบโเปเบฅเปเบโเปเบเบโเบเบฒเบโเปเบเปโเปเบงโเบฅเบฒ CPU (เบเบธเบโเบชเบปเบกโเบเบฑเบ CPUโ)โ:
Get-Process | Sort-Object โProperty cpu
เบเบฒเบฅเบฒเบกเบดเปเบเบต -Property เบชเบฒเบกเบฒเบเบเบทเบเบฅเบฐเปเบงเบฑเปเบเปเบกเบทเปเบญเปเบเบซเบฒ cmdlet เบเบฒเบเบเบฑเบเบฅเบฝเบ - เบงเบฑเบเบเบธ; เบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบฎเบฝเบเปเบเบเบเบตเปเบเบเบฑเบเบเบฑเบ, เปเบเปเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ -Descending:
Get-Process | Sort-Object cpu -Descending
เบเบฒเบเบเบฑเบเปเบฅเบทเบญเบเบงเบฑเบเบเบธเปเบฅเบฐเบเบฒเบเบชเปเบงเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ
Select-Object cmdlet เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบฅเบทเบญเบเบเปเบฒเบเบงเบเบชเบฐเปเบเบฒเบฐเบเบญเบเบงเบฑเบเบเบธเปเบเบเบญเบเบเบปเปเบ เบซเบผเบทเบเบธเบเบชเบดเปเบเบชเบธเบเบเบญเบเบเปเปเปเบเปเบถเปเบเปเบเบเปเบเปเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ -First เบซเบผเบท -Last. เบเปเบงเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบเบกเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฅเบทเบญเบเบงเบฑเบเบเบธเบเบฝเบงเบซเบผเบทเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเปเบเปเบเบญเบ, เปเบฅเบฐเบเบฑเบเบชเปเบฒเบเบงเบฑเบเบเบธเปเบซเบกเปเปเบเบเบญเบตเบเปเบชเปเบเบงเบเบกเบฑเบ. เปเบซเปเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ cmdlet เปเบเบเปเบเปเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเป.
เบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบ 10 เบเบฐเบเบงเบเบเบฒเบเบเบตเปเบเปเบฅเบดเปเบเบเบเปเบฒเบเบงเบเบชเบนเบเบชเบธเบเบเบญเบ RAM (เบเบธเบเบชเบปเบกเบเบฑเบ WS):
Get-Process | Sort-Object WS -Descending | Select-Object -First 10
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฅเบทเบญเบเบเบฝเบเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบฒเบเบขเปเบฒเบเบเบญเบเบงเบฑเบเบเบธเบเบตเปเบเปเบฒเบเบเปเปเบเบฑเปเบ เปเบฅเบฐเบชเปเบฒเบเบญเบฑเบเปเปเปเปเบเบเบญเบตเบเปเบชเปเบเบงเบเบกเบฑเบ:
Get-Process | Select-Object ProcessName, Id -First 1
เปเบเบฑเบเบเบปเบเบกเบฒเบเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบเปเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบงเบฑเบเบเบธเปเบซเบกเป, เปเบเบเบชเปเบฒเบเบเบญเบเบกเบฑเบเบเบฐเปเบเบเบเปเบฒเบเบเบฒเบเปเบเบเบชเปเบฒเบเบเบตเปเบชเบปเปเบเบเบทเบเปเบเบ Get-Process cmdlet. เบกเบฒเบเบงเบเบชเบญเบเบเบตเปเปเบเบเปเบเป Get-Member:
Get-Process | Select-Object ProcessName, Id -First 1 | Get-Member
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒ Select-Object เบชเบปเปเบเบเบทเบเบงเบฑเบเบเบธเบเบฝเบง (-First 1) เบเบตเปเบกเบตเบเบฝเบเปเบเปเบชเบญเบเบเปเบญเบเบเปเปเบกเบนเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบฅเบฐเบเบธเปเบงเป: เบเปเบฒเบเบญเบเบเบงเบเบกเบฑเบเบเบทเบเบเบฑเบเบฅเบญเบเบเบฒเบเบงเบฑเบเบเบธเบเปเบฒเบญเบดเบเบเบตเปเบเปเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเปเปเปเบเบ Get-Process cmdlet. เบงเบดเบเบตเปเบถเปเบเปเบเบเบฒเบเบชเปเบฒเบเบงเบฑเบเบเบธเปเบเบชเบฐเบเบฃเบดเบ PowerShell เปเบกเปเบเบญเบตเบเปเบชเปเบเบฒเบเปเบเป Select-Object:
$obj = Get-Process | Select-Object ProcessName, Id -First 1
$obj.GetType()
เบเบฒเบเบเปเบฒเปเบเป Select-Object, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบกเบเบดเบงเปเบเบตเปเบเบฑเบเบงเบฑเบเบเบธเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบฑเบเบเบปเบงเปเบเบ
Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}}
เบเปเปเบซเปเปเบเบดเปเบเปเบเบเบชเปเบฒเบเบเบญเบเบงเบฑเบเบเบธเบเบตเปเบเปเบฒเบเบฅเปเบฒเบฅเบฝเบ:
Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}} | Get-Member
ForEach-Object, Group-Object เปเบฅเบฐ Measure-Object
เบกเบต cmdlets เบญเบทเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบงเบฑเบเบเบธ. เบเบปเบงเบขเปเบฒเบ, เปเบซเปเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบชเบฒเบกเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบชเบธเบ:
เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบธเบเบเบฐเบชเบปเบ เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบฅเปเบเบฅเบฐเบซเบฑเบ PowerShell เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบงเบฑเบเบเบธเปเบเบเปเป:
ForEach-Object { ะฑะปะพะบ ััะตะฝะฐัะธั }
เบเบธเปเบก-เบงเบฑเบเบเบธ เบเบฑเบเบเบธเปเบกเบงเบฑเบเบเบธเบเบฒเบกเบกเบนเบเบเปเบฒเบเบฑเบเบชเบดเบ:
Group-Object PropertyName
เบเปเบฒเบเปเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ -NoElement, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเปเบฒเบเบงเบเบญเบปเบเบเบฐเบเบญเบเปเบเบเบธเปเบก.
เบงเบฑเบโเบเบธ - เบงเบฑเบโเบเบธ เบฅเบงเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบชเบฐเบซเบผเบธเบเบเปเบฒเบเปเปเบเบเบเปเบฒเบเบฒเบเบชเบฐเบซเบเบฒเบกเบงเบฑเบเบเบธเปเบเบเปเป (เบเปเบฒเบเบงเบเบเบปเบเบฅเบงเบก, เปเบฅเบฐเบเบฑเบเบเบญเบเบซเบฒเบเปเบฒเบเปเบฒเปเบชเบธเบเบเบตเป, เบชเบนเบเบชเบธเบเบซเบผเบทเบชเบฐเปเบฅเปเบ):
Measure-Object -Property PropertyName -Minimum -Maximum -Average -Sum
เปเบเบเบเบปเบเบเบฐเบเบด, cmdlets เบเบตเปเบชเบปเบเบเบฐเบเบฒเปเบกเปเบเปเบเปเปเบเบเปเบเปเบเบญเบ, เปเบฅเบฐเบกเบฑเบเบเบฐเบเบทเบเบชเปเบฒเบเบขเบนเปเปเบเบชเบฐเบเบดเบ.
เบเบฒเบเบชเปเบฒเบเบงเบฑเบเบเบธ .NET เปเบฅเบฐ COM (New-Object)
เบกเบตเบซเบผเบฒเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเบเบญเบเปเบงเบเบตเปเบกเบตเบชเปเบงเบเบเบดเบเบเปเป .NET Core เปเบฅเบฐ COM เบเบตเปเบกเบตเบเบฐเปเบซเบเบเบเปเปเบเบนเปเบเปเบฅเบดเบซเบฒเบเบฅเบฐเบเบปเบ. เบเบฒเบเบเปเบฒเปเบเปเบซเปเบญเบเบฎเบฝเบ System.Diagnostics.EventLog, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเบเบญเบเบฅเบฐเบเบปเบเปเบเบเบเบปเบเบเบฒเบ Windows PowerShell. เปเบซเปเปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบชเปเบฒเบ instance เบเบญเบเบซเปเบญเบเบฎเบฝเบเบเบตเปเปเบเบเปเบเป New-Object cmdlet เบเบตเปเบกเบต -TypeName parameter:
New-Object -TypeName System.Diagnostics.EventLog
เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบฅเบฐเบเบธเบเบฑเบเบเบถเบเปเบซเบเบเบฒเบเบชเบฐเปเบเบฒเบฐ, เบเบปเบงเบขเปเบฒเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบซเปเบญเบเบฎเบฝเบเบเปเปเบกเบตเบเปเปเบกเบนเบ. เปเบเบทเปเบญเบเปเบฝเบเปเบเบเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบซเบฒเบงเบดเบเบตเบเบฒเบเบเปเปเบชเปเบฒเบเบเบดเปเบชเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบชเปเบฒเบเบเบญเบเบกเบฑเบเปเบเบเปเบเป -ArgumentList parameter. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฑเบเบเบถเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเบเปเบฒเบเบชเบฒเบ "Application" เปเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบเบเบฑเบเบเบนเปเบเปเปเบชเปเบฒเบ:
$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog
เบเบฐเบฅเบธเบเบฒเบชเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบเบถเบเบเบปเบเบเบฐเบฅเบดเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบขเบนเปเปเบเบเบปเบงเปเบ $AppLog. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเปเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเบปเปเบงเปเบเปเบเบฎเบนเบเปเบเบเบเบฒเบเปเบเปเบเบญเบ, เบเบฒเบเบเบฝเบเบชเบฐเบเบดเบเบกเบฑเบเบเบฐเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเบฎเบฑเบเบชเบฒเบเบฒเบเบญเปเบฒเบเบญเบตเบเปเบเบดเบเบงเบฑเบเบเบธ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบซเปเบญเบเบฎเบฝเบ .NET Core เบซเบผเบฑเบเปเบกเปเบเบเบฑเบเบเบธเบขเบนเปเปเบ System namespace: PowerShell เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบซเบฒเบเบฐเปเบเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบกเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเบฝเบ Diagnostics.EventLog เปเบเบ System.Diagnostics.EventLog เปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเบทเบเบเปเบญเบ.
เปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฑเบเบเบถเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก:
$AppLog | Get-Member -MemberType Method
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบกเบฑเบเบเบทเบเบฅเบถเบเบฅเปเบฒเบเปเบเบเบงเบดเบเบต Clear() เบเปเบฒเบกเบตเบชเบดเบเปเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ:
$AppLog.Clear()
New-Object cmdlet เบเบฑเบเบเบทเบเปเบเปเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบญเบปเบเบเบฐเบเบญเบ COM. เบกเบตเบเปเบญเบเบเปเบฒเบเบซเบผเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒ - เบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบชเบฐเบเบดเบ Windows เบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ ActiveX, เปเบเบฑเปเบ Internet Explorer. เปเบเบทเปเบญเบชเปเบฒเบเบงเบฑเบเบเบธ COM, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเบเบปเบเบเบฒเบฅเบฒเบกเบดเปเบเบต -ComObject เบเปเบงเบเปเบเปเบเบก ProgId เบเบญเบเบซเปเบญเบเบฎเบฝเบเบเบตเปเบเปเบญเบเบเบฒเบ:
New-Object -ComObject WScript.Shell
New-Object -ComObject WScript.Network
New-Object -ComObject Scripting.Dictionary
New-Object -ComObject Scripting.FileSystemObject
เปเบเบทเปเบญเบชเปเบฒเบเบงเบฑเบเบเบธเบเบญเบเบเปเบฒเบเปเบญเบเบเปเบงเบเปเบเบเบชเปเบฒเบเบเบตเปเบเบปเบเปเบญเบเบกเบฑเบ, เบเบฒเบเปเบเป New-Object เปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบปเปเบฒเปเบเป เปเบฅเบฐเบซเบเบธเปเบเบเบฒเบเปเบเบตเบเปเบ; cmdlet เบเบตเปเบเบทเบเปเบเปเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเปเบงเบเบฒเบเบเบญเบเบเบญเบ PowerShell. เปเบเบเบปเบเบเบงเบฒเบกเปเบเบญเบฐเบเบฒเบเบปเบเบเบฑเบเบซเบฒเบเบตเปเบเบฐเบเบทเบเบเบถเบเบชเบฒเบซเบฒเบฅเบทเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก. เบเบญเบเปเปเบทเบญเปเบเบเบฒเบเบงเบฑเบเบเบธ .NET เปเบฅเบฐ COM, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเบชเบณเบซเบผเบงเบเบงเบฑเบเบเบธ CIM (WMI) เปเบฅเบฐ ADSI.
เปเบเบซเบฒเบงเบดเบเบตเบเบฒเบ static
เบเบฒเบเบเบฑเปเบเบฎเบฝเบ .NET Core เบเปเปเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเบเบเบธเบเบเบฑเบเบเบต, เบฅเบงเบกเบเบฑเบ System.Environment เปเบฅเบฐ System.Math. เบเบงเบโเปเบเบปเบฒโเปเบกเปเบ
[System.Environment] | Get-Member
เปเบเบทเปเบญเปเบเบดเปเบเบชเบฐเปเบเบฒเบฐเบชเบฐเบกเบฒเบเบดเบเปเบเบเบเบปเบเบเบตเป, เปเบเบซเบฒ Get-Member เบเปเบงเบเบเบฒเบฅเบฒเบกเบดเปเบเบต -Static (เปเบฒเบเปเบซเบเบเบฐเปเบเบเบงเบฑเบเบเบธ):
[System.Environment] | Get-Member -Static
เปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเบเบธเบเบชเบปเบกเบเบฑเบ เปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบชเบฐเบเบดเบ, เปเบซเปเปเบเปเบชเบญเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบเบเบดเบเบเปเปเบเบฑเบเปเบเบเปเบฅเบเบฐเปเบงเบฅเบฒเบซเบผเบฑเบเบเบฒเบเบเบปเบงเปเบฑเบเบชเบท:
[System.Environment]::OSVersion
Or
$test=[System.Math]::Sqrt(25)
$test
$test.GetType()
เบเบดเบก PSCustomObject
เปเบโเบเบฑเบโเบเบฒโเบเบฐโเปเบเบโเบเปเปโเบกเบนเบโเบเปเบฒโเบเบงเบโเบซเบผเบฒเบโเบเบตเปโเบกเบตโเบขเบนเปโเปเบ PowerShellโ, เบกเบฑเบโเปเบเบฑเบโเบเบฒเบโเบเปเบฒเบงโเปเบเบดเบ PSCustomObjectโ, เบญเบญเบโเปเบเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเปเบเบฑเบโเบฎเบฑเบโเบชเบฒโเบงเบฑเบโเบเบธโเบเบตเปโเบกเบตโเปเบเบโเบเบฐโเบเบญเบโเบเบฒเบโเบเบตเปโเบเบปเบโเปเบญเบโ. เบเบฒเบเบชเปเบฒเบเบงเบฑเบเบเบธเบเบฑเปเบเบเปเบฒเบงเปเบเบเปเบเป New-Object cmdlet เบเบทเบงเปเบฒเปเบเบฑเบเบงเบดเบเบตเบเบฅเบฒเบชเบชเบดเบ, เปเบเปเบซเบเบธเปเบเบเบฒเบ เปเบฅเบฐเบฅเปเบฒเบชเบฐเปเบซเบก:
$object = New-Object โTypeName PSCustomObject -Property @{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'}
เปเบซเปเปเบเบดเปเบเปเบเบเบชเปเบฒเบเบเบญเบเบงเบฑเบเบเบธ:
$object | Get-Member
เปเบเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ PowerShell 3.0, syntax เบญเบทเปเบเบชเบฒเบกเบฒเบเปเบเปเปเบเป:
$object = [PSCustomObject]@{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'
}
เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเปเปโเบกเบนเบโเปเบโเบซเบเบถเปเบโเปเบโเบงเบดโเบเบตโเบเบฒเบโเบเบฝเบโเปเบเบปเปเบฒโ:
$object.Name
$object.'Name'
$value = 'Name'
$object.$value
เบเบตเปเปเบกเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเปเบฝเบ hashtable เบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบงเปเบเบฑเบเบงเบฑเบเบเบธ:
$hash = @{'Name'='Ivan Danko'; 'City'='Moscow'; 'Country'='Russia'}
$hash.GetType()
$object = [pscustomobject]$hash
$object.GetType()
เบซเบเบถเปเบเปเบเบเปเปเปเบชเบเบเบญเบเบงเบฑเบเบเบธเบเบญเบเบเบฐเปเบเบเบเบตเปเปเบกเปเบเบงเปเบฒเบเปเบฒเบชเบฑเปเบเบเบญเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบเบงเบเบกเบฑเบเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเป. เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบเปเบญเบเปเบเป [ordered] attribute:
$object = [PSCustomObject][ordered]@{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'
}
เบกเบตเบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบเปเบเบเบฒเบเบชเปเบฒเบเบงเบฑเบเบเบธ: เบเปเบฒเบเปเบเบดเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบดเปเบเปเบเบเปเบเป cmdlet
$object | Add-Member โMemberType NoteProperty โName Age โValue 33
$object | Get-Member
Add-Member cmdlet เบญเบฐโเบเบธโเบเบฒเบโเปเบซเปโเบเปเบฒเบโเปเบเบทเปเบญโเปเบเบตเปเบกโเบเบธเบโเบชเบปเบกโเบเบฑเบโเบเปเปโเบเบฝเบโเปเบเปโ, เปเบเปโเบเบฑเบโเบงเบดโเบเบตโเบเบฒเบโเบเบฑเบ $object เบเบตเปโเบชเปเบฒเบโเบเบถเปเบโเบเปเบญเบโเบซเบเปเบฒโเบเบตเปโเปเบเบโเบเบฒเบโเบเปเบฒโเปเบเป "-MemberType ScriptMethod" construct:
$ScriptBlock = {
# ะบะพะด
}
$object | Add-Member -Name "MyMethod" -MemberType ScriptMethod -Value $ScriptBlock
$object | Get-Member
เบเบฐเบฅเบธเบเบฒเบชเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเปเบเบปเบงเปเบ $ScriptBlock เบเบญเบเบเบฐเปเบเบ ScriptBlock เปเบเบทเปเบญเปเบเบฑเบเบฎเบฑเบเบชเบฒเบฅเบฐเบซเบฑเบเบชเปเบฒเบฅเบฑเบเบงเบดเบเบตเบเบฒเบเปเบซเบกเป.
เปเบเบทเปเบญเปเบญเบปเบฒเบเบธเบเบชเบปเบกเบเบฑเบเบญเบญเบ, เปเบเปเบงเบดเบเบตเบเบฒเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ:
$object.psobject.properties.remove('Name')
เบเบฒเบเบชเปเบฒเบเบซเปเบญเบเบฎเบฝเบเบเบญเบเบเปเบฒเบเปเบญเบ
PowerShell 5.0 เปเบเปเบเปเบฒเบชเบฐเปเบซเบเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเปเบฒเบเบปเบ
class MyClass
{
# ัะตะปะพ ะบะปะฐััะฐ
}
เบเบตเปเปเบกเปเบเบเบฐเปเบเบ .NET Core เบเบตเปเปเบเปเบเบดเบ, เบกเบตเปเบเบทเปเบญเปเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเบเบธเบเบชเบปเบกเบเบฑเบ, เบงเบดเบเบตเบเบฒเบ, เปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเบญเบทเปเบเปเบเบญเบเบกเบฑเบ. เปเบซเปเปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเบเบปเบเบเบฑเปเบเบฎเบฝเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบ:
class MyClass
{
[string]$Name
[string]$City
[string]$Country
}
เปเบเบทเปเบญเบชเปเบฒเบ object (class instance), เปเบเป cmdlet
$object = New-Object -TypeName MyClass
เบซเบผเบท
$object = [MyClass]::new()
เปเบซเปเบงเบดเปเบเบฒเบฐเปเบเบเบชเปเบฒเบเบเบญเบเบงเบฑเบเบเบธ:
$object | Get-Member
เบขเปเบฒเบฅเบทเบกเบเปเบฝเบงเบเบฑเบเบเบญเบเปเบเบ: เบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเบญเบตเบเปเบชเปเบเบทเปเบเบฐเปเบเบเปเบเบฑเบ string เบซเบผเบทเปเบเปเบเบปเบงเบซเบเบฑเบเบชเบทเบเบฐเปเบเบเบเบญเบ script เบซเบผเบทเปเบกเบเบนเบเบเบตเปเบซเปเบญเบเบฎเบฝเบเบเบทเบเบเปเบฒเบเบปเบ. เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเป, functions can return class instances (objects) which will be accessible outside the module or script.
เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบชเปเบฒเบเบงเบฑเบเบเบธ, เบเบทเปเบกเบเปเปเบกเบนเบเปเบชเปเปเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบกเบฑเบ:
$object.Name = 'Ivan Danko'
$object.City = 'Moscow'
$object.Country = 'Russia'
$object
เบเบทเปเปเบงเปเบงเปเบฒเบเบณเบญเบฐเบเบดเบเบฒเบเบเบญเบเบซเปเบญเบเบฎเบฝเบเบเปเปเบชเบฐเปเบเบฒเบฐเปเบเปเบเบฐเปเบเบเบเบฑเบเบชเบดเบเปเบเบปเปเบฒเบเบฑเปเบ, เปเบเปเบเบฑเบเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบงเบเบกเบฑเบ:
class Example
{
[string]$Name = 'John Doe'
}
เบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบซเปเบญเบเบฎเบฝเบเบเปเบฒเบเบเบทเบเบฑเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบเบฑเบเบเบฑเบ, เปเบเปเปเบเบเบเปเปเบกเบตเบเบฒเบเปเบเปเบเปเบฒเบเบฑเบเบเบฑเบ. เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบซเบเปเบฒเบเบตเป, เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบฐเบเบทเบเบชเบปเปเบเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเบเปเบฒเปเบเบฑเบ:
class MyClass
{
[string]$Name
[string]$City
[string]$Country
#ะพะฟะธัะฐะฝะธะต ะผะตัะพะดะฐ
Smile([bool]$param1)
{
If($param1) {
Write-Host ':)'
}
}
}
เบเบฝเบงเบเบตเปเบเบนเปเบเบฒเบเบซเบเปเบฒเบเบญเบเบซเปเบญเบเบฎเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบฎเบนเปเบงเบดเบเบตเบเบดเปเบก:
$object = [MyClass]::new()
$object.Smile($true)
เบงเบดเบเบตเบเบฒเบเบชเบฒเบกเบฒเบ overloaded; เบเบญเบเบเบฒเบเบเบฑเปเบ, เบซเปเบญเบเบฎเบฝเบเบกเบต
class MyClass2 : MyClass
{
#ัะตะปะพ ะฝะพะฒะพะณะพ ะบะปะฐััะฐ, ะฑะฐะทะพะฒัะผ ะดะปั ะบะพัะพัะพะณะพ ัะฒะปัะตััั MyClass
}
[MyClass2]::new().Smile($true)
เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบงเบฑเบเบเบธเปเบ PowerShell เปเบกเปเบเปเบเบทเบญเบเบซเบกเบปเบ. เปเบเบชเบดเปเบเบเบดเบกเบเปเปเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเบฒเบฐเปเบฅเบดเบเบกเบฑเบเบเปเบงเบเบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ: เบเบปเบเบเบงเบฒเบกเบเบตเบซเปเบฒเปเบเบเบธเบเบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบญเบธเบเบดเบเปเบซเปเบเบฑเบเบเบฑเบเบซเบฒเบเบญเบเบเบฒเบเบฅเบงเบก PowerShell เบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเปเบงเบเบฒเบเบชเปเบงเบเบเบตเบชเบฒเบก. เบเบฒเบเบชเปเบงเบเบเบตเปเบเปเบฒเบเบกเบฒเบชเบฒเบกเบฒเบเบเบปเบเปเบซเบฑเบเบขเบนเปเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบเบฅเบธเปเบกเบเบตเป.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com