Windows PowerShell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреНрдпрд╛ рдЦрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ 4: рд╡рд╕реНрддреБрдУрдВ, рдХрд╕реНрдЯрдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛



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

рд╡рд┐рд╖рдп - рд╕реВрдЪреА:


PowerShell




ForEach-Object, Group-Object Measure-Object
.NET COM (New-Object)

PSCustomObject


PowerShell


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

рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрдВ


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



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

Get-Process | Get-Member



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

Get-Process | Get-Member -MemberType Property

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

рд╡рд╕реНрддреБ рдЫрд╛рдирдирд╛


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

Where-Object {   }

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

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



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

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



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


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

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

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

Get-Process | Sort-Object cpu -Descending



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


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

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

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



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

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

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

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



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

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



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

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



рдЖрдЗрдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦреЗрдВ:

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



рдлреЙрд░рдПрдЪ-рдСрдмреНрдЬреЗрдХреНрдЯ, рдЧреНрд░реБрдк-рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдорд╛рдк-рдСрдмреНрдЬреЗрдХреНрдЯ


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

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

ForEach-Object {   }

рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣-рд╡рд╕реНрддреБ рд╕рдореВрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ:

Group-Object PropertyName

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

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

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

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

.NET рдФрд░ COM рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ (рдирдИ-рд╡рд╕реНрддреБ)


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

New-Object -TypeName System.Diagnostics.EventLog



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

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



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

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

$AppLog | Get-Member -MemberType Method



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

$AppLog.Clear()

рдирдИ-рд╡рд╕реНрддреБ cmdlet рдХрд╛ рдЙрдкрдпреЛрдЧ COM рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХрд╛рдлреА рд╕рд╛рд░реЗ рд╣реИрдВ - Windows рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ 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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рдмрд╛рд╣рд░реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдж рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред .NET рдФрд░ COM рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо CIM (WMI) рдФрд░ ADSI рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдиреЗрдВрдЧреЗред

рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛


рдХреБрдЫ .NET рдХреЛрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ: рдЗрдирдореЗрдВ System.Environment рдФрд░ System.Math рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡реЗ рд╕реНрдерд┐рд░ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░ рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпреЗ рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдП рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЯрд╛рдЗрдк рдирд╛рдо рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реБрдП рд╢рд╛рдмреНрджрд┐рдХ рд╢реНрд░реЗрдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк Get-Member рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо System.Environment рдХреЗ рдмрдЬрд╛рдп System.RuntimeType рдкреНрд░рдХрд╛рд░ рджреЗрдЦреЗрдВрдЧреЗред

[System.Environment] | Get-Member



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

[System.Environment] | Get-Member -Static



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

[System.Environment]::OSVersion

рдпрд╛

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



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


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

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

рдЖрдЗрдП рд╡рд╕реНрддреБ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦреЗрдВ:

$object | Get-Member



PowerShell 3.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдПрдХ рдФрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЙрдкрд▓рдмреНрдз рд╣реИ:

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

рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

$object.Name

$object.'Name'

$value = 'Name'
$object.$value

рдпрд╣рд╛рдВ рдореМрдЬреВрджрд╛ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

$hash = @{'Name'='Ivan Danko'; 'City'='Moscow'; 'Country'='Russia'}
$hash.GetType()
$object = [pscustomobject]$hash
$object.GetType()



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

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

рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдКрдкрд░ рд╣рдордиреЗ Select-Object cmdlet рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдВрдЪ рдХреА ред рдпрд╣ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

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



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

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

рдиреЛрдЯ: рдирдИ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ ScriptBlock рдкреНрд░рдХрд╛рд░ рдХреЗ $ ScriptBlock рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред



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

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

рдЕрдкрдиреА рдЦреБрдж рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдирд╛


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

class MyClass
{
    #  
}

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

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

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

$object = New-Object -TypeName MyClass

рдпрд╛

$object = [MyClass]::new()

рдЖрдЗрдП рд╣рдо рд╡рд╕реНрддреБ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:

$object | Get-Member



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

рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рднрд░реЗрдВ:

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



рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг рдореЗрдВ рди рдХреЗрд╡рд▓ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рднреА рд╣реИрдВ:

class Example
{
     [string]$Name = 'John Doe'
}

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

class MyClass 
{
     [string]$Name
     [string]$City
     [string]$Country
     
     # 
     Smile([bool]$param1)
     {
         If($param1) {
            Write-Host ':)'
         }
     }
}

рдЕрдм рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдореБрд╕реНрдХреБрд░рд╛рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ:

$object = [MyClass]::new()
$object.Smile($true)

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

class MyClass2 : MyClass
{
      #  ,     MyClass
}
[MyClass2]::new().Smile($true)

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



1: Windows PowerShell
2: Windows PowerShell
3: ,


All Articles