Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

PowerShell рджреЛрднрд╛рд╖реЗ рд╡рд┐рдиреНрдбреЛрдорд╛ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рдкрд╛рда рдЖрдЙрдЯрдкреБрдЯ рдорд╛рдирд╡ рдзрд╛рд░рдгрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдлрд╛рд░рдордорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рдорд╛рддреНрд░ рд╣реЛред рд╡рд╛рд╕реНрддрд╡рдорд╛ рдмреБрдзрдмрд╛рд░ рдЙрдиреНрдореБрдЦ рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди: cmdlets рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЗрдирдкреБрдЯ рд░ рдирд┐рдХрд╛рд╕рдорд╛ рдлрд░реНрдХрд┐рдпреЛ, рд░ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рдЙрдкрд▓рдмреНрдз рдЪрд░ рдкреНрд░рдХрд╛рд░рд╣рд░реВ .NET рдХрдХреНрд╖рд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреНред рд╢реГрдЩреНрдЦрд▓рд╛рдХреЛ рдЪреМрдереЛ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдердк рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ рдЕрдзреНрдпрдпрди рдЧрд░реНрдиреЗрдЫреМрдВред

рд╕рд╛рдордЧреНрд░реА рддрд╛рд▓рд┐рдХрд╛:

PowerShell рдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ
рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╣реЗрд░реНрджреИ
рд╡рд╕реНрддреБрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ
рд╡рд╕реНрддреБрд╣рд░реВ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрджреИ
рд╡рд╕реНрддреБрд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рднрд╛рдЧрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ
рдкреНрд░рддреНрдпреЗрдХ-рд╡рд╕реНрддреБ, рд╕рдореВрд╣-рд╡рд╕реНрддреБ рд░ рдорд╛рдкрди-рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐
.NET рд░ COM рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ (рдирдпрд╛рдБ-рд╡рд╕реНрддреБ)
рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдХрд▓ рдЧрд░реНрджреИ
PSCustomObject рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН
рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

PowerShell рдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ

рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╛рдж рдЧрд░реМрдВ рдХрд┐ рд╡рд╕реНрддреБ рднрдиреЗрдХреЛ рдбрд╛рдЯрд╛ рдлрд┐рд▓реНрдбрд╣рд░реВ (рдЧреБрдгрд╣рд░реВ, рдШрдЯрдирд╛рд╣рд░реВ, рдЖрджрд┐) рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рд╡рд┐рдзрд┐рд╣рд░реВ (рд╡рд┐рдзрд┐рд╣рд░реВ) рдХреЛ рд╕рдВрдЧреНрд░рд╣ рд╣реЛред рдпрд╕рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдПрдХреАрдХреГрдд .NET рдХреЛрд░ рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдХрдХреНрд╖рд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╣реБрдиреНрдЫред COM, CIM (WMI) рд░ ADSI рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкрдирд┐ рд╕рдореНрднрд╡ рдЫред рдбрд╛рдЯрд╛рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЧреБрдгрд╣рд░реВ рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫрдиреН; рдердк рд░реВрдкрдорд╛, PowerShell рдорд╛, рд╡рд╕реНрддреБрд╣рд░реВ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░ cmdlets рд▓рд╛рдИ рдЖрд░реНрдЧреБрдореЗрдиреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд╕ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдорд╛рдирд╣рд░реВ рдЪрд░рд╣рд░реВрдорд╛ рддреЛрдХреНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рддреНрдпрд╣рд╛рдБ рдкрдирд┐ рдЫред рдЖрджреЗрд╢ рд╕рдВрд░рдЪрдирд╛ рд╕рдВрдпрдиреНрддреНрд░ (рдХрдиреНрд╡реЗрдпрд░ рд╡рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди)ред рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдгреНрдбрд▓реЗ рдпрд╕рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдЕрд░реНрдХреЛрд▓рд╛рдИ рдкрд╛рд▓реИрдкрд╛рд▓реЛ, рд╡рд╕реНрддреБрджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБ рдкрдард╛рдЙрдБрдЫред рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ cmdlets рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡рд╛ рдЖрдлреНрдиреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рд░рд╣реЗрдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рд╡рд┐рднрд┐рдиреНрди рд╣реЗрд░рдлреЗрд░рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди: рдлрд┐рд▓реНрдЯрд░рд┐рдЩ, рдХреНрд░рдордмрджреНрдз, рд╕рдореВрд╣рдмрджреНрдз, рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкрдирд┐ред рдпрд╕ рдлрд╛рд░рдордорд╛ рдбрд╛рдЯрд╛ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯ рдЧрд░реНрджрд╛ рдЧрдореНрднреАрд░ рдлрд╛рдЗрджрд╛ рдЫ: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдЯреЛрд▓реАрд▓реЗ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдо (рдкрд╛рда) рдкрд╛рд░реНрд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рдЙрдкрдпреБрдХреНрдд рдЧреБрдгрд╣рд░реВ рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдХрд▓ рдЧрд░реЗрд░ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рдЬрд┐рд▓реИ рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдиреНрдЫред

рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╣реЗрд░реНрджреИ

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Get-Process cmdlet рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдпрд╕рд▓реЗ рдХреЗрд╣реА рдврд╛рдБрдЪрд╛ рдЧрд░рд┐рдПрдХреЛ рдкрд╛рда рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫ рдЬрд╕рд▓реЗ рдлрд┐рд░реНрддрд╛ рдЧрд░рд┐рдПрдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдЧреБрдгрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрдиреИ рд╡рд┐рдЪрд╛рд░ рджрд┐рдБрджреИрдиред рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛ рдХрд╕рд░реА рдЬрд╛рдБрдЪреНрдиреЗ рднрдиреЗрд░ рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ Get-Member cmdlet рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╕рдорд╛ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫ:

Get-Process | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдкреНрд░рдХрд╛рд░ рд░ рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреНрдЫреМрдВ, рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорджреНрджрддрд▓реЗ рд╣рд╛рдореА, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЗрдирдкреБрдЯрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рд╡рд╕реНрддреБрдХреЛ рдЧреБрдгрд╣рд░реВ рдорд╛рддреНрд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:

Get-Process | Get-Member -MemberType Property

рдпреЛ рдЬреНрдЮрд╛рди рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдкреНрд░рд╢рд╛рд╕рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╡рд╛ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рд▓рд┐рдкрд┐рд╣рд░реВ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ: рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд░реЗрд╕реНрдкреЛрдиреНрдбрд┐рдЩ рдЧреБрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЭреБрдгреНрдбрд┐рдПрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред

рд╡рд╕реНрддреБрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ

PowerShell рд▓реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢рд░реНрдд рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрд▓рд╛рдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдорд╛рд░реНрдлрдд рдкрд╛рд░рд┐рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

Where-Object { ╨▒╨╗╨╛╨║ ╤Б╤Ж╨╡╨╜╨░╤А╨╕╤П }

рдХреЛрд╖реНрдардХ рднрд┐рддреНрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреНрд▓рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдкрд░рд┐рдгрд╛рдо рдмреБрд▓рд┐рдпрди рдорд╛рди рд╣реБрдиреБрдкрд░реНрдЫред рдпрджрд┐ рдпреЛ рд╕рддреНрдп ($true) рд╣реЛ рднрдиреЗ, рдЬрд╣рд╛рдБ-рд╡рд╕реНрддреБ cmdlet рдорд╛ рдЗрдирдкреБрдЯ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рд╕рд╛рдердорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдиреЗрдЫ, рдЕрдиреНрдпрдерд╛ ($false) рдпрд╕рд▓рд╛рдИ рдореЗрдЯрд╛рдЗрдиреЗрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд░реЛрдХрд┐рдПрдХреЛ рд╡рд┐рдиреНрдбреЛрдЬ рд╕рд░реНрднрд░ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реМрдВ, рдЕрд░реНрдерд╛рддреНред рдЬрд╕рдХреЛ рд╕реНрдерд┐рддрд┐ рдЧреБрдг "рд░реЛрдХрд┐рдПрдХреЛ" рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ:

Get-Service | Where-Object {$_.Status -eq "Stopped"}

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдпрд╣рд╛рдБ рдлреЗрд░рд┐ рд╣рд╛рдореА рдкрд╛рдареНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рджреЗрдЦреНрдЫреМрдВ, рддрд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдмрд╛рдЯ рдЧреБрдЬрд░рдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдкреНрд░рдХрд╛рд░ рд░ рдЖрдиреНрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдмреБрдЭреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдпреЛ рдЧрд╛рд╣реНрд░реЛ рдЫреИрди:

Get-Service | Where-Object {$_.Status -eq "Stopped"} | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рд╡рд╕реНрддреБрд╣рд░реВ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрджреИ

рдЬрдм рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкреНрд░рд╢реЛрдзрди, рддреНрдпрд╣рд╛рдБ рдЕрдХреНрд╕рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред Sort-Object cmdlet рд▓реЗ рдЧреБрдгрд╣рд░реВ (рдХреНрд░рдордмрджреНрдз рдЧрд░реНрдиреЗ рдХреБрдЮреНрдЬреАрд╣рд░реВ) рдХреЛ рдирд╛рдорд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рд╡рд╕реНрддреБрд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдБрдЫред CPU рд╕рдордп (cpu рдЧреБрдг) рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫ:

Get-Process | Sort-Object тАУProperty cpu

Sort-Object cmdlet рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрджрд╛ -Property рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдореЗрдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ; рдпреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдЙрд▓реНрдЯреЛ рдХреНрд░рдордмрджреНрдзрдХреЛ рд▓рд╛рдЧрд┐, -Descending рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

Get-Process | Sort-Object cpu -Descending

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рд╡рд╕реНрддреБрд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рднрд╛рдЧрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ

рдЪрдпрди-рд╡рд╕реНрддреБ cmdlet рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рд╕реБрд░реБ рд╡рд╛ рдЕрдиреНрддреНрдпрдорд╛ -First рд╡рд╛ -Last рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдЪрдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорджреНрджрддрд▓реЗ, рддрдкрд╛рдЗрдБ рдПрдХрд▓ рд╡рд╕реНрддреБрд╣рд░реВ рд╡рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЧреБрдгрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдирдпрд╛рдБ рд╡рд╕реНрддреБрд╣рд░реВ рдкрдирд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ cmdlet рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рд╣реЗрд░реМрдВред

рдирд┐рдореНрди рдЖрджреЗрд╢рд▓реЗ RAM (WS рдЧреБрдг) рдХреЛ рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдЦрдкрдд рдЧрд░реНрдиреЗ резреж рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦрд╛рдЙрдБрдЫ:

Get-Process | Sort-Object WS -Descending | Select-Object -First 10

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рддрдкрд╛рдИрдВрд▓реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдмрд╛рдЯ рдЧреБрдЬрд░рдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдХреЗрд╣реА рдЧреБрдгрд╣рд░реВ рдорд╛рддреНрд░ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдирдпрд╛рдБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

Get-Process | Select-Object ProcessName, Id -First 1

рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рд░реВрдк, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВ, рдЬрд╕рдХреЛ рд╕рдВрд░рдЪрдирд╛ Get-Process cmdlet рджреНрд╡рд╛рд░рд╛ рдлрд┐рд░реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ рд╕рдВрд░рдЪрдирд╛рднрдиреНрджрд╛ рдлрд░рдХ рд╣реБрдиреЗрдЫред Get-Member рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реМрдВ:

Get-Process | Select-Object ProcessName, Id -First 1 | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдЪрдпрди-рд╡рд╕реНрддреБрд▓реЗ рдПрдХрд▓ рд╡рд╕реНрддреБ (-рдкрд╣рд┐рд▓реЛ 1) рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдЫ рдЬрд╕рдорд╛ рд╣рд╛рдореАрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдХрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдордзреНрдпреЗ рджреБрдИ рдорд╛рддреНрд░ рдЫрдиреН: рддрд┐рдиреАрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВ Get-Process cmdlet рджреНрд╡рд╛рд░рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдкрд╣рд┐рд▓реЛ рд╡рд╕реНрддреБрдмрд╛рдЯ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред PowerShell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЪрдпрди-рд╡рд╕реНрддреБ рдкреНрд░рдпреЛрдЧрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ:

$obj = Get-Process | Select-Object ProcessName, Id -First 1
$obj.GetType()

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдЪрдпрди-рд╡рд╕реНрддреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВрд▓реЗ рдХрдореНрдкреНрдпреБрдЯреЗрдб рдЧреБрдгрд╣рд░реВ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬреБрди рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рд╣реНрдпрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпрд╕рдХреЛ рдкрд╣рд┐рд▓реЛ рдХреБрдЮреНрдЬреАрдХреЛ рдорд╛рди рд╕рдореНрдкрддреНрддрд┐ рдирд╛рдорд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ, рд░ рджреЛрд╕реНрд░реЛ рдХреБрдЮреНрдЬреАрдХреЛ рдорд╛рди рд╣рд╛рд▓рдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рддрддреНрд╡рдХреЛ рд╕рдореНрдкрддреНрддрд┐ рдореВрд▓реНрдпрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ:

Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}}

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдХрдиреНрд╡реЗрдпрд░рдмрд╛рдЯ рдЧреБрдЬрд░рдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╣реЗрд░реМрдВ:

Get-Process | Select-Object -Property ProcessName, @{Name="StartTime"; Expression = {$_.StartTime.Minute}} | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдкреНрд░рддреНрдпреЗрдХ-рд╡рд╕реНрддреБ, рд╕рдореВрд╣-рд╡рд╕реНрддреБ рд░ рдорд╛рдкрди-рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐

рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреНрдп 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

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рд╡рд┐рд╢реЗрд╖ рдШрдЯрдирд╛ рд▓рдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирдЧрд░реЗрдХреЛ рд╣реБрдирд╛рд▓реЗ, рдХрдХреНрд╖рд╛рдХреЛ рдирддрд┐рдЬрд╛рдорд╛ рдХреБрдиреИ рдбрд╛рдЯрд╛ рдЫреИрдиред рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ -ArgumentList рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рдХреЛ рдирд┐рд░реНрдорд╛рдгрдХреЛ рдХреНрд░рдордорд╛ рд╡рд┐рд╢реЗрд╖ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд┐рдзрд┐рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрджрд┐ рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рдЧ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛рдИ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рд╕реНрдЯреНрд░рд┐рдЩ рдкрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫ:

$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ $AppLog рдЪрд░рдорд╛ рдЖрджреЗрд╢рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдмрдЪрдд рдЧрд░реНрдпреМрдВред рдпрджреНрдпрдкрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдбрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд▓реЗрдЦрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкреНрд░рд╛рдпрдГ рд╡рд╕реНрддреБрдХреЛ рд╕рдиреНрджрд░реНрднрд▓рд╛рдИ рдХрд╛рдпрдо рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдердк рд░реВрдкрдорд╛, рдХреЛрд░ .NET рдХреЛрд░ рдХрдХреНрд╖рд╛рд╣рд░реВ рдкреНрд░рдгрд╛рд▓реА рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН: PowerShell рд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдпрд╕рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЦреЛрдЬреНрдЫ, рддреНрдпрд╕реИрд▓реЗ System.Diagnostics.EventLog рдХреЛ рд╕рдЯреНрдЯрд╛ Diagnostics.EventLog рд▓реЗрдЦреНрдиреБ рдПрдХрджрдо рд╕рд╣реА рдЫред

рд▓рдЧ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди, рддрдкрд╛рдИрдВ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

$AppLog | Get-Member -MemberType Method

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдпрджрд┐ рдкрд╣реБрдБрдЪ рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВ рдЫрдиреН рднрдиреЗ рдпрд╕рд▓рд╛рдИ 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 рдХреЛрд░ рдХрдХреНрд╖рд╛рд╣рд░реВ рдЗрдиреНрд╕реНрдЯреНрдпрд╛рдиреНрдЯрд┐рдПрдЯ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред рдЙрдиреАрд╣рд░реБ рд╕реНрдерд┐рд░ рд░ рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░ рдЧреБрдг рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдпреА рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рд╕рдиреНрджрд░реНрдн рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд╣реБрдиреН рдЬреБрди рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдирдЧрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддрдкрд╛рдИрдВ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рдЯрд╛рдЗрдк рдирд╛рдо рд╕рдВрд▓рдЧреНрди рдЧрд░реЗрд░ рд╢рд╛рдмреНрджрд┐рдХ рдорд╛рд░реНрдлрдд рд╕реНрдерд┐рд░ рд╡рд░реНрдЧрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджреНрдпрдкрд┐, рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ Get-Member рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╕реНрддреБрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╣реЗрд░реНрдЫреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ System.Environment рдХреЛ рд╕рдЯреНрдЯрд╛ System.RuntimeType рдЯрд╛рдЗрдк рджреЗрдЦреНрдиреЗрдЫреМрдВ:

[System.Environment] | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рд╕реНрдерд┐рд░ рд╕рджрд╕реНрдпрд╣рд░реВ рдорд╛рддреНрд░ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдЧреЗрдЯ-рдореЗрдореНрдмрд░рд▓рд╛рдИ -рд╕реНрдЯреЗрдЯрд┐рдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд╕рд╛рде рдХрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╡рд╕реНрддреБрдХреЛ рдкреНрд░рдХрд╛рд░ рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН):

[System.Environment] | Get-Member -Static

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рд╕реНрдерд┐рд░ рдЧреБрдгрд╣рд░реВ рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди, рд╢рд╛рдмреНрджрд┐рдХ рдкрдЫрд┐рдХреЛ рдЕрд╡рдзрд┐рдХреЛ рд╕рдЯреНрдЯрд╛ рд▓рдЧрд╛рддрд╛рд░ рджреБрдИ рдХреЛрд▓реЛрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

[System.Environment]::OSVersion

рд╡рд╛

$test=[System.Math]::Sqrt(25) 
$test
$test.GetType()

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

PSCustomObject рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН

PowerShell рдорд╛ рдЙрдкрд▓рдмреНрдз рдЕрд╕рдВрдЦреНрдп рдбрд╛рдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдордзреНрдпреЗ, рдпреЛ PSCustomObject рдХреЛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ, рдПрдХ рдордирдорд╛рдиреА рд╕рдВрд░рдЪрдирд╛ рд╕рдВрдЧ рд╡рд╕реНрддреБрд╣рд░реБ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛред New-Object cmdlet рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕реНрддреЛ рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд▓рд╛рдИ рдХреНрд▓рд╛рд╕рд┐рдХ, рддрд░ рдмреЛрдЭрд┐рд▓реЛ рд░ рдкреБрд░рд╛рдиреЛ рддрд░рд┐рдХрд╛ рдорд╛рдирд┐рдиреНрдЫ:

$object = New-Object  тАУTypeName PSCustomObject -Property @{Name = 'Ivan Danko'; 
                                          City = 'Moscow';
                                          Country = 'Russia'}

рд╡рд╕реНрддреБрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╣реЗрд░реМрдВ:

$object | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

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()

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдпрд╕ рдкреНрд░рдХрд╛рд░рдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдПрдХ рдмреЗрдлрд╛рдЗрджрд╛ рднрдиреЗрдХреЛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЧреБрдгрд╣рд░реВрдХреЛ рдХреНрд░рдо рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрди рд╕рдХреНрдЫред рдпрд╕рдмрд╛рдЯ рдмрдЪреНрди, рддрдкрд╛рдИрдВрд▓реЗ [ordered] рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ:

$object = [PSCustomObject][ordered]@{Name = 'Ivan Danko'; 
                                          City = 'Moscow';
                                          Country = 'Russia'
}

рддреНрдпрд╣рд╛рдБ рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН: рдорд╛рдерд┐ рд╣рд╛рдореАрд▓реЗ cmdlet рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╣реЗрд░реНрдпреМрдВ рдЪрдпрди-рд╡рд╕реНрддреБред рдмрд╛рдБрдХреА рд░рд╣реЗрдХрд╛ рддрддреНрд╡рд╣рд░реВ рдердкреНрдиреЗ рд░ рд╣рдЯрд╛рдЙрдиреЗ рдХреБрд░рд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗ рд╣реЛред рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЧрд░реНрдиреБ рдПрдХрджрдо рд╕рд░рд▓ рдЫ:

$object | Add-Member тАУMemberType NoteProperty тАУName Age  тАУValue 33
$object | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

Add-Member cmdlet рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ "-MemberType ScriptMethod" рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ $object рдорд╛ рдЧреБрдгрд╣рд░реВ рдорд╛рддреНрд░ рд╣реЛрдЗрди рддрд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдкрдирд┐ рдердкреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

$ScriptBlock = {
    # ╨║╨╛╨┤ 
}
$object | Add-Member -Name "MyMethod" -MemberType ScriptMethod -Value $ScriptBlock
$object | Get-Member

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдирдпрд╛рдБ рд╡рд┐рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдб рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди ScriptBlock рдкреНрд░рдХрд╛рд░рдХреЛ $ScriptBlock рдЪрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдЧреБрдгрд╣рд░реВ рд╣рдЯрд╛рдЙрди, рд╕рдореНрдмрдиреНрдзрд┐рдд рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

$object.psobject.properties.remove('Name')

рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

PowerShell 5.0 рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНтАНрдпреЛ рдЧреНрд░реЗрдб рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИред рд╕реЗрд╡рд╛ рд╢рдмреНрдж рдХреНрд▓рд╛рд╕ рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдЕрднрд┐рдкреНрд░реЗрд░рд┐рдд рдЫ, рдЬрд╕ рдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдХреНрд▓рд╛рд╕рдХреЛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫ рд░ рдпрд╕рдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдЕрдкрд░реЗрдЯрд░ рдХреЛрд╖реНрдардХрд╣рд░реВрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрдиреБрдкрд░реНрдЫ:

class MyClass
{
    # ╤В╨╡╨╗╨╛ ╨║╨╗╨░╤Б╤Б╨░
}

рдпреЛ рдПрдХ рд╕рд╛рдБрдЪреЛ .NET рдХреЛрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛ, рдпрд╕рдХреЛ рдЧреБрдгрд╣рд░реВ, рд╡рд┐рдзрд┐рд╣рд░реВ, рд░ рдЕрдиреНрдп рддрддреНрд╡рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рд╢рд░реАрд░рдХреЛ рд╕рд╛рдеред рд╕рд░рд▓ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ:

class MyClass 
{
     [string]$Name
     [string]$City
     [string]$Country
}

рд╡рд╕реНрддреБ (рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, cmdlet рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдирдпрд╛рдБ-рд╡рд╕реНрддреБ, рд╡рд╛ рд╢рд╛рдмреНрджрд┐рдХ рдкреНрд░рдХрд╛рд░рдХреЛ [MyClass] рд░ рд╕реНрдпреВрдбреЛрд╕реНрдЯреЗрдЯрд┐рдХ рд╡рд┐рдзрд┐ рдирдпрд╛рдБ (рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░):

$object = New-Object -TypeName MyClass

рд╡рд╛

$object = [MyClass]::new()

рд╡рд╕реНрддреБрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реМрдВ:

$object | Get-Member

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рд╕реНрдХреЛрдкрдХреЛ рдмрд╛рд░реЗрдорд╛ рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН: рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдХрд╛рд░рдХреЛ рдирд╛рдорд▓рд╛рдИ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд░реВрдкрдорд╛ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рд╡рд╛ рд▓рд┐рдкрд┐ рд╡рд╛ рдореЛрдбреНрдпреБрд▓ рдмрд╛рд╣рд┐рд░рдХреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рдЬрд╕рдорд╛ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ (рд╡рд╕реНрддреБрд╣рд░реВ) рдлрд░реНрдХрд╛рдЙрди рд╕рдХреНрдЫ рдЬреБрди рдореЛрдбреНрдпреБрд▓ рд╡рд╛ рд▓рд┐рдкрд┐ рдмрд╛рд╣рд┐рд░ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд╣реБрдиреЗрдЫред

рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рдпрд╕рдХреЛ рдЧреБрдгрд╣рд░реВ рднрд░реНрдиреБрд╣реЛрд╕реН:

$object.Name = 'Ivan Danko'
$object.City = 'Moscow'
$object.Country = 'Russia'
$object

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдгрд▓реЗ рд╕рдореНрдкрддреНрддрд┐ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирд╣рд░реВ рдкрдирд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫ:

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)

рд╡рд┐рдзрд┐рд╣рд░реВ рдУрднрд░рд▓реЛрдб рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ; рдердк рд░реВрдкрдорд╛, рдПрдХ рдХрдХреНрд╖рд╛ рдЫ рд╕реНрдерд┐рд░ рдЧреБрдг рд░ рд╡рд┐рдзрд┐рд╣рд░реВ, рд╕рд╛рдереИ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рд╣рд░реВ рдЬрд╕рдХреЛ рдирд╛рдорд╣рд░реВ рдХреНрд▓рд╛рд╕рдХреЛ рдирд╛рдорд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛ PowerShell рдореЛрдбреНрдпреБрд▓рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рд╡рд░реНрдЧрд▓реЗ рдЕрд░реНрдХреЛрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫ - рдпреЛ рдХрд╕рд░реА рдЗрдирд╣реЗрд░рд┐рдЯреЗрдиреНрд╕ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпрд╕рд▓рд╛рдИ рдЕрд╡рд╕реНрдерд┐рдд .NET рдХрдХреНрд╖рд╛рд╣рд░реВ рдЖрдзрд╛рд░рдХрд╛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫ:

class MyClass2 : MyClass
{
      #╤В╨╡╨╗╨╛ ╨╜╨╛╨▓╨╛╨│╨╛ ╨║╨╗╨░╤Б╤Б╨░, ╨▒╨░╨╖╨╛╨▓╤Л╨╝ ╨┤╨╗╤П ╨║╨╛╤В╨╛╤А╨╛╨│╨╛ ╤П╨▓╨╗╤П╨╡╤В╤Б╤П MyClass
}
[MyClass2]::new().Smile($true)

PowerShell рдорд╛ рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╣рд╛рдореНрд░реЛ рд╡рд┐рд╡рд░рдг рд╢рд╛рдпрджреИ рдкреВрд░реНрдг рдЫред рдирд┐рдореНрди рдкреНрд░рдХрд╛рд╢рдирд╣рд░реВрдорд╛, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕рд╛рде рдЧрд╣рд┐рд░реЛ рдмрдирд╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреМрдВ: рд╢реНрд░реГрдВрдЦрд▓рд╛рдХреЛ рдкрд╛рдБрдЪреМрдВ рд▓реЗрдЦ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдШрдЯрдХрд╣рд░реВрд╕рдБрдЧ PowerShell рдПрдХреАрдХреГрдд рдЧрд░реНрдиреЗ рдореБрджреНрджрд╛рд╣рд░реВрдорд╛ рд╕рдорд░реНрдкрд┐рдд рд╣реБрдиреЗрдЫред рд╡рд┐рдЧрддрдХрд╛ рднрд╛рдЧрд╣рд░реВ рддрд▓рдХреЛ рд▓рд┐рдЩреНрдХрд╣рд░реВрдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫред

рднрд╛рдЧ 1: рдЖрдзрд╛рд░рднреВрдд Windows PowerShell рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ
рднрд╛рдЧ реи: Windows PowerShell рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рдкрд░рд┐рдЪрдп
рднрд╛рдЧ 3: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрджреИ, cmdlets рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

Windows PowerShell рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ, рдЖрдлреНрдиреИ рдХрдХреНрд╖рд╛рд╣рд░реВ

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди