ืืขืจ ืืขืงืกื ืจืขืืืืืึทื ืคืื ืงืึทืืึทื ืื ืืื ืื PowerShell ืืืขืจืืขืฆืขืจ ืคึฟืขื ืฆืืขืจ ืืื ืืืืื ืึท ืืืขื ืฆื ืืืืึทืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืึท ืคืึธืจืขื ืคึผืึทืกืืง ืคึฟืึทืจ ืืขื ืืฉ ืืขืจืงืื ื. ืคืืงืืืฉ ืืืืืืื
ืืื ืืึทืื ืคืื ืืื ืืึทืื:
ืึทืืืืฉืขืงืฅ ืืื PowerShell
ืืื ืืื ืื ืฆืืจืืงืจืืคื ืึทื ืึท ืืืืคืขืฅ ืืื ืึท ืืึทืืืื ื ืคืื ืืึทืื ืคืขืืืขืจ (ืคึผืจืึธืคึผืขืจืืืขืก, ืืขืฉืขืขื ืืฉื, ืืื"ื ื) ืืื ืืขืืืึธืืก ืคึฟืึทืจ ืคึผืจืึทืกืขืกืื ื ืืื (ืืืืืขื). ืืืึทื ืกืืจืืงืืืจ ืืื ืกืคึผืขืกืืคืืขื ืืืจื ืึท ืืืคึผ, ืืืึธืก ืืื ืืืืฉืึทืืืึทืื ืืืืืจื ืืืืฃ ืงืืืกื ืืขื ืืฆื ืืื ืื ืืื ืึทืคืืื. ื ืขืฅ ืงืึธืจ ืคึผืืึทืืคืึธืจืืข. ืขืก ืืื ืืืื ืืขืืืขื ืฆื ืึทืจืืขืื ืืื COM, CIM (WMI) ืืื ADSI ืึทืืืืฉืขืงืฅ. ืคึผืจืึธืคึผืขืจืืืขืก ืืื ืืขืืืึธืืก ืืขื ืขื ืืืจืฃ ืฆื ืืืจืืคืืจื ืคืึทืจืฉืืื ืึทืงืฉืึทื ื ืืืืฃ ืืึทืื; ืืื ืึทืืืฉืึทื, ืืื PowerShell, ืึทืืืืฉืขืงืฅ ืงืขื ืขื ืืืื ืืืจืืืขืืื ืืขื ืืื ืึทืจืืืืขื ืื ืฆื ืคืึทื ืืงืฉืึทื ื ืืื ืงืืืืขืฅ, ืึทืกืืื ื ืืืืขืจ ืืืึทืืืขืก ืฆื ืืืขืจืืึทืืึทืื, ืืื ืขืก ืืื ืืืื
ืืืืืื ื ืื ืกืืจืืงืืืจ ืคืื ืึทืืืืฉืขืงืฅ
ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืึธืื ืืื ืื ืืืืคื ืื Get-Process cmdlet, ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืืึทืงืืืขื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืคึผืจืึทืกืขืกืึทื ืคืืืกื ืืืง ืืื ืื ืกืืกืืขื:
ืขืก ืืืขื ืืืืึทืื ืขืืืขืืข ืคึฟืึธืจืืึทืืืจื ืืขืงืกื ืืึทืื ืืืึธืก ืืึธื ื ืื ืืขืื ืงืืื ืืขืืึทื ืง ืืืขืื ืื ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืื ืืืืืขืงืขืจื ืึทืืืืฉืขืงืฅ ืืื ืืืืขืจ ืืขืืืึธืืก. ืฆื ืคืืื-ืืื ืื ืจืขืืืืืึทื, ืืืจ ืืึทืจืคึฟื ืฆื ืืขืจื ืขื ืืื ืฆื ืื ืืขืจืืืื ืื ืกืืจืืงืืืจ ืคืื ืึทืืืืฉืขืงืฅ, ืืื ืื Get-Member cmdlet ืืืขื ืืขืืคึฟื ืืื ืื ืืื ืืขื:
Get-Process | Get-Member
ืืึธ ืืืจ ืฉืืื ืืขื ืื ืืืคึผ ืืื ืกืืจืืงืืืจ, ืืื ืืื ืื ืืืืฃ ืคืื ื ืึธื ืคึผืึทืจืึทืืขืืขืจืก ืืืจ ืงืขื ืขื, ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืืึทืื ืืืืื ืื ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืื ืืืืคืขืฅ ืึทืจืืึทื ืืขืจืขืื ื ืืื ืื ืึทืจืืึทื ืฉืจืืึทื:
Get-Process | Get-Member -MemberType Property
ืื ืืืืกื ืืืขื ืืืื ืืืจืฃ ืฆื ืกืึธืืืืข ืึทืืืื ืืกืืจืึทืืืึธื ืคึผืจืึธืืืขืืก ืื ืืขืจืึทืงืืืืืขืื ืึธืืขืจ ืฆื ืฉืจืืึทืื ืืืื ืืืืืขื ืข ืกืงืจืืคึผืก: ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืฆื ืืึทืงืืืขื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืึทื ืื ืคึผืจืึทืกืขืกืึทื ื ืืฆื ืื ืจืืกืคึผืึทื ืืื ื ืคืึทืจืืึธื.
ืคืืืืขืจืื ื ืึทืืืืฉืขืงืฅ
PowerShell ืึทืืึทืื ืึทืืืืฉืขืงืฅ ืืืึธืก ืืจืขืคื ืึท ืืืืขืจ ืฆืืฉืืึทื ื ืฆื ืืืื ืืืจืืืขืืื ืืขื ืืืจื ืึท ืจืขืจื - ืืื ืืข:
Where-Object { ะฑะปะพะบ ััะตะฝะฐัะธั }
ืืขืจ ืจืขืืืืืึทื ืคืื ืขืงืกืึทืงืืืืื ื ืื ืฉืจืืคื ืืืึธืง ืืื ืื ืงืืึทืืขืจื ืืืื ืืืื ืึท ืืืืืึทื ืืืขืจื. ืืืื ืขืก ืืื ืืืช ($ ืืืช), ืื ืืืืคืขืฅ ืืืึธืก ืืื ืึทืจืืึทื ืฉืจืืึทื ืฆื ืื Where-Object cmdlet ืืืขื ืืืื ืืืจืืืขืืื ืืขื ืฆืืืืืขื ืื ืจืขืจื - ืืื ืืข, ืึทื ืืขืจืฉ ($ ืคืึทืืฉ) ืขืก ืืืขื ืืืื ืืืืกืืขืืขืงื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืึธืื ืก ืืืืึทืื ืึท ืจืฉืืื ืคืื ืคืืจืฉืืืคื Windows Server ืืึทืืื ืื ืืก, ื.ื. ืืขื ืข ืืืขืืขื ืก ืกืืึทืืืก ืคืึทืจืืึธื ืืื ืืึทืฉืืืื ืฆื "ืกืืึทืคึผื":
Get-Service | Where-Object {$_.Status -eq "Stopped"}
ืืึธ ืืืืืขืจ ืืืจ ืืขื ืึท ืืขืงืกืืฉืึทืืืึทื ืคืึทืจืืจืขืืื ื, ืึธืืขืจ ืืืื ืืืจ ืืืืื ืฆื ืคึฟืึทืจืฉืืืื ืื ืืืคึผ ืืื ืื ืขืจืืขื ืกืืจืืงืืืจ ืคืื ืื ืึทืืืืฉืขืงืฅ ืืืึธืก ืคืึธืจื ืืืจื ืื ืจืขืจื - ืืื ืืข, ืืึธืก ืืื ื ืืฉื ืฉืืืขืจ:
Get-Service | Where-Object {$_.Status -eq "Stopped"} | Get-Member
ืกืึธืจืืื ื ืึทืืืืฉืขืงืฅ
ืืืขื ืจืขืจื - ืืื ืืข ืคึผืจืึทืกืขืกืื ื ืคืื ืึทืืืืฉืขืงืฅ, ืขืก ืืื ืึธืคื ืึท ื ืืื ืฆื ืกืึธืจื ืืื. ืื ืกืึธืจื-ืึธืืืืฉืขืงื ืงืืืืขื ืืื ืืืจืืืขืืื ืืขื ืื ื ืขืืขื ืคืื ืคึผืจืึธืคึผืขืจืืืขืก (ืกืึธืจืืื ื ืฉืืืกืืขื) ืืื ืงืขืจื ืึทืืืืฉืขืงืฅ ืึธืจืืขืจื ืืืื ืืืืขืจ ืืืึทืืืขืก. ืขืก ืืื ืืจืื ื ืฆื ืกืึธืจื ืื ืจืขืืืืืึทื ืคืื ืคืืืกื ืืืง ืคึผืจืึทืกืขืกืึทื ืืืื ืงืคึผื ืฆืืื ืคืืจืืจืืื (ืงืคึผื ืคืึทืจืืึธื):
Get-Process | Sort-Object โProperty cpu
ืื -ืคึผืจืึธืคึผืขืจืื ืคึผืึทืจืึทืืขืืขืจ ืงืขื ืขื ืืืื ืืืืขืจืืขืืืคึผืขืจื ืืืขื ืืืจ ืจืืคื ืื Sort-Object cmdlet; ืขืก ืืื ืืขื ืืฆื ืืืจื ืคืขืืืงืืึทื. ืคึฟืึทืจ ืคืึทืจืงืขืจื ืกืึธืจืืื ื, ื ืืฆื ืื -ืืขืกืกืขื ืืื ื ืคึผืึทืจืึทืืขืืขืจ:
Get-Process | Sort-Object cpu -Descending
ืกืขืืขืงืืื ื ืึทืืืืฉืขืงืฅ ืืื ืืืืขืจ ืืืืื
ืื ืกืขืืขืงื-ืึธืืืืฉืขืงื ืงืืืืขื ืึทืืึทืื ืืืจ ืฆื ืืืืกืงืืืึทืื ืึท ืกืคึผืขืฆืืคืืฉ ื ืืืขืจ ืคืื ืึทืืืืฉืขืงืฅ ืืื ืื ืึธื ืืืื ืึธืืขืจ ืกืืฃ ืคืื ืึท ืจืขืจื - ืืื ืืข ื ืืฆื ืื -ืขืจืฉืืขืจ ืึธืืขืจ -ืืึทืกื ืคึผืึทืจืึทืืขืืขืจืก. ืืื ืืืื ืืืืฃ, ืืืจ ืงืขื ืขื ืืืืกืงืืืึทืื ืืืื ืึทืืืืฉืขืงืฅ ืึธืืขืจ ืืืืขืจ ืคึผืจืึธืคึผืขืจืืืขืก, ืืื ืืืื ืฉืึทืคึฟื ื ืืึทืข ืึทืืืืฉืขืงืฅ ืืืืืจื ืืืืฃ ืืื. ืืื ืก ืงืืง ืืื ืื ืงืืืืขื ืึทืจืืขื ืืื ืคึผืฉืื ืืืืฉืคืืื.
ืื ืคืืืืขื ืืข ืืึทืคึฟืขื ืืืกืคึผืืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื 10 ืคึผืจืึทืกืขืกืึทื ืงืึทื ืกืืืื ื ืื ืืึทืงืกืืืื ืกืืืข ืคืื โโืืึทืจืึทื (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
ืืึทืืขืจืงืื ื ืึทื ืกืขืืขืงื-ืึธืืืืฉืขืงื ืงืขืจื ืึท ืืืื ืืืืคืขืฅ (-ืขืจืฉืืขืจ 1) ืืืึธืก ืืื ืืืืื ืฆืืืื ืคืื ืื ืคืขืืืขืจ ืืืึธืก ืืืจ ืกืคึผืขืกืืคืืขื: ืืืืขืจ ืืืึทืืืขืก ืืขื ืขื ืงืึทืคึผืื ืคึฟืื ืืขืจ ืขืจืฉืืขืจ ืืืืคืขืฅ ืืืจืืืขืืื ืืขื ืืื ืื ืจืขืจื - ืืื ืืข ืืืจื ืื ืงืืืืขื Get-Process. ืืืื ืขืจ ืคืื ืื ืืืขืื ืฆื ืฉืึทืคึฟื ืึทืืืืฉืขืงืฅ ืืื PowerShell ืกืงืจืืคึผืก ืืื ืืืืืจื ืืืืฃ ื ืืฆื Select-Object:
$obj = Get-Process | Select-Object ProcessName, Id -First 1
$obj.GetType()
ื ืืฆื ืกืขืืขืงื-ืึธืืืืฉืขืงื, ืืืจ ืงืขื ืขื ืืืืื ืงืึทืืคึผืืืืึทื ืคึผืจืึธืคึผืขืจืืืขืก ืฆื ืึทืืืืฉืขืงืฅ ืืืึธืก ืืึทืจืคึฟื ืฆื ืืืื ืจืขืคึผืจืืืขื ืืื ืืื
Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}}
ืืื ืก ืงืืง ืืื ืื ืกืืจืืงืืืจ ืคืื ืึทืืืืฉืขืงืฅ ืืืึธืก ืคืึธืจื ืืืจื ืื ืงืึทื ืืืืืขืจ:
Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}} | Get-Member
ืคึฟืึทืจ ืืขืืขืจ-ืึธืืืืฉืขืงื, ืืจืืคืข-ืึธืืืืฉืขืงื ืืื ืืึธืก-ืึธืืืืฉืขืงื
ืขืก ืืขื ืขื ืื ืืขืจืข ืงืืืืขืฅ ืคึฟืึทืจ ืืจืืขืื ืืื ืึทืืืืฉืขืงืฅ. ืืื ืึท ืืืึทืฉืคึผืื, ืืึธืื ืืื ืื ืจืขืื ืืืขืื ืื ืืจืื ืืขืจืกื ื ืืฆืืง:
ืคืึธืจืขืึทืืฉ-ืืืืคืขืฅ ืึทืืึทืื ืืืจ ืฆื ืืืืคื PowerShell ืงืึธื ืคึฟืึทืจ ืืขืืขืจ ืืืืคืขืฅ ืืื ืื ืจืขืจื - ืืื ืืข:
ForEach-Object { ะฑะปะพะบ ััะตะฝะฐัะธั }
ืืจืืคืข-ืึธืืืืฉืขืงื ืืจืืคึผืขืก ืึทืืืืฉืขืงืฅ ืืืื ืคืึทืจืืึธื ืืืขืจื:
Group-Object PropertyName
ืืืื ืืืจ ืืืืคื ืขืก ืืื ืื -NoElement ืคึผืึทืจืึทืืขืืขืจ, ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืื ื ืืืขืจ ืคืื ืขืืขืืขื ืื ืืื ืื ืืจืืคึผืขืก.
ืืึธืก-ืึธืืืืฉืขืงื ืึทืืืจืขืืึทืืขื ืคืึทืจืฉืืื ืงืืฆืขืจ ืคึผืึทืจืึทืืขืืขืจืก ืืืจื ืื ืืืึทืืืขืก ืคืื ืื ืืืืคืขืฅ ืคืขืื ืืื ืื ืจืขืจื - ืืื ืืข (ืงืึทืืงืืึทืืืืฅ ืื ืกืึทืืึทืงื, ืืื ืืืื ืืขืคืื ื ืื ืืื ืืืื, ืืึทืงืกืืืื ืึธืืขืจ ืืืจืืฉื ืืืืขื ืืืขืจื):
Measure-Object -Property PropertyName -Minimum -Maximum -Average -Sum
ืืืคึผืืงืึทืืื, ืื ืงืืืืขืฅ ืืืกืงืึทืกื ืืขื ืขื ืื ืืขืจืึทืงืืืืืื ืืขื ืืฆื ืืื ืืขื ืขื ืึธืคื ืืืฉืืคื ืืื ืกืงืจืืคึผืก.
ืงืจืืืืืื ื .ื ืขื ืืื ืงืึทื ืึทืืืืฉืขืงืฅ (ื ืื-ืึธืืืืฉืขืงื)
ืขืก ืืขื ืขื ืคืืืข ืืืืืืืืืจื ืงืึทืืคึผืึธืื ืึทื ืฅ ืืื. ื ืขืฅ ืงืึธืจ ืืื ืงืึทื ืื ืืขืจืคืืืกืื ืืืึธืก ืืขื ืขื ื ืืฆืืง ืคึฟืึทืจ ืกืืกืืขื ืึทืืืื ืืกืืจืึทืืึธืจืก. ื ืืฆื ืื System.Diagnostics.EventLog ืงืืึทืก, ืืืจ ืงืขื ืขื ืคืืจื ืกืืกืืขื ืืึธืืก ืืืืึทื ืคึฟืื Windows PowerShell. ืืึธืืืจ ืงืืงื ืืื ืึท ืืืืฉืคึผืื ืคืื ืงืจืืืืืื ื ืึท ืืืึทืฉืคึผืื ืคืื ืืขื ืงืืึทืก ื ืืฆื ืื New-Object cmdlet ืืื ืื -TypeName ืคึผืึทืจืึทืืขืืขืจ:
New-Object -TypeName System.Diagnostics.EventLog
ืืื ื ืืืจ ืืึธืื ื ืืฉื ืกืคึผืขืฆืืคืืฆืืจื ืึท ืกืคึผืขืฆืืคืืฉ ืืขืฉืขืขื ืืฉ ืงืืึธืฅ, ืื ืจืืืึทืืืื ื ืืืึทืฉืคึผืื ืคืื ืื ืงืืึทืก ืึผืืื ืงืืื ืืึทืื. ืฆื ืืืืฉื ืืขื, ืืืจ ืืึทืจืคึฟื ืฆื ืจืืคื ืึท ืกืคึผืขืฆืืขื ืงืึทื ืกืืจืึทืงืืขืจ ืืืคึฟื ืืขืฉืึทืก ืืืื ืฉืึทืคืื ื ื ืืฆื ืื -ArgumentList ืคึผืึทืจืึทืืขืืขืจ. ืืืื ืืืจ ืืืืื ืฆื ืึทืงืกืขืก ืื ืึทืคึผืืึทืงืืืฉืึทื ืงืืึธืฅ, ืืืจ ืืึธื ืคืึธืจื ืื ืฉืืจืืงื "ืึทืคึผืคึผืืืงืึทืืืึธื" ืืื ืึทื ืึทืจืืืืขื ื ืฆื ืื ืงืึธื ืกืืจืืงืืึธืจ:
$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog
ืืืืข ืืึธื ืึทื ืืืจ ืืขืจืืืขืืืขื ืื ืจืขืืืืืึทื ืคืื ืื ืืึทืคึฟืขื ืืื ืื $ ืึทืคึผืคึผืืึธื ืืืึทืืขืืืืืง. ืืึธืืฉ ืคึผืืืคึผืืืื ื ืืขื ืขื ืงืึทืืึทื ืื ืืขื ืืฆื ืืื ืื ืืขืจืึทืงืืืื ืืึธืืข, ืฉืจืืืื ืกืงืจืืคึผืก ืึธืคื ืจืืงืืืืืขืจื ืึท ืจืขืคึฟืขืจืขื ืฅ ืฆื ืึท ืืืืคืขืฅ. ืึทืืืืืืึธื ืึทืืื, ืื ืืึทืจืฅ. ื ืขืฅ ืงืึธืจ ืงืืืกื ืืขื ืขื ืงืึทื ืืืื ื ืืื ืื ืกืืกืืขื ื ืึทืืขืกืคึผืึทืกืข: ืคึผืึธืืืขืจืฉืขืื ืืืจื ืคืขืืืงืืึทื ืงืืงื ืคึฟืึทืจ ืกืคึผืขืกืืคืืขื ืืืืคึผืก ืืื ืขืก, ืึทืืื ืฉืจืืืื ืืืึทืื ืึธืกืืืงืก.ืขืืืขื ืืืึธื ืึทื ืฉืืึธื ืคืื System.Diagnostics.EventLog ืืื ืืึทื ืฅ ืจืืืืืง.
ืฆื ืึทืจืืขืื ืืื ืื ืงืืึธืฅ, ืืืจ ืงืขื ืขื ื ืืฆื ืื ืฆืื ืขืืขื ืืขืืืึธืืก:
$AppLog | Get-Member -MemberType Method
ืืื ืก ืืึธืื ืขืก ืืื ืงืืืจื ืืืจื ืื ืงืืึธืจ () ืืืคึฟื ืืืื ืขืก ืืขื ืขื ืึทืงืกืขืก ืจืขืื:
$AppLog.Clear()
ืื New-Object cmdlet ืืื ืืืื ืืขื ืืฆื ืฆื ืึทืจืืขืื ืืื COM ืงืึทืืคึผืึธืื ืึทื ืฅ. ืขืก ืืขื ืขื ืืึทื ืฅ ืึท ืคึผืืึทืฅ ืคืื ืืื - ืคึฟืื ืื ืืืืืจืขืจืื ืกืึทืคึผืืืื ืืื ืื Windows ืฉืจืืคื ืกืขืจืืืขืจ ืฆื ืึทืงืืืืืขืงืก ืึทืคึผืืึทืงืืืฉืึทื ื, ืึทืืึท ืืื Internet Explorer. ืฆื ืฉืึทืคึฟื ืึท COM ืืืืคืขืฅ, ืืืจ ืืึทืจืคึฟื ืฆื ืฉืืขืื ืืขื -ComObject ืคึผืึทืจืึทืืขืืขืจ ืืื ืื ืคึผืจืึธืืืจืื ืคึผืจืึธืืืจืื ืคืื ืื ืืขืืขืื ืงืืึทืก:
New-Object -ComObject WScript.Shell
New-Object -ComObject WScript.Network
New-Object -ComObject Scripting.Dictionary
New-Object -ComObject Scripting.FileSystemObject
ืฆื ืฉืึทืคึฟื ืืืื ืืืืืขื ืข ืึทืืืืฉืขืงืฅ ืืื ืึท ืึทืจืืืืจืึทืจืืฉ ืกืืจืืงืืืจ, ืื ื ืืฆื ืคืื New-Object ืืื ืฆื ืึทืจืืฉืึทืืง ืืื ืงืึทืืืขืจืกืึทื; ืืขื ืงืืืืขื ืืื ืืขื ืืฆื ืฆื ืึทืจืืขืื ืืื ืืืืืืืืืจื ืงืึทืืคึผืึธืื ืึทื ืฅ ืคืื ืืจืืืกื ืืืง ืฆื PowerShell. ืืื ืฆืืงืื ืคึฟื ืึทืจืืืงืืขื ืืขื ืึทืจืืืกืืขืื ืืืขื ืืืื ืืืกืงืึทืกื ืืื ืืขืจ ืืขืืึทื. ืืื ืึทืืืฉืึทื ืฆื .ื ืขื ืืื ืงืึทื ืึทืืืืฉืขืงืฅ, ืืืจ ืืืขืื ืืืื ืืืกืคืึธืจืฉื CIM (WMI) ืืื ADSI ืึทืืืืฉืขืงืฅ.
ืคืึทื ืกืืึทืืืง ืืขืืืึธืืก
ืขืืืขืืข. ื ืขืฅ ืงืึธืจ ืงืืืกื ืงืขื ืขื ื ืื ืืืื ืื ืกืืึทื ืืืืืืื, ืึทืจืืึทื ืืขืจืขืื ื System.Environment ืืื System.Math. ืืื ืืขื ืขื
[System.Environment] | Get-Member
ืฆื ืืขื ืืืืื ืกืืึทืืืง ืืืืืืืืขืจ, ืจืืคื Get-Member ืืื ืื -ืกืืึทืืืง ืคึผืึทืจืึทืืขืืขืจ (ืืึธื ืื ืืืืคืขืฅ ืืืคึผ):
[System.Environment] | Get-Member -Static
ืฆื ืึทืงืกืขืก ืกืืึทืืืง ืคึผืจืึธืคึผืขืจืืืขืก ืืื ืืขืืืึธืืก, ื ืืฆื ืฆืืืื ืงืึธื ืกืขืงืืืืืืข ืงืึธืืึธื ืก ืึทื ืฉืืึธื ืคืื ืึท ืคึผืขืจืืึธื ื ืึธื ืื ืืืืขืจืึทื:
[System.Environment]::OSVersion
ืึธืืขืจ
$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, ืื ืื ืืขืจ ืกืื ืืึทืงืก ืืื ืื ืืืฆื:
$object = [PSCustomObject]@{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'
}
ืืืจ ืงืขื ืขื ืึทืงืกืขืก ืื ืืึทืื ืืื ืืืื ืขืจ ืคืื ืื ืขืงืืืืืืึทืืขื ื ืืืขืื:
$object.Name
$object.'Name'
$value = 'Name'
$object.$value
ืืึธ ืก ืึท ืืืืฉืคึผืื ืคืื ืงืึทื ืืืขืจืืื ื ืึท ืืืืืกืืื ื ืืึทืฉืืึทืืืข ืฆื ืึท ืืืืคืขืฅ:
$hash = @{'Name'='Ivan Danko'; 'City'='Moscow'; 'Country'='Russia'}
$hash.GetType()
$object = [pscustomobject]$hash
$object.GetType()
ืืืื ืขืจ ืคืื ืื ืืืกืึทืืืืึทื ืืืืืฉืื ืคืื ืึทืืืืฉืขืงืฅ ืคืื ืืขื ืืืคึผ ืืื ืึทื ืื ืกืืจ ืคืื ืืืืขืจ ืคึผืจืึธืคึผืขืจืืืขืก ืงืขื ืขื ืืืืฉื. ืฆื ืืืกืืืืื ืืขื, ืืืจ ืืืื ื ืืฆื ืื [ืึธืจืืขืจื] ืึทืืจืืืืื:
$object = [PSCustomObject][ordered]@{Name = 'Ivan Danko';
City = 'Moscow';
Country = 'Russia'
}
ืขืก ืืขื ืขื ืื ืืขืจืข ืึธืคึผืฆืืขืก ืคึฟืึทืจ ืงืจืืืืืื ื ืึท ืืืืคืขืฅ: ืืืืื ืืืจ ืืขืงืืงื ืืืืฃ ื ืืฆื ืื ืงืืืืขื
$object | Add-Member โMemberType NoteProperty โName Age โValue 33
$object | Get-Member
ืืขืจ Add-Member cmdlet ืึทืืึทืื ืืืจ ืฆื ืืืืื ื ืื ืืืืื ืคึผืจืึธืคึผืขืจืืืขืก, ืึธืืขืจ ืืืื ืืขืืืึธืืก ืฆื ืึท ืคืจืืขืจ ืืืฉืืคื $ืึธืืืืฉืขืงื ืืืจื ื ืืฆื ืื "-MemberType ScriptMethod" ืืืืขื:
$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
{
# ัะตะปะพ ะบะปะฐััะฐ
}
ืืึธืก ืืื ืึทื ืืืช. ื ืขืฅ ืงืึธืจ ืืืคึผ, ืืื ืึท ืืืฃ ืืืึธืก ืืืฉืจืืืื ืืืึทื ืคึผืจืึธืคึผืขืจืืืขืก, ืืขืืืึธืืก ืืื ืื ืืขืจืข ืขืืขืืขื ืื. ืืื ืก ืงืืง ืืื ืึท ืืืืฉืคึผืื ืคืื ืืืคืืื ืื ื ืื ืกืืืคึผืืึทืกื ืงืืึทืก:
class MyClass
{
[string]$Name
[string]$City
[string]$Country
}
ืฆื ืฉืึทืคึฟื ืึท ืืืืคืขืฅ (ืงืืึทืก ืืืึทืฉืคึผืื), ื ืืฆื ืื ืงืืืืขื
$object = New-Object -TypeName MyClass
ืึธืืขืจ
$object = [MyClass]::new()
ืืึธืืืจ ืึทื ืึทืืืื ืื ืกืืจืืงืืืจ ืคืื ืื ืืืืคืขืฅ:
$object | Get-Member
ืื ืืืืกื ื ืืฉื ืคืึทืจืืขืกื ืืืขืื ืคืึทืจื ืขื: ืืืจ ืงืขื ืขื ื ืืฉื ืึธืคึผืฉืืงื ืฆื ืึท ืืืคึผ ื ืึธืืขื ืืื ืึท ืฉืืจืืงื ืึธืืขืจ ื ืืฆื ืึท ืืืืขืจืึทื ืืืคึผ ืึทืจืืืก ืื ืฉืจืืคื ืึธืืขืจ ืืึธืืืืข ืืื ืืืึธืก ืื ืงืืึทืก ืืื ืืืคืืื ื. ืืื ืืขื ืคืึทื, ืคืึทื ืืงืฉืึทื ื ืงืขื ืขื ืฆืืจืืงืงืืืขื ืงืืึทืก ืื ืกืืึทื ืกืื (ืึทืืืืฉืขืงืฅ) ืืืึธืก ืืืขื ืืืื ืฆืืืจืืืืขื ืึทืจืืืก ืื ืืึธืืืืข ืึธืืขืจ ืฉืจืืคื.
ื ืึธื ืงืจืืืืืื ื ืื ืืืืคืขืฅ, ืคึผืืึธืืืืจื ืืื ืืืึทื ืคึผืจืึธืคึผืขืจืืืขืก:
$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)
ืืขืืืึธืืก ืงืขื ืขื ืืืื ืึธืืืืขืจืืึธืืืื; ืืื ืืขืจืฆื, ืึท ืงืืึทืก ืืื
class MyClass2 : MyClass
{
#ัะตะปะพ ะฝะพะฒะพะณะพ ะบะปะฐััะฐ, ะฑะฐะทะพะฒัะผ ะดะปั ะบะพัะพัะพะณะพ ัะฒะปัะตััั MyClass
}
[MyClass2]::new().Smile($true)
ืืื ืืืขืจ ืืึทืฉืจืืึทืืื ื ืคืื ืืจืืขืื ืืื ืึทืืืืฉืขืงืฅ ืืื PowerShell ืืื ืงืืื ืืืืึธืกืืืื. ืืื ืื ืคืืืืขื ืืข ืืืืกืืืืขืก, ืืืจ ืืืขืื ืคึผืจืืืืจื ืฆื ืืืคึผืึทื ืขืก ืืื ืคึผืจืึทืงืืืฉ ืืืืฉืคืืื: ืืขืจ ืคืื ืคื ืึทืจืืืงื ืืื ืืขืจ ืกืขืจืืข ืืืขื ืืืื ืืขืืึทืงืืืืึทื ืฆื ืื ืืฉืื ืคืื ืื ืืึทืืจืืืืื ื PowerShell ืืื ืืจืื-ืคึผืึทืจืืื ืืืืืืืืืจื ืงืึทืืคึผืึธืื ืึทื ืฅ. ืคืึทืจืืึทื ืืขื ืืืื ืคึผืึทืจืฅ ืงืขื ืขื ืืืื ืืขืคึฟืื ืขื ืืื ืื ืืื ืงืก ืืื ืื.
ืืงืืจ: www.habr.com