рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

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

рд▓реЗрдЦ:

рдкреЙрд╡рд░рд╢реЗрд▓рдордзреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕
рд╡рд╕реНрддреВрдВрдЪреА рд░рдЪрдирд╛ рдкрд╛рд╣рдгреЗ
рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╡рд╕реНрддреВ
рд╡рд╕реНрддреВрдВрдЪреА рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рдгреЗ
рд╡рд╕реНрддреВ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рднрд╛рдЧ рдирд┐рд╡рдбрдгреЗ
рдкреНрд░рддреНрдпреЗрдХ-рд╡рд╕реНрддреВ, рд╕рдореВрд╣-рд╡рд╕реНрддреВ рдЖрдгрд┐ рдорд╛рдкрди-рд╡рд╕реНрддреВрд╕рд╛рдареА
.NET рдЖрдгрд┐ COM рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреЗ (рдирд╡реАрди-рдСрдмреНрдЬреЗрдХреНрдЯ)
рдХреЙрд▓рд┐рдВрдЧ рд╕реНрдЯреЕрдЯрд┐рдХ рдкрджреНрдзрддреА
PSCustomObject рдЯрд╛рдЗрдк рдХрд░рд╛
рдЖрдкрд▓реЗ рд╕реНрд╡рддрдГрдЪреЗ рд╡рд░реНрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ

рдкреЙрд╡рд░рд╢реЗрд▓рдордзреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕

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

рд╡рд╕реНрддреВрдВрдЪреА рд░рдЪрдирд╛ рдкрд╛рд╣рдгреЗ

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

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

Get-Process | Get-Member

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рдпреЗрдереЗ рдЖрдкрдг рдЖрдзреАрдЪ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рд░рдЪрдирд╛ рдкрд╛рд╣рддреЛ рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреНрдпрд╛ рдорджрддреАрдиреЗ рдЖрдкрдг, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЗрдирдкреБрдЯрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреЗ рдЧреБрдгрдзрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддреЛ:

Get-Process | Get-Member -MemberType Property

рдкреНрд░рд╢рд╛рд╕рдирд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреАрдкрдгреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рдЖрдкрд▓реНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЬреНрдЮрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓: рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреНрд░рддрд┐рд╕рд╛рдж рдЧреБрдгрдзрд░реНрдо рд╡рд╛рдкрд░реВрди рд╣рдБрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рдгреНрдпрд╛рд╕рд╛рдареА.

рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╡рд╕реНрддреВ

рдкреЙрд╡рд░рд╢реЗрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдЯреА рдкреВрд░реНрдг рдХрд░рдгрд╛рд▒реНрдпрд╛ рд╡рд╕реНрддреВрдВрдирд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреВрди рдЬрд╛рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ:

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

рдХрдВрд╕рд╛рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреНрд▓реЙрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдмреБрд▓рд┐рдпрди рдореВрд▓реНрдп рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рддреЗ рдЦрд░реЗ рдЕрд╕рд▓реНрдпрд╛рд╕ ($true), рд╡реНрд╣реЗрдЕрд░-рдСрдмреНрдЬреЗрдХреНрдЯ cmdlet рдордзреНрдпреЗ рдЗрдирдкреБрдЯ рдХреЗрд▓реЗрд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдкрд╛рд╕ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓, рдЕрдиреНрдпрдерд╛ ($false) рддреЗ рд╣рдЯрд╡рд▓реЗ рдЬрд╛рдИрд▓. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдерд╛рдВрдмрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡реНрд╣рд░ рд╕реЗрд╡рд╛рдВрдЪреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ, рдЙрджрд╛. рдЬреНрдпрд╛рдВрдЪреА рд╕реНрдЯреЗрдЯрд╕ рдкреНрд░реЙрдкрд░реНрдЯреА "рд╕реНрдЯреЙрдкреНрдб" рд╡рд░ рд╕реЗрдЯ рдХреЗрд▓реА рдЖрд╣реЗ:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рдпреЗрдереЗ рдЖрдореНрд╣реА рдкреБрдиреНрд╣рд╛ рдПрдХ рдордЬрдХреВрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкрд╛рд╣рддреЛ, рдкрд░рдВрддреБ рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреВрди рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╡рд╕реНрддреВрдВрдЪрд╛ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рдЕрдВрддрд░реНрдЧрдд рд░рдЪрдирд╛ рд╕рдордЬреВрди рдШреНрдпрд╛рдпрдЪреА рдЕрд╕реЗрд▓ рддрд░ рддреЗ рдЕрд╡рдШрдб рдирд╛рд╣реА:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рд╡рд╕реНрддреВрдВрдЪреА рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рдгреЗ

рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛, рддреНрдпрд╛рдВрдирд╛ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ. рд╕реЙрд░реНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ cmdlet рд▓рд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪреА рдирд╛рд╡реЗ (рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреА) рдкрд╛рд╕ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрдиреБрд╕рд╛рд░ рдСрд░реНрдбрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╕реНрддреВ рдкрд░рдд рдХрд░рддрд╛рдд. CPU рд╡реЗрд│ рдШрд╛рд▓рд╡рд▓реЗрд▓реНрдпрд╛ (cpu рдкреНрд░реЙрдкрд░реНрдЯреА) рдиреБрд╕рд╛рд░ рдЪрд╛рд▓реВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ:

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

рд╕реЙрд░реНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ cmdlet рд▓рд╛ рдХреЙрд▓ рдХрд░рддрд╛рдирд╛ -рдкреНрд░реЙрдкрд░реНрдЯреА рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рдЧрд│рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ; рддреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рд░рд┐рд╡реНрд╣рд░реНрд╕ рд╕реЙрд░реНрдЯрд┐рдВрдЧрд╕рд╛рдареА, -рдбрд┐рд╕реЗрдВрдбрд┐рдВрдЧ рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рд╛рдкрд░рд╛:

Get-Process | Sort-Object cpu -Descending

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рд╡рд╕реНрддреВ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рднрд╛рдЧ рдирд┐рд╡рдбрдгреЗ

Select-Object cmdlet рддреБрдореНрд╣рд╛рд▓рд╛ -First рдХрд┐рдВрд╡рд╛ -Last рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╡рд╛рдкрд░реВрди рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рд╕реБрд░реВрд╡рд╛рддреАрд▓рд╛ рдХрд┐рдВрд╡рд╛ рд╢реЗрд╡рдЯреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рддреНрдпрд╛рдЪреНрдпрд╛ рдорджрддреАрдиреЗ, рддреБрдореНрд╣реА рдПрдХрд▓ рд╡рд╕реНрддреВ рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдгрдзрд░реНрдо рдирд┐рд╡рдбреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд╡реАрди рд╡рд╕реНрддреВ рджреЗрдЦреАрд▓ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛. рд╕рд╛рдзреА рдЙрджрд╛рд╣рд░рдгреЗ рд╡рд╛рдкрд░реВрди cmdlet рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рдкрд╛рд╣реВ.

рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдб рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд RAM (WS рдкреНрд░реЙрдкрд░реНрдЯреА) рд╡рд╛рдкрд░рдгрд╛рд▒реНрдпрд╛ 10 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рддреБрдореНрд╣реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреВрди рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╡рд╕реНрддреВрдВрдЪреЗ рдХреЗрд╡рд│ рдХрд╛рд╣реА рдЧреБрдгрдзрд░реНрдо рдирд┐рд╡рдбреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд╡реАрди рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛:

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

рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдирд╡реАрди рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓, рдЬреНрдпрд╛рдЪреА рд░рдЪрдирд╛ Get-Process cmdlet рджреНрд╡рд╛рд░реЗ рдкрд░рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реА рдЕрд╕реЗрд▓. Get-Member рд╡рд╛рдкрд░реВрди рдпрд╛рдЪреА рдкрдбрддрд╛рд│рдгреА рдХрд░реВрдпрд╛:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╕рд┐рд▓реЗрдХреНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ (-рдкреНрд░рдердо 1) рджреЗрддреЛ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлреАрд▓реНрдбрдкреИрдХреА рдлрдХреНрдд рджреЛрди рдЖрд╣реЗрдд: рддреНрдпрд╛рдВрдЪреА рдореВрд▓реНрдпреЗ рдЧреЗрдЯ-рдкреНрд░реЛрд╕реЗрд╕ cmdlet рджреНрд╡рд╛рд░реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдордзреВрди рдХреЙрдкреА рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд. PowerShell рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдорд╛рд░реНрдЧ рд╕рд┐рд▓реЗрдХреНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рд╕рд┐рд▓реЗрдХреНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд░реВрди, рддреБрдореНрд╣реА рдЕрд╢рд╛ рд╡рд╕реНрддреВрдВрдордзреНрдпреЗ рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реЗ рдЧреБрдгрдзрд░реНрдо рдЬреЛрдбреВ рд╢рдХрддрд╛ рдЬреНрдпрд╛рдВрдирд╛ рдореНрд╣рдгреВрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рд╣реЕрд╢ рдЯреЗрдмрд▓. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рддреНрдпрд╛рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдХреАрдЪреЗ рдореВрд▓реНрдп рдорд╛рд▓рдорддреНрддреЗрдЪреНрдпрд╛ рдирд╛рд╡рд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рджреБрд╕рд░реНтАНрдпрд╛ рдХреАрдЪреЗ рдореВрд▓реНрдп рд╡рд░реНрддрдорд╛рди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдШрдЯрдХрд╛рдЪреНрдпрд╛ рдорд╛рд▓рдорддреНрддрд╛ рдореВрд▓реНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рдХрдиреНрд╡реНрд╣реЗрдпрд░рдордзреВрди рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╡рд╕реНрддреВрдВрдЪреА рд░рдЪрдирд╛ рдкрд╛рд╣реВ:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рдкреНрд░рддреНрдпреЗрдХ-рд╡рд╕реНрддреВ, рд╕рдореВрд╣-рд╡рд╕реНрддреВ рдЖрдгрд┐ рдорд╛рдкрди-рд╡рд╕реНрддреВрд╕рд╛рдареА

рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрддрд░ 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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

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

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

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

рд▓реЙрдЧрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрдг рдпреЛрдЧреНрдп рдкрджреНрдзрддреА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛:

$AppLog | Get-Member -MemberType Method

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 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

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

рдХреЙрд▓рд┐рдВрдЧ рд╕реНрдЯреЕрдЯрд┐рдХ рдкрджреНрдзрддреА

System.Environment рдЖрдгрд┐ System.Math рдпрд╛рд╕рд╣ рдХрд╛рд╣реА .NET рдХреЛрд░ рдХреНрд▓рд╛рд╕реЗрд╕ рдЗрдиреНрд╕реНрдЯрдВрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд. рддреЗ рдЖрд╣реЗрдд рд╕реНрдерд┐рд░ рдЖрдгрд┐ рддреНрдпрд╛рдд рдлрдХреНрдд рд╕реНрдерд┐рд░ рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдкрджреНрдзрддреА рдЖрд╣реЗрдд. рд╣реА рдореВрд▓рдд: рд╕рдВрджрд░реНрдн рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗрдд рдЬреА рдСрдмреНрдЬреЗрдХреНрдЯ рди рдмрдирд╡рддрд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддрд╛рдд. рдЪреМрд░рд╕ рдХрдВрд╕рд╛рдд рдЯрд╛рдЗрдкрдЪреЗ рдирд╛рд╡ рд╕рдВрд▓рдЧреНрди рдХрд░реВрди рддреБрдореНрд╣реА рд╢рд╛рдмреНрджрд┐рдХ рджреНрд╡рд╛рд░реЗ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧрд╛рдЪрд╛ рд╕рдВрджрд░реНрдн рдШреЗрдК рд╢рдХрддрд╛. рддрдерд╛рдкрд┐, рдЬрд░ рдЖрдкрдг Get-Member рд╡рд╛рдкрд░реВрди рдСрдмреНрдЬреЗрдХреНрдЯрдЪреА рд░рдЪрдирд╛ рдкрд╛рд╣рд┐рд▓реА рддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ System.Environment рдРрд╡рдЬреА System.RuntimeType рд╣рд╛ рдкреНрд░рдХрд╛рд░ рджрд┐рд╕реЗрд▓:

[System.Environment] | Get-Member

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рдлрдХреНрдд рд╕реНрдЯреЕрдЯрд┐рдХ рд╕рджрд╕реНрдп рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА, рдЧреЗрдЯ-рдореЗрдореНрдмрд░рд▓рд╛ -рд╕реНрдЯреЕрдЯрд┐рдХ рдкреЕрд░рд╛рдореАрдЯрд░рд╕рд╣ рдХреЙрд▓ рдХрд░рд╛ (рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛):

[System.Environment] | Get-Member -Static

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рд╕реНрдерд┐рд░ рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдкрджреНрдзрддреАрдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╢рд╛рдмреНрджрд┐рдХ рдирдВрддрд░рдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдРрд╡рдЬреА рджреЛрди рд╕рд▓рдЧ рдХреЛрд▓рди рд╡рд╛рдкрд░рд╛:

[System.Environment]::OSVersion

рдХрд┐рдВрд╡рд╛

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

PSCustomObject рдЯрд╛рдЗрдк рдХрд░рд╛

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

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

рдЪрд▓рд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреА рд░рдЪрдирд╛ рдкрд╛рд╣реВ:

$object | Get-Member

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 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()

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╡рд╕реНрддреВрдВрдЪрд╛ рдПрдХ рддреЛрдЯрд╛ рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪрд╛ рдХреНрд░рдо рдмрджрд▓реВ рд╢рдХрддреЛ. рд╣реЗ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА [рдСрд░реНрдбрд░ рдХреЗрд▓реЗрд▓реЗ] рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

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

рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрддрд░ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд: рд╡рд░ рдЖрдореНрд╣реА cmdlet рд╡рд╛рдкрд░реВрди рдкрд╛рд╣рд┐рд▓реЗ рд╕рд┐рд▓реЗрдХреНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ. рдШрдЯрдХ рдЬреЛрдбрдгреЗ рдЖрдгрд┐ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рд╣реЗ рдлрдХреНрдд рдмрд╛рдХреА рдЖрд╣реЗ. рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рд╡рд░реВрди рдСрдмреНрдЬреЗрдХреНрдЯрд╕рд╛рдареА рд╣реЗ рдХрд░рдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

Add-Member cmdlet рддреБрдореНрд╣рд╛рд▓рд╛ "-MemberType ScriptMethod" рд░рдЪрдирд╛ рд╡рд╛рдкрд░реВрди рдкреВрд░реНрд╡реА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ $object рдордзреНрдпреЗ рдХреЗрд╡рд│ рдЧреБрдгрдзрд░реНрдордЪ рдирд╛рд╣реА рддрд░ рдкрджреНрдзрддреА рджреЗрдЦреАрд▓ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ:

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

рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдирд╡реАрди рдкрджреНрдзрддреАрд╕рд╛рдареА рдХреЛрдб рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯрдмреНрд▓реЙрдХ рдкреНрд░рдХрд╛рд░рд╛рдЪреЗ $ScriptBlock рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡рд╛рдкрд░рд▓реЗ.

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рдЧреБрдгрдзрд░реНрдо рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА, рд╕рдВрдмрдВрдзрд┐рдд рдкрджреНрдзрдд рд╡рд╛рдкрд░рд╛:

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

рдЖрдкрд▓реЗ рд╕реНрд╡рддрдГрдЪреЗ рд╡рд░реНрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ

рдкреЙрд╡рд░рд╢реЗрд▓ 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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

рд╕реНрдХреЛрдк рдмрджреНрджрд▓ рд╡рд┐рд╕рд░реВ рдирдХрд╛: рддреБрдореНрд╣реА рдЯрд╛рдЗрдк рдирд╛рд╡рд╛рдЪрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореНрд╣рдгреВрди рд╕рдВрджрд░реНрдн рдШреЗрдК рд╢рдХрдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдВрд╡рд╛ рдореЙрдбреНрдпреВрд▓рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЯрд╛рдЗрдк рд▓рд┐рдЯрд░рд▓ рд╡рд╛рдкрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдЬреНрдпрд╛рдордзреНрдпреЗ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдлрдВрдХреНрд╢рдиреНрд╕ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдгреЗ (рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕) рдкрд░рдд рдХрд░реВ рд╢рдХрддрд╛рдд рдЬреЗ рдореЙрдбреНрдпреВрд▓ рдХрд┐рдВрд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдкреНрд░рд╡реЗрд╢рдпреЛрдЧреНрдп рдЕрд╕рддреАрд▓.

рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреНрдпрд╛рдЪреЗ рдЧреБрдгрдзрд░реНрдо рднрд░рд╛:

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

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 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)

рдкрджреНрдзрддреА рдУрд╡реНрд╣рд░рд▓реЛрдб рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд; рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдПрдХ рд╡рд░реНрдЧ рдЖрд╣реЗ рд╕реНрдерд┐рд░ рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдкрджреНрдзрддреА, рддрд╕реЗрдЪ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЬреНрдпрд╛рдВрдЪреА рдирд╛рд╡реЗ рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рд╢реА рдЬреБрд│рддрд╛рдд. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдВрд╡рд╛ рдкреЙрд╡рд░рд╢реЗрд▓ рдореЙрдбреНрдпреВрд▓рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓рд╛ рд╡рд░реНрдЧ рджреБрд╕рд░реНтАНрдпрд╛рд╕рд╛рдареА рдЖрдзрд╛рд░ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░реВ рд╢рдХрддреЛ - рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╡рд╛рд░рд╕рд╛ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╡рд┐рджреНрдпрдорд╛рди .NET рд╡рд░реНрдЧ рдмреЗрд╕ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ:

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

рдкреЙрд╡рд░рд╢реЗрд▓ рдордзреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреЗ рдЖрдордЪреЗ рд╡рд░реНрдгрди рдлрд╛рд░рдЪ рдХрдореА рдЖрд╣реЗ. рдкреБрдвреАрд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдордзреНрдпреЗ, рдЖрдореНрд╣реА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ рддреЗ рдЕрдзрд┐рдХ рд╕рдЦреЛрд▓ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ: рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рдкрд╛рдЪрд╡рд╛ рд▓реЗрдЦ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдШрдЯрдХрд╛рдВрд╕рд╣ рдкреЙрд╡рд░рд╢реЗрд▓ рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдореБрджреНрджреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдкрд┐рдд рдЕрд╕реЗрд▓. рдорд╛рдЧреАрд▓ рднрд╛рдЧ рдЦрд╛рд▓реАрд▓ рд▓рд┐рдВрдХрд╡рд░ рдорд┐рд│реВ рд╢рдХрддрд╛рдд.

рднрд╛рдЧ 1: рдореВрд▓рднреВрдд Windows PowerShell рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ
рднрд╛рдЧ реи: рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪрд╛ рдкрд░рд┐рдЪрдп
рднрд╛рдЧ 3: рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЖрдгрд┐ рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдкрд╛рд╕ рдХрд░рдгреЗ, cmdlets рддрдпрд╛рд░ рдХрд░рдгреЗ

рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ? рднрд╛рдЧ 4: рд╡рд╕реНрддреВ, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛