рдкреЙрд╡рд░рд╢реЗрд▓ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рд╡рд┐рдВрдбреЛрдордзреАрд▓ рдЖрджреЗрд╢рд╛рдВрдЪреЗ рдордЬрдХреВрд░ рдЖрдЙрдЯрдкреБрдЯ рд╣рд╛ рдорд╛рдирд╡реА рдЖрдХрд▓рдирд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдорд╛рд░реНрдЧ рдЖрд╣реЗ. рдЦрд░рдВ рддрд░ рдмреБрдзрд╡рд╛рд░
рд▓реЗрдЦ:
рдкреЙрд╡рд░рд╢реЗрд▓рдордзреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕
рдЖрдкрдг рд▓рдХреНрд╖рд╛рдд рдареЗрд╡реВрдпрд╛ рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдореНрд╣рдгрдЬреЗ рдбреЗрдЯрд╛ рдлреАрд▓реНрдб (рдЧреБрдгрдзрд░реНрдо, рдЗрд╡реНрд╣реЗрдВрдЯ рдЗ.) рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреА (рдкрджреНрдзрддреА) рдпрд╛рдВрдЪрд╛ рд╕рдВрдЧреНрд░рд╣. рддреНрдпрд╛рдЪреА рд░рдЪрдирд╛ рдПрдХрд╛ рдкреНрд░рдХрд╛рд░рд╛рджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреА рд╕рд╣рд╕рд╛ рдпреБрдирд┐рдлрд╛рдЗрдб .NET рдХреЛрд░ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рддреЗ. COM, CIM (WMI) рдЖрдгрд┐ ADSI рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдЖрд╣реЗ. рдбреЗрдЯрд╛рд╡рд░ рд╡рд┐рд╡рд┐рдз рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдкрджреНрдзрддреА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд; рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдкреЙрд╡рд░рд╢реЗрд▓рдордзреНрдпреЗ, рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрдгрд┐ cmdlets рд▓рд╛ рд╡рд┐рддрд░реНрдХ рдореНрд╣рдгреВрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд╛рд╕ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рддреНрдпрд╛рдВрдЪреА рд╡реНрд╣реЕрд▓реНрдпреВ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд▓рд╛ рджрд┐рд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рддреЗрдереЗ рджреЗрдЦреАрд▓ рдЖрд╣реЗ
рд╡рд╕реНрддреВрдВрдЪреА рд░рдЪрдирд╛ рдкрд╛рд╣рдгреЗ
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЧреЗрдЯ-рдкреНрд░реЛрд╕реЗрд╕ cmdlet рдЪрд╛рд▓рд╡реВ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡реВ рджреЗрддреЗ:
рд╣реЗ рдХрд╛рд╣реА рд╕реНрд╡рд░реВрдкрд┐рдд рдордЬрдХреВрд░ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрд▓ рдЬреЗ рдкрд░рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╕реНрддреВрдВрдЪреЗ рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкрджреНрдзрддреАрдВрдмрджреНрджрд▓ рдХреЛрдгрддреАрд╣реА рдХрд▓реНрдкрдирд╛ рджреЗрдд рдирд╛рд╣реА. рдЖрдКрдЯрдкреБрдЯ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рд░рдЪрдирд╛ рдХрд╢реА рддрдкрд╛рд╕рд╛рдпрдЪреА рд╣реЗ рд╢рд┐рдХрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдЖрдгрд┐ Get-Member cmdlet рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдордзреНрдпреЗ рдорджрдд рдХрд░реЗрд▓:
Get-Process | Get-Member
рдпреЗрдереЗ рдЖрдкрдг рдЖрдзреАрдЪ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рд░рдЪрдирд╛ рдкрд╛рд╣рддреЛ рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреНрдпрд╛ рдорджрддреАрдиреЗ рдЖрдкрдг, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЗрдирдкреБрдЯрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреЗ рдЧреБрдгрдзрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддреЛ:
Get-Process | Get-Member -MemberType Property
рдкреНрд░рд╢рд╛рд╕рдирд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреАрдкрдгреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рдЖрдкрд▓реНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЬреНрдЮрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓: рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреНрд░рддрд┐рд╕рд╛рдж рдЧреБрдгрдзрд░реНрдо рд╡рд╛рдкрд░реВрди рд╣рдБрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рдгреНрдпрд╛рд╕рд╛рдареА.
рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╡рд╕реНрддреВ
рдкреЙрд╡рд░рд╢реЗрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдЯреА рдкреВрд░реНрдг рдХрд░рдгрд╛рд▒реНрдпрд╛ рд╡рд╕реНрддреВрдВрдирд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреВрди рдЬрд╛рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ:
Where-Object { ╨▒╨╗╨╛╨║ ╤Б╤Ж╨╡╨╜╨░╤А╨╕╤П }
рдХрдВрд╕рд╛рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреНрд▓реЙрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдмреБрд▓рд┐рдпрди рдореВрд▓реНрдп рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рддреЗ рдЦрд░реЗ рдЕрд╕рд▓реНрдпрд╛рд╕ ($true), рд╡реНрд╣реЗрдЕрд░-рдСрдмреНрдЬреЗрдХреНрдЯ cmdlet рдордзреНрдпреЗ рдЗрдирдкреБрдЯ рдХреЗрд▓реЗрд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдкрд╛рд╕ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓, рдЕрдиреНрдпрдерд╛ ($false) рддреЗ рд╣рдЯрд╡рд▓реЗ рдЬрд╛рдИрд▓. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдерд╛рдВрдмрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡реНрд╣рд░ рд╕реЗрд╡рд╛рдВрдЪреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ, рдЙрджрд╛. рдЬреНрдпрд╛рдВрдЪреА рд╕реНрдЯреЗрдЯрд╕ рдкреНрд░реЙрдкрд░реНрдЯреА "рд╕реНрдЯреЙрдкреНрдб" рд╡рд░ рд╕реЗрдЯ рдХреЗрд▓реА рдЖрд╣реЗ:
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
рд╕реЙрд░реНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ cmdlet рд▓рд╛ рдХреЙрд▓ рдХрд░рддрд╛рдирд╛ -рдкреНрд░реЙрдкрд░реНрдЯреА рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рдЧрд│рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ; рддреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рд░рд┐рд╡реНрд╣рд░реНрд╕ рд╕реЙрд░реНрдЯрд┐рдВрдЧрд╕рд╛рдареА, -рдбрд┐рд╕реЗрдВрдбрд┐рдВрдЧ рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рд╛рдкрд░рд╛:
Get-Process | Sort-Object cpu -Descending
рд╡рд╕реНрддреВ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рднрд╛рдЧ рдирд┐рд╡рдбрдгреЗ
Select-Object cmdlet рддреБрдореНрд╣рд╛рд▓рд╛ -First рдХрд┐рдВрд╡рд╛ -Last рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╡рд╛рдкрд░реВрди рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рд╕реБрд░реВрд╡рд╛рддреАрд▓рд╛ рдХрд┐рдВрд╡рд╛ рд╢реЗрд╡рдЯреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рддреНрдпрд╛рдЪреНрдпрд╛ рдорджрддреАрдиреЗ, рддреБрдореНрд╣реА рдПрдХрд▓ рд╡рд╕реНрддреВ рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдгрдзрд░реНрдо рдирд┐рд╡рдбреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд╡реАрди рд╡рд╕реНрддреВ рджреЗрдЦреАрд▓ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛. рд╕рд╛рдзреА рдЙрджрд╛рд╣рд░рдгреЗ рд╡рд╛рдкрд░реВрди cmdlet рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рдкрд╛рд╣реВ.
рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдб рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд RAM (WS рдкреНрд░реЙрдкрд░реНрдЯреА) рд╡рд╛рдкрд░рдгрд╛рд▒реНрдпрд╛ 10 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ:
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) рджреЗрддреЛ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлреАрд▓реНрдбрдкреИрдХреА рдлрдХреНрдд рджреЛрди рдЖрд╣реЗрдд: рддреНрдпрд╛рдВрдЪреА рдореВрд▓реНрдпреЗ рдЧреЗрдЯ-рдкреНрд░реЛрд╕реЗрд╕ 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 рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди, рддреАрди рд╕рд░реНрд╡рд╛рдд рдЙрдкрдпреБрдХреНрдд рдЧреЛрд╖реНрдЯреАрдВрдмрджреНрджрд▓ рдмреЛрд▓реВрдпрд╛:
ForEach- рдСрдмреНрдЬреЗрдХреНрдЯ рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯрд╕рд╛рдареА рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЛрдб рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ:
ForEach-Object { ╨▒╨╗╨╛╨║ ╤Б╤Ж╨╡╨╜╨░╤А╨╕╤П }
рдЧрдЯ-рд╡рд╕реНрддреВ рдЧреБрдгрдзрд░реНрдо рдореВрд▓реНрдпрд╛рдиреБрд╕рд╛рд░ рд╡рд╕реНрддреВрдВрдЪреЗ рдЧрдЯ рдХрд░рд╛:
Group-Object PropertyName
рддреБрдореНрд╣реА рддреЗ -NoElement рдкреЕрд░рд╛рдореАрдЯрд░рдиреЗ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдЧрдЯрд╛рдВрдордзреАрд▓ рдШрдЯрдХрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╢реЛрдзреВ рд╢рдХрддрд╛.
рдорд╛рдкрди-рд╡рд╕реНрддреВ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдлреАрд▓реНрдб рдореВрд▓реНрдпрд╛рдВрдиреБрд╕рд╛рд░ рд╡рд┐рд╡рд┐рдз рд╕рд╛рд░рд╛рдВрд╢ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ (рдмреЗрд░рдЬреЗрдЪреА рдЧрдгрдирд╛ рдХрд░рддреЗ рдЖрдгрд┐ рдХрд┐рдорд╛рди, рдХрдорд╛рд▓ рдХрд┐рдВрд╡рд╛ рд╕рд░рд╛рд╕рд░реА рдореВрд▓реНрдп рджреЗрдЦреАрд▓ рд╢реЛрдзрддреЗ):
Measure-Object -Property PropertyName -Minimum -Maximum -Average -Sum
рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реЗ cmdlets рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреАрдкрдгреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
.NET рдЖрдгрд┐ COM рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреЗ (рдирд╡реАрди-рдСрдмреНрдЬреЗрдХреНрдЯ)
.NET Core рдЖрдгрд┐ COM рдЗрдВрдЯрд░рдлреЗрд╕рд╕рд╣ рдЕрдиреЗрдХ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдШрдЯрдХ рдЖрд╣реЗрдд рдЬреЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХрд╛рдВрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗрдд. System.Diagnostics.EventLog рд╡рд░реНрдЧ рд╡рд╛рдкрд░реВрди, рддреБрдореНрд╣реА Windows PowerShell рд╡рд░реВрди рдереЗрдЯ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛. -TypeName рдкреЕрд░рд╛рдореАрдЯрд░рд╕рд╣ New-Object cmdlet рд╡рд╛рдкрд░реВрди рдпрд╛ рд╡рд░реНрдЧрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ:
New-Object -TypeName System.Diagnostics.EventLog
рдЖрдореНрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реЙрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ, рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛ рдирд╛рд╣реА. рд╣реЗ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ -ArgumentList рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рд╛рдкрд░реВрди рддреНрдпрд╛рдЪреНрдпрд╛ рдирд┐рд░реНрдорд┐рддреА рджрд░рдореНрдпрд╛рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЬрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓, рддрд░ рдЖрдореНрд╣реА "рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди" рд╣реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛ рд╡рд┐рддрд░реНрдХ рдореНрд╣рдгреВрди рдкрд╛рд╕ рдХреЗрд▓реА рдкрд╛рд╣рд┐рдЬреЗ:
$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog
рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдЖрдореНрд╣реА рдХрдорд╛рдВрдбрдЪреЗ рдЖрдЙрдЯрдкреБрдЯ $AppLog рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЬрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдореЛрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдд рдЕрд╕рд▓реА рддрд░реА, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХрджрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдЪрд╛ рд╕рдВрджрд░реНрдн рд░рд╛рдЦрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдХреЛрд░ .NET рдХреЛрдЕрд░ рдХреНрд▓рд╛рд╕реЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд: рдкреЙрд╡рд░рд╢реЗрд▓ рдмрд╛рдп рдбрд┐рдлреЙрд▓реНрдЯ рддреНрдпрд╛рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рд╢реЛрдзрддреЗ, рдореНрд╣рдгреВрди 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
рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдВрд░рдЪрдиреЗрд╕рд╣ рддреБрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдирд╡реАрди-рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд░рдгреЗ рдЦреВрдк рдкреБрд░рд╛рддрди рдЖрдгрд┐ рдЕрд╡рдЬрдб рджрд┐рд╕рддреЗ; рд╣реЗ 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 рдЯрд╛рдЗрдк рдХрд░рд╛
рдкреЙрд╡рд░рд╢реЗрд▓рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрд╕рдВрдЦреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдкреИрдХреА, PSCustomObject рдЪрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ, рдЬреЗ рдПрдХрд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдВрд░рдЪрдиреЗрд╕рд╣ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рдиреНрдпреВ-рдСрдмреНрдЬреЗрдХреНрдЯ 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'
}
рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрддрд░ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд: рд╡рд░ рдЖрдореНрд╣реА 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 рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡рд╛рдкрд░рд▓реЗ.
рдЧреБрдгрдзрд░реНрдо рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА, рд╕рдВрдмрдВрдзрд┐рдд рдкрджреНрдзрдд рд╡рд╛рдкрд░рд╛:
$object.psobject.properties.remove('Name')
рдЖрдкрд▓реЗ рд╕реНрд╡рддрдГрдЪреЗ рд╡рд░реНрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ
рдкреЙрд╡рд░рд╢реЗрд▓ 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)
рдкреЙрд╡рд░рд╢реЗрд▓ рдордзреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреЗ рдЖрдордЪреЗ рд╡рд░реНрдгрди рдлрд╛рд░рдЪ рдХрдореА рдЖрд╣реЗ. рдкреБрдвреАрд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдордзреНрдпреЗ, рдЖрдореНрд╣реА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ рддреЗ рдЕрдзрд┐рдХ рд╕рдЦреЛрд▓ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ: рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рдкрд╛рдЪрд╡рд╛ рд▓реЗрдЦ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдШрдЯрдХрд╛рдВрд╕рд╣ рдкреЙрд╡рд░рд╢реЗрд▓ рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдореБрджреНрджреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдкрд┐рдд рдЕрд╕реЗрд▓. рдорд╛рдЧреАрд▓ рднрд╛рдЧ рдЦрд╛рд▓реАрд▓ рд▓рд┐рдВрдХрд╡рд░ рдорд┐рд│реВ рд╢рдХрддрд╛рдд.
рд╕реНрддреНрд░реЛрдд: www.habr.com