PowerShell рджреЛрднрд╛рд╖реЗ рд╡рд┐рдиреНрдбреЛрдорд╛ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рдкрд╛рда рдЖрдЙрдЯрдкреБрдЯ рдорд╛рдирд╡ рдзрд╛рд░рдгрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдлрд╛рд░рдордорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рдорд╛рддреНрд░ рд╣реЛред рд╡рд╛рд╕реНрддрд╡рдорд╛ рдмреБрдзрдмрд╛рд░
рд╕рд╛рдордЧреНрд░реА рддрд╛рд▓рд┐рдХрд╛:
PowerShell рдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ
рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╛рдж рдЧрд░реМрдВ рдХрд┐ рд╡рд╕реНрддреБ рднрдиреЗрдХреЛ рдбрд╛рдЯрд╛ рдлрд┐рд▓реНрдбрд╣рд░реВ (рдЧреБрдгрд╣рд░реВ, рдШрдЯрдирд╛рд╣рд░реВ, рдЖрджрд┐) рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рд╡рд┐рдзрд┐рд╣рд░реВ (рд╡рд┐рдзрд┐рд╣рд░реВ) рдХреЛ рд╕рдВрдЧреНрд░рд╣ рд╣реЛред рдпрд╕рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдПрдХреАрдХреГрдд .NET рдХреЛрд░ рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдХрдХреНрд╖рд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╣реБрдиреНрдЫред COM, CIM (WMI) рд░ ADSI рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкрдирд┐ рд╕рдореНрднрд╡ рдЫред рдбрд╛рдЯрд╛рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЧреБрдгрд╣рд░реВ рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫрдиреН; рдердк рд░реВрдкрдорд╛, PowerShell рдорд╛, рд╡рд╕реНрддреБрд╣рд░реВ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░ cmdlets рд▓рд╛рдИ рдЖрд░реНрдЧреБрдореЗрдиреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд╕ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдорд╛рдирд╣рд░реВ рдЪрд░рд╣рд░реВрдорд╛ рддреЛрдХреНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рддреНрдпрд╣рд╛рдБ рдкрдирд┐ рдЫред
рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╣реЗрд░реНрджреИ
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Get-Process cmdlet рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:
рдпрд╕рд▓реЗ рдХреЗрд╣реА рдврд╛рдБрдЪрд╛ рдЧрд░рд┐рдПрдХреЛ рдкрд╛рда рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫ рдЬрд╕рд▓реЗ рдлрд┐рд░реНрддрд╛ рдЧрд░рд┐рдПрдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдЧреБрдгрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрдиреИ рд╡рд┐рдЪрд╛рд░ рджрд┐рдБрджреИрдиред рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛ рдХрд╕рд░реА рдЬрд╛рдБрдЪреНрдиреЗ рднрдиреЗрд░ рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ Get-Member cmdlet рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╕рдорд╛ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫ:
Get-Process | Get-Member
рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдкреНрд░рдХрд╛рд░ рд░ рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреНрдЫреМрдВ, рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорджреНрджрддрд▓реЗ рд╣рд╛рдореА, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЗрдирдкреБрдЯрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рд╡рд╕реНрддреБрдХреЛ рдЧреБрдгрд╣рд░реВ рдорд╛рддреНрд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:
Get-Process | Get-Member -MemberType Property
рдпреЛ рдЬреНрдЮрд╛рди рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдкреНрд░рд╢рд╛рд╕рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╡рд╛ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рд▓рд┐рдкрд┐рд╣рд░реВ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ: рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд░реЗрд╕реНрдкреЛрдиреНрдбрд┐рдЩ рдЧреБрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЭреБрдгреНрдбрд┐рдПрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред
рд╡рд╕реНрддреБрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ
PowerShell рд▓реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢рд░реНрдд рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрд▓рд╛рдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдорд╛рд░реНрдлрдд рдкрд╛рд░рд┐рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:
Where-Object { ╨▒╨╗╨╛╨║ ╤Б╤Ж╨╡╨╜╨░╤А╨╕╤П }
рдХреЛрд╖реНрдардХ рднрд┐рддреНрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреНрд▓рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдкрд░рд┐рдгрд╛рдо рдмреБрд▓рд┐рдпрди рдорд╛рди рд╣реБрдиреБрдкрд░реНрдЫред рдпрджрд┐ рдпреЛ рд╕рддреНрдп ($true) рд╣реЛ рднрдиреЗ, рдЬрд╣рд╛рдБ-рд╡рд╕реНрддреБ cmdlet рдорд╛ рдЗрдирдкреБрдЯ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рд╕рд╛рдердорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдиреЗрдЫ, рдЕрдиреНрдпрдерд╛ ($false) рдпрд╕рд▓рд╛рдИ рдореЗрдЯрд╛рдЗрдиреЗрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд░реЛрдХрд┐рдПрдХреЛ рд╡рд┐рдиреНрдбреЛрдЬ рд╕рд░реНрднрд░ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реМрдВ, рдЕрд░реНрдерд╛рддреНред рдЬрд╕рдХреЛ рд╕реНрдерд┐рддрд┐ рдЧреБрдг "рд░реЛрдХрд┐рдПрдХреЛ" рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ:
Get-Service | Where-Object {$_.Status -eq "Stopped"}
рдпрд╣рд╛рдБ рдлреЗрд░рд┐ рд╣рд╛рдореА рдкрд╛рдареНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рджреЗрдЦреНрдЫреМрдВ, рддрд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдмрд╛рдЯ рдЧреБрдЬрд░рдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдкреНрд░рдХрд╛рд░ рд░ рдЖрдиреНрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдмреБрдЭреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдпреЛ рдЧрд╛рд╣реНрд░реЛ рдЫреИрди:
Get-Service | Where-Object {$_.Status -eq "Stopped"} | Get-Member
рд╡рд╕реНрддреБрд╣рд░реВ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрджреИ
рдЬрдм рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкреНрд░рд╢реЛрдзрди, рддреНрдпрд╣рд╛рдБ рдЕрдХреНрд╕рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред Sort-Object cmdlet рд▓реЗ рдЧреБрдгрд╣рд░реВ (рдХреНрд░рдордмрджреНрдз рдЧрд░реНрдиреЗ рдХреБрдЮреНрдЬреАрд╣рд░реВ) рдХреЛ рдирд╛рдорд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рд╡рд╕реНрддреБрд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдБрдЫред CPU рд╕рдордп (cpu рдЧреБрдг) рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫ:
Get-Process | Sort-Object тАУProperty cpu
Sort-Object cmdlet рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрджрд╛ -Property рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдореЗрдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ; рдпреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдЙрд▓реНрдЯреЛ рдХреНрд░рдордмрджреНрдзрдХреЛ рд▓рд╛рдЧрд┐, -Descending рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
Get-Process | Sort-Object cpu -Descending
рд╡рд╕реНрддреБрд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рднрд╛рдЧрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ
рдЪрдпрди-рд╡рд╕реНрддреБ cmdlet рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рд╕реБрд░реБ рд╡рд╛ рдЕрдиреНрддреНрдпрдорд╛ -First рд╡рд╛ -Last рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдЪрдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорджреНрджрддрд▓реЗ, рддрдкрд╛рдЗрдБ рдПрдХрд▓ рд╡рд╕реНрддреБрд╣рд░реВ рд╡рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЧреБрдгрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдирдпрд╛рдБ рд╡рд╕реНрддреБрд╣рд░реВ рдкрдирд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ cmdlet рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рд╣реЗрд░реМрдВред
рдирд┐рдореНрди рдЖрджреЗрд╢рд▓реЗ 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
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдЪрдпрди-рд╡рд╕реНрддреБрд▓реЗ рдПрдХрд▓ рд╡рд╕реНрддреБ (-рдкрд╣рд┐рд▓реЛ 1) рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдЫ рдЬрд╕рдорд╛ рд╣рд╛рдореАрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдХрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдордзреНрдпреЗ рджреБрдИ рдорд╛рддреНрд░ рдЫрдиреН: рддрд┐рдиреАрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВ Get-Process cmdlet рджреНрд╡рд╛рд░рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдкрд╣рд┐рд▓реЛ рд╡рд╕реНрддреБрдмрд╛рдЯ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред PowerShell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЪрдпрди-рд╡рд╕реНрддреБ рдкреНрд░рдпреЛрдЧрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ:
$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
рдкреНрд░рддреНрдпреЗрдХ-рд╡рд╕реНрддреБ, рд╕рдореВрд╣-рд╡рд╕реНрддреБ рд░ рдорд╛рдкрди-рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐
рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреНрдп cmdlets рдЫрдиреНред рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛, рддреАрдирд╡рдЯрд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреЛрдЧреА рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реМрдВ:
рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЛ рд▓рд╛рдЧреА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐ PowerShell рдХреЛрдб рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:
ForEach-Object { ╨▒╨╗╨╛╨║ ╤Б╤Ж╨╡╨╜╨░╤А╨╕╤П }
рд╕рдореВрд╣-рд╡рд╕реНрддреБ рдЧреБрдг рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рдореВрд╣рдмрджреНрдз рдЧрд░реНрдиреБрд╣реЛрд╕реН:
Group-Object PropertyName
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ -NoElement рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╕рдБрдЧ рдЪрд▓рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рд╕рдореВрд╣рд╣рд░реВрдорд╛ рддрддреНрд╡рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдорд╛рдкрди-рд╡рд╕реНрддреБ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рд╡рд╕реНрддреБ рдХреНрд╖реЗрддреНрд░ рдорд╛рдирд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рд░рд╛рдВрд╢ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдПрдХрддреНрд░рд┐рдд рдЧрд░реНрджрдЫ (рдпреЛрдЧ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫ, рд░ рдиреНрдпреВрдирддрдо, рдЕрдзрд┐рдХрддрдо рд╡рд╛ рдФрд╕рдд рдорд╛рди рдкрдирд┐ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫ):
Measure-Object -Property PropertyName -Minimum -Maximum -Average -Sum
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдХрд╛ cmdlets рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ рдкреНрд░рд╛рдпрдГ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫред
.NET рд░ COM рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ (рдирдпрд╛рдБ-рд╡рд╕реНрддреБ)
рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдЫрдиреН .NET рдХреЛрд░ рд░ COM рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдЬреБрди рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рдЫрдиреНред System.Diagnostics.EventLog рдХреНрд▓рд╛рд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдЗрдБ рд╕рд┐рдзреИ Windows PowerShell рдмрд╛рдЯ рдкреНрд░рдгрд╛рд▓реА рд▓рдЧрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред -TypeName рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд╕рд╛рде рдирдпрд╛рдБ-рд╡рд╕реНрддреБ cmdlet рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рд╡рд░реНрдЧрдХреЛ рдЙрджрд╛рд╣рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ:
New-Object -TypeName System.Diagnostics.EventLog
рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рд╡рд┐рд╢реЗрд╖ рдШрдЯрдирд╛ рд▓рдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирдЧрд░реЗрдХреЛ рд╣реБрдирд╛рд▓реЗ, рдХрдХреНрд╖рд╛рдХреЛ рдирддрд┐рдЬрд╛рдорд╛ рдХреБрдиреИ рдбрд╛рдЯрд╛ рдЫреИрдиред рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ -ArgumentList рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рдХреЛ рдирд┐рд░реНрдорд╛рдгрдХреЛ рдХреНрд░рдордорд╛ рд╡рд┐рд╢реЗрд╖ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд┐рдзрд┐рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрджрд┐ рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рдЧ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛рдИ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рд╕реНрдЯреНрд░рд┐рдЩ рдкрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫ:
$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ $AppLog рдЪрд░рдорд╛ рдЖрджреЗрд╢рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдмрдЪрдд рдЧрд░реНрдпреМрдВред рдпрджреНрдпрдкрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдбрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд▓реЗрдЦрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкреНрд░рд╛рдпрдГ рд╡рд╕реНрддреБрдХреЛ рд╕рдиреНрджрд░реНрднрд▓рд╛рдИ рдХрд╛рдпрдо рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдердк рд░реВрдкрдорд╛, рдХреЛрд░ .NET рдХреЛрд░ рдХрдХреНрд╖рд╛рд╣рд░реВ рдкреНрд░рдгрд╛рд▓реА рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН: PowerShell рд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдпрд╕рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЦреЛрдЬреНрдЫ, рддреНрдпрд╕реИрд▓реЗ System.Diagnostics.EventLog рдХреЛ рд╕рдЯреНрдЯрд╛ Diagnostics.EventLog рд▓реЗрдЦреНрдиреБ рдПрдХрджрдо рд╕рд╣реА рдЫред
рд▓рдЧ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди, рддрдкрд╛рдИрдВ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
$AppLog | Get-Member -MemberType Method
рдпрджрд┐ рдкрд╣реБрдБрдЪ рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВ рдЫрдиреН рднрдиреЗ рдпрд╕рд▓рд╛рдИ Clear() рд╡рд┐рдзрд┐рджреНрд╡рд╛рд░рд╛ рдЦрд╛рд▓реА рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреМрдВ:
$AppLog.Clear()
рдирдпрд╛рдБ-рд╡рд╕реНрддреБ cmdlet рдкрдирд┐ COM рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддреНрдпрд╣рд╛рдБ рддреА рдордзреНрдпреЗ рдзреЗрд░реИ рдЫрдиреН - рд╡рд┐рдиреНрдбреЛрдЬ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрднрд░рд╕рдБрдЧ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдмрд╛рдЯ ActiveX рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ, рдЬрд╕реНрддреИ рдЗрдиреНрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ред COM рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдЗрдЪреНрдЫрд┐рдд рд╡рд░реНрдЧрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ ProgId рд╕рдБрдЧ -ComObject рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
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 рд╡рд╕реНрддреБрд╣рд░реВ рдкрдирд┐ рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрдиреЗрдЫреМрдВред
рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдХрд▓ рдЧрд░реНрджреИ
System.Environment рд░ System.Math рд╕рд╣рд┐рдд рдХреЗрд╣реА .NET рдХреЛрд░ рдХрдХреНрд╖рд╛рд╣рд░реВ рдЗрдиреНрд╕реНрдЯреНрдпрд╛рдиреНрдЯрд┐рдПрдЯ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред рдЙрдиреАрд╣рд░реБ
[System.Environment] | 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()
рдпрд╕ рдкреНрд░рдХрд╛рд░рдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдПрдХ рдмреЗрдлрд╛рдЗрджрд╛ рднрдиреЗрдХреЛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЧреБрдгрд╣рд░реВрдХреЛ рдХреНрд░рдо рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрди рд╕рдХреНрдЫред рдпрд╕рдмрд╛рдЯ рдмрдЪреНрди, рддрдкрд╛рдИрдВрд▓реЗ [ordered] рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ:
$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 рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ "-MemberType ScriptMethod" рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ $object рдорд╛ рдЧреБрдгрд╣рд░реВ рдорд╛рддреНрд░ рд╣реЛрдЗрди рддрд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдкрдирд┐ рдердкреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:
$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 рдХреЛрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛ, рдпрд╕рдХреЛ рдЧреБрдгрд╣рд░реВ, рд╡рд┐рдзрд┐рд╣рд░реВ, рд░ рдЕрдиреНрдп рддрддреНрд╡рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рд╢рд░реАрд░рдХреЛ рд╕рд╛рдеред рд╕рд░рд▓ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ:
class MyClass
{
[string]$Name
[string]$City
[string]$Country
}
рд╡рд╕реНрддреБ (рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, cmdlet рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН
$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