Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

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

рдкреЙрд╡рд░рд╢реЗрд▓ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ
рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦрдирд╛
рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЫрд╛рдирдирд╛
рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛
рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЙрдирдХреЗ рднрд╛рдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛
рдкреНрд░рддреНрдпреЗрдХ-рд╡рд╕реНрддреБ, рд╕рдореВрд╣-рд╡рд╕реНрддреБ рдФрд░ рдорд╛рдк-рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП
.NET рдФрд░ COM рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ (рдиреНрдпреВ-рдСрдмреНрдЬреЗрдХреНрдЯ)
рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
рдкреАрдПрд╕рдХрд╕реНрдЯрдордСрдмреНрдЬреЗрдХреНрдЯ рдЯрд╛рдЗрдк рдХрд░реЗрдВ
рдЕрдкрдиреА рдЦреБрдж рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдирд╛

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

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

рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦрдирд╛

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЧреЗрдЯ-рдкреНрд░реЛрд╕реЗрд╕ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдЪрд▓рд╛рдПрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

Get-Process | Get-Member

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

Get-Process | Get-Member -MemberType Property

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

рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЫрд╛рдирдирд╛

PowerShell рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИрдВ:

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

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

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

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рдпрд╣рд╛рдВ рд╣рдо рдлрд┐рд░ рд╕реЗ рдПрдХ рдкрд╛рдареНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ:

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

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛

рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░рддреЗ рд╕рдордп, рдЕрдХреНрд╕рд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕реЙрд░реНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдо (рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпрд╛рдБ) рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдорд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдСрд░реНрдбрд░ рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╕реАрдкреАрдпреВ рджреНрд╡рд╛рд░рд╛ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╕рдордп (рд╕реАрдкреАрдпреВ рдкреНрд░реЙрдкрд░реНрдЯреА) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:

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

рд╕реЙрд░реНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп -рдкреНрд░реЙрдкрд░реНрдЯреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░рд┐рд╡рд░реНрд╕ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, -рдЕрд╡рд░реЛрд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

Get-Process | Sort-Object cpu -Descending

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЙрдирдХреЗ рднрд╛рдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛

рд╕реЗрд▓реЗрдХреНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдЖрдкрдХреЛ -рдлрд░реНрд╕реНрдЯ рдпрд╛ -рд▓рд╛рд╕реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдпрд╛ рдЕрдВрдд рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдЖрдк рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдХреБрдЫ рдЧреБрдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдП рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦреЗрдВ рдХрд┐ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ RAM (WS рд╕рдВрдкрддреНрддрд┐) рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА 10 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

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

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

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

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

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

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реЗрд▓реЗрдХреНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ (-рдлрд░реНрд╕реНрдЯ 1) рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд╡рд▓ рджреЛ рдлрд╝реАрд▓реНрдб рд╣реИрдВ: рдЙрдирдХреЗ рдорд╛рди рдЧреЗрдЯ-рдкреНрд░реЛрд╕реЗрд╕ рд╕реАрдПрдордбреАрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдкрд╛рд░рд┐рдд рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдереЗред 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: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп cmdlet рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░, рдЖрдЗрдП рддреАрди рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВ:

рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП PowerShell рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

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

рд╕рдореВрд╣-рд╡рд╕реНрддреБ рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░реЗрдВ:

Group-Object PropertyName

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ -NoElement рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдореВрд╣реЛрдВ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрд╛рдп-рд╡рд╕реНрддреБ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝реАрд▓реНрдб рдорд╛рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рд░рд╛рдВрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ (рдпреЛрдЧ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдиреНрдпреВрдирддрдо, рдЕрдзрд┐рдХрддрдо рдпрд╛ рдФрд╕рдд рдорд╛рди рднреА рдкрд╛рддрд╛ рд╣реИ):

Measure-Object -Property PropertyName -Minimum -Maximum -Average -Sum

рдЖрдорддреМрд░ рдкрд░, рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рд╕реАрдПрдордбреАрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдХреНрд╕рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпреЛрдВ рдЖрд░рдВрдн, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЕрдВрдд рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рдеред

.NET рдФрд░ COM рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ (рдиреНрдпреВ-рдСрдмреНрдЬреЗрдХреНрдЯ)

.NET рдХреЛрд░ рдФрд░ COM рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдХрдИ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдШрдЯрдХ рд╣реИрдВ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВред System.Diagnostics.EventLog рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕реАрдзреЗ Windows PowerShell рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП -TypeName рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдиреНрдпреВ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:

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 рдХреЛрд░ рдХрдХреНрд╖рд╛рдПрдВ рд╕рд┐рд╕реНрдЯрдо рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВ: рдкрд╛рд╡рд░рд╢реЗрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП System.Diagnostics.EventLog рдХреЗ рдмрдЬрд╛рдп Diagnostics.EventLog рд▓рд┐рдЦрдирд╛ рдХрд╛рдлреА рд╕рд╣реА рд╣реИред

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

$AppLog | Get-Member -MemberType Method

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпрджрд┐ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ рддреЛ рдЗрд╕реЗ Clear() рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдлрд╝ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

$AppLog.Clear()

рдиреНрдпреВ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ 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

рдПрдХ рдордирдорд╛рдиреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдЦреБрдж рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреНрдпреВ-рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рдФрд░ рдмреЛрдЭрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ; рдЗрд╕ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рдмрд╛рд╣рд░реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред .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: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рдкреАрдПрд╕рдХрд╕реНрдЯрдордСрдмреНрдЬреЗрдХреНрдЯ рдЯрд╛рдЗрдк рдХрд░реЗрдВ

PowerShell рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрдИ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ, рдпрд╣ PSCustomObject рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЬреЛ рдПрдХ рдордирдорд╛рдиреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдиреНрдпреВ-рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реА рд╡рд╕реНрддреБ рдмрдирд╛рдирд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ, рд▓реЗрдХрд┐рди рдмреЛрдЭрд┐рд▓ рдФрд░ рдкреБрд░рд╛рдирд╛ рддрд░реАрдХрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:

$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: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

$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: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рдРрдб-рдореЗрдВрдмрд░ рд╕реАрдПрдордбреАрд▓реЗрдЯ рдЖрдкрдХреЛ "-рдореЗрдореНрдмрд░рдЯрд╛рдЗрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯрдореИрдереЛрдб" рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рди рдХреЗрд╡рд▓ рдЧреБрдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдП рдЧрдП $рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рддрд░реАрдХреЛрдВ рдХреЛ рднреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

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

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

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

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

рднрд╛рдЧ 1: рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреЙрд╡рд░рд╢реЗрд▓ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
рднрд╛рдЧ 2: рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреЙрд╡рд░рд╢реЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХрд╛ рдкрд░рд┐рдЪрдп
рднрд╛рдЧ 3: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдирд╛, рд╕реАрдПрдордбреАрд▓реЗрдЯ рдмрдирд╛рдирд╛

Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ