Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบเบฒเบ™เบชเบปเปˆเบ‡เบญเบญเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ•เบปเบงเปเบ›เบžเบฒเบชเบฒ PowerShell เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบงเบดเบ—เบตเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‚เบญเบ‡เบกเบฐเบ™เบธเบ”. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบงเบงเบฑเบ™เบžเบธเบ” เบฎเบฑเบ”เบเบธเบก เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ: cmdlets เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐ เบเบฑเบšเบ„เบทเบ™เบขเบนเปˆเบ—เบตเปˆเบ—เบฒเบ‡เบญเบญเบ, เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ•เบปเบงเปเบ›เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš เปเบฅเบฐเปƒเบ™เบชเบฐเบ„เบฃเบดเบšเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบซเป‰เบญเบ‡เบฎเบฝเบ™ .NET. เปƒเบ™เบšเบปเบ”เบ—เบตเบชเบตเปˆเบ‚เบญเบ‡เบŠเบธเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบถเบเบชเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบžเบฒเบชเบฒ:

เบงเบฑเบ”เบ–เบธเปƒเบ™ PowerShell
เป€เบšเบดเปˆเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ
เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบงเบฑเบ”เบ–เบธ
เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบงเบฑเบ”เบ–เบธ
เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบงเบฑเบ”เบ–เบธเปเบฅเบฐเบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
ForEach-Object, Group-Object เปเบฅเบฐ Measure-Object
เบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ .NET เปเบฅเบฐ COM (New-Object)
เป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™ static
เบžเบดเบก PSCustomObject
เบเบฒเบ™เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡

เบงเบฑเบ”เบ–เบธเปƒเบ™ PowerShell

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเบงเปˆเบฒเบงเบฑเบ”เบ–เบธเปเบกเปˆเบ™เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ (เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”, เป€เบซเบ”เบเบฒเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบžเบงเบเบกเบฑเบ™ (เบงเบดเบ—เบตเบเบฒเบ™). เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเบ›เบฐเป€เบžเบ”, เป€เบŠเบดเปˆเบ‡เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก .NET Core เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบš. เบกเบฑเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ COM, CIM (WMI) เปเบฅเบฐ ADSI. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†เบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™; เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบ™ PowerShell, เบงเบฑเบ”เบ–เบธเบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป€เบ›เบฑเบ™ argument เบเบฑเบš functions เปเบฅเบฐ cmdlets, เบกเบญเบšเบซเบกเบฒเบเบ„เปˆเบฒเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบซเป‰เบเบฑเบšเบ•เบปเบงเปเบ›, เปเบฅเบฐเบเบฑเบ‡เบกเบต. เบเบปเบ™เป„เบเบเบฒเบ™เบ›เบฐเบเบญเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ (เบชเบฒเบเบชเบปเปˆเบ‡เบซเบผเบทเบ—เปเปˆ). เปเบ•เปˆเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบ—เปเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™เป„เบ›เบซเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›, เบงเบฑเบ”เบ–เบธเป‚เบ”เบเบงเบฑเบ”เบ–เบธ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ cmdlets เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบซเบผเบทเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡ เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปเบšเบšเบžเบดเป€เบชเบ”เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบ•เปˆเบฒเบ‡เป†เบเบฑเบšเบงเบฑเบ”เบ–เบธเปƒเบ™เบ—เปเปˆ: เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡, เบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡, เบเบฒเบ™เบˆเบฑเบ”เบเบธเปˆเบก, เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™. เบเบฒเบ™เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบกเบตเบ›เบฐเป‚เบซเบเบ”เบขเปˆเบฒเบ‡เบˆเบดเบ‡เบˆเบฑเบ‡: เบ—เบตเบกเบฎเบฑเบšเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปเบเบเบชเบฒเบเบ™เป‰เปเบฒเบ‚เบญเบ‡ bytes (เบ‚เปเป‰เบ„เบงเบฒเบก), เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบ”เบถเบ‡เบญเบญเบเบกเบฒเป„เบ”เป‰เบ‡เปˆเบฒเบเป‚เบ”เบเบเบฒเบ™เป‚เบ—เบซเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก.

เป€เบšเบดเปˆเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ

เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ cmdlet Get-Process, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš:

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบกเบฑเบ™เบˆเบฐเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบ„เบงเบฒเบกเบ„เบดเบ”เปƒเบ”เป†เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เป€เบžเบทเปˆเบญเบ›เบฑเบšเปเบ•เปˆเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ, เปเบฅเบฐ Get-Member cmdlet เบˆเบฐเบŠเปˆเบงเบเบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰:

Get-Process | Get-Member

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบ›เบฐเป€เบžเบ”เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เปเบฅเบฐเบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเบฐเปเบ”เบ‡เบžเบฝเบ‡เปเบ•เปˆเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™:

Get-Process | Get-Member -MemberType Property

เบ„เบงเบฒเบกเบฎเบนเป‰เบ™เบตเป‰เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™เปเบšเบšเป‚เบ•เป‰เบ•เบญเบšเบซเบผเบทเบ‚เบฝเบ™เบชเบฐเบ„เบดเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡: เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ hung เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡.

เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบงเบฑเบ”เบ–เบธ

PowerShell เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ—เบตเปˆโ€‹เบ•เบญเบšโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบœเปˆเบฒเบ™โ€‹เบ—เปเปˆโ€‹เป„เบ”เป‰โ€‹:

Where-Object { ะฑะปะพะบ ัั†ะตะฝะฐั€ะธั }

เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบšเบฅเบฑเบญเบเบชเบฐเบ„เบฃเบดเบšเบžเบฒเบเปƒเบ™เบงเบปเบ‡เป€เบฅเบฑเบšเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒ boolean. เบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡ ($true), เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ›เป‰เบญเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เบซเบฒ Where-Object cmdlet เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบ—เปเปˆเบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ ($false) เบกเบฑเบ™เบˆเบฐเบ–เบทเบเบฅเบถเบšเบญเบญเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰เบชเบฐเปเบ”เบ‡เบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ Windows Server เบ—เบตเปˆเบขเบธเบ”, i.e. เบœเบนเป‰โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ•เบฑเป‰เบ‡โ€‹เป€เบ›เบฑเบ™ "เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹เบเบฒเบ™โ€‹"โ€‹:

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบญเบตเบเป€เบ—เบทเปˆเบญ เปœเบถเปˆเบ‡ เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบ•เบปเบงเปœเบฑเบ‡เบชเบท, เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ›เบฐเป€เบžเบ”เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบœเปˆเบฒเบ™เบ—เปเปˆเบ™เบฑเป‰เบ™เบšเปเปˆเบเบฒเบ:

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบงเบฑเบ”เบ–เบธ

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ—เปเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ, เบกเบฑเบเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบˆเบฑเบ”เบฅเบฝเบ‡เบชเบดเปˆเบ‡เบ‚เบญเบ‡. cmdlet เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡-เบงเบฑเบ”เบ–เบธเปเบกเปˆเบ™เบœเปˆเบฒเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” (เบเบฐเปเบˆเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡) เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบˆเบฑเบ”เบฎเบฝเบ‡เบ•เบฒเบกเบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™. เบกเบฑเบ™โ€‹เบ‡เปˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบˆเบฑเบ”โ€‹เบฅเบฝเบ‡โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เปเบฅเปˆเบ™โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒ CPU (เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ” CPUโ€‹)โ€‹:

Get-Process | Sort-Object โ€“Property cpu

เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต -Property เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™เป€เบกเบทเปˆเบญเป‚เบ—เบซเบฒ cmdlet เบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡ - เบงเบฑเบ”เบ–เบธ; เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เปเบšเบšเบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™, เปƒเบŠเป‰เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ -Descending:

Get-Process | Sort-Object cpu -Descending

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบงเบฑเบ”เบ–เบธเปเบฅเบฐเบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ

Select-Object cmdlet เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฅเบทเบญเบเบˆเปเบฒเบ™เบงเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™ เบซเบผเบทเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ—เปเปˆเปƒเบ”เปœเบถเปˆเบ‡เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ -First เบซเบผเบท -Last. เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบงเบฑเบ”เบ–เบธเบ”เบฝเบงเบซเบผเบทเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เปเบฅเบฐเบเบฑเบ‡เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเปƒเบซเบกเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบžเบงเบเบกเบฑเบ™. เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ cmdlet เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเป†.

เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš 10 เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเบฅเบดเป‚เบžเบเบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ RAM (เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” WS):

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบžเบฝเบ‡เปเบ•เปˆเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบœเปˆเบฒเบ™เบ—เปเปˆเบ™เบฑเป‰เบ™ เปเบฅเบฐเบชเป‰เบฒเบ‡เบญเบฑเบ™เปƒเปเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบžเบงเบเบกเบฑเบ™:

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

เป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ—เปเปˆ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบงเบฑเบ”เบ–เบธเปƒเบซเบกเปˆ, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ”เบ Get-Process cmdlet. เบกเบฒเบเบงเบ”เบชเบญเบšเบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰ Get-Member:

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ Select-Object เบชเบปเปˆเบ‡เบ„เบทเบ™เบงเบฑเบ”เบ–เบธเบ”เบฝเบง (-First 1) เบ—เบตเปˆเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰: เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ„เบฑเบ”เบฅเบญเบเบˆเบฒเบเบงเบฑเบ”เบ–เบธเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เปเปˆเป‚เบ”เบ Get-Process cmdlet. เบงเบดเบ—เบตเปœเบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเปƒเบ™เบชเบฐเบ„เบฃเบดเบš PowerShell เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เปƒเบŠเป‰ Select-Object:

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Select-Object, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™ เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ hash. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบเบธเบ™เปเบˆเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบเบปเบ‡เบเบฑเบšเบŠเบทเปˆเบŠเบฑเบšเบชเบดเบ™, เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบเบธเบ™เปเบˆเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเบŠเบฑเบšเบชเบดเบ™เบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เปเปˆเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™:

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: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

ForEach-Object, Group-Object เปเบฅเบฐ Measure-Object

เบกเบต cmdlets เบญเบทเปˆเบ™เป†เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบชเบฒเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”:

เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปเบฅเปˆเบ™เบฅเบฐเบซเบฑเบ” PowerShell เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบงเบฑเบ”เบ–เบธเปƒเบ™เบ—เปเปˆ:

ForEach-Object { ะฑะปะพะบ ัั†ะตะฝะฐั€ะธั }

เบเบธเปˆเบก-เบงเบฑเบ”เบ–เบธ เบˆเบฑเบ”เบเบธเปˆเบกเบงเบฑเบ”เบ–เบธเบ•เบฒเบกเบกเบนเบ™เบ„เปˆเบฒเบŠเบฑเบšเบชเบดเบ™:

Group-Object PropertyName

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ -NoElement, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบˆเปเบฒเบ™เบงเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ™เบเบธเปˆเบก.

เบงเบฑเบ”โ€‹เบ–เบธ - เบงเบฑเบ”โ€‹เบ–เบธ เบฅเบงเบกเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฐเบซเบผเบธเบšเบ•เปˆเบฒเบ‡เป†เป‚เบ”เบเบ„เปˆเบฒเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบงเบฑเบ”เบ–เบธเปƒเบ™เบ—เปเปˆ (เบ„เปเบฒเบ™เบงเบ™เบœเบปเบ™เบฅเบงเบก, เปเบฅเบฐเบเบฑเบ‡เบŠเบญเบเบซเบฒเบ„เปˆเบฒเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ, เบชเบนเบ‡เบชเบธเบ”เบซเบผเบทเบชเบฐเป€เบฅเปˆเบ):

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

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, cmdlets เบ—เบตเปˆเบชเบปเบ™เบ—เบฐเบ™เบฒเปเบกเปˆเบ™เปƒเบŠเป‰เปเบšเบšเป‚เบ•เป‰เบ•เบญเบš, เปเบฅเบฐเบกเบฑเบเบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เบชเบฐเบ„เบดเบš. เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒ เบ”เป‰เบงเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเบชเบดเป‰เบ™เบชเบธเบ”เบ•เบฑเบ™.

เบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ .NET เปเบฅเบฐ COM (New-Object)

เบกเบตเบซเบผเบฒเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบŠเบญเบšเปเบงเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆ .NET Core เปเบฅเบฐ COM เบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบฅเบฐเบšเบปเบš. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบฎเบฝเบ™ System.Diagnostics.EventLog, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป‚เบ”เบเบเบปเบ‡เบˆเบฒเบ Windows PowerShell. เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡ instance เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰ New-Object cmdlet เบ—เบตเปˆเบกเบต -TypeName parameter:

New-Object -TypeName System.Diagnostics.EventLog

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบšเบฑเบ™เบ—เบถเบเป€เบซเบ”เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ, เบ•เบปเบงเบขเปˆเบฒเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™. เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบžเบดเป€เบชเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ -ArgumentList parameter. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบ™เบˆเบฐเบœเปˆเบฒเบ™เบชเบฒเบ "Application" เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบšเบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡:

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› $AppLog. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, เบเบฒเบ™เบ‚เบฝเบ™เบชเบฐเบ„เบดเบšเบกเบฑเบเบˆเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบฎเบฑเบเบชเบฒเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบงเบฑเบ”เบ–เบธ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเป‰เบญเบ‡เบฎเบฝเบ™ .NET Core เบซเบผเบฑเบเปเบกเปˆเบ™เบšเบฑเบ™เบˆเบธเบขเบนเปˆเปƒเบ™ System namespace: PowerShell เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบŠเบญเบเบซเบฒเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบกเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ‚เบฝเบ™ Diagnostics.EventLog เปเบ—เบ™ System.Diagnostics.EventLog เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบšเบฑเบ™เบ—เบถเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก:

$AppLog | Get-Member -MemberType Method

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบฅเบถเบšเบฅเป‰เบฒเบ‡เป‚เบ”เบเบงเบดเบ—เบต Clear() เบ–เป‰เบฒเบกเบตเบชเบดเบ”เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡:

$AppLog.Clear()

New-Object cmdlet เบเบฑเบ‡เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบš COM. เบกเบตเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ - เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบชเบฐเบ„เบดเบš Windows เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ ActiveX, เป€เบŠเบฑเปˆเบ™ Internet Explorer. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ COM, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต -ComObject เบ”เป‰เบงเบเป‚เบ›เปเบเบก ProgId เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™:

New-Object -ComObject WScript.Shell
New-Object -ComObject WScript.Network
New-Object -ComObject Scripting.Dictionary
New-Object -ComObject Scripting.FileSystemObject

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบ”เป‰เบงเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ•เบปเบ™เป€เบญเบ‡เบกเบฑเบ, เบเบฒเบ™เปƒเบŠเป‰ New-Object เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบเบปเปˆเบฒเปเบเปˆ เปเบฅเบฐเบซเบเบธเป‰เบ‡เบเบฒเบเป€เบเบตเบ™เป„เบ›; cmdlet เบ™เบตเป‰เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบŠเบญเบšเปเบงเบžเบฒเบเบ™เบญเบเบ‚เบญเบ‡ PowerShell. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบงเบฑเบ”เบ–เบธ .NET เปเบฅเบฐ COM, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเบฐเบชเบณเบซเบผเบงเบ”เบงเบฑเบ”เบ–เบธ CIM (WMI) เปเบฅเบฐ ADSI.

เป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™ static

เบšเบฒเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™ .NET Core เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เบ—เบฑเบ™เบ—เบต, เบฅเบงเบกเบ—เบฑเบ‡ System.Environment เปเบฅเบฐ System.Math. เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เปเบกเปˆเบ™ เบชเบฐเบ–เบดเบ” เปเบฅเบฐเบ›เบฐเบเบญเบšเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” static เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡ static class เบœเปˆเบฒเบ™เบ•เบปเบงเปœเบฑเบ‡เบชเบทเป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆเบŠเบทเปˆเบ›เบฐเป€เบžเบ”เปƒเบ™เบงเบปเบ‡เป€เบฅเบฑเบšเบชเบตเปˆเบซเบผเปˆเบฝเบก. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเป‚เบ”เบเปƒเบŠเป‰ Get-Member, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบ›เบฐเป€เบžเบ” System.RuntimeType เปเบ—เบ™ System.Environment:

[System.Environment] | Get-Member

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบชเบฐเป€เบžเบฒเบฐเบชเบฐเบกเบฒเบŠเบดเบเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ, เป‚เบ—เบซเบฒ Get-Member เบ”เป‰เบงเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต -Static (เปเบฒเบเป€เบซเบ”เบ›เบฐเป€เบžเบ”เบงเบฑเบ”เบ–เบธ):

[System.Environment] | Get-Member -Static

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบชเบฐเบ–เบดเบ”, เปƒเบซเป‰เปƒเบŠเป‰เบชเบญเบ‡เบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”เบ•เบดเบ”เบ•เปเปˆเบเบฑเบ™เปเบ—เบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ•เบปเบงเปœเบฑเบ‡เบชเบท:

[System.Environment]::OSVersion

Or

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบžเบดเบก PSCustomObject

เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบ”เบฒโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปƒเบ™ PowerShellโ€‹, เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบเปˆเบฒเบงโ€‹เป€เบ–เบดเบ‡ PSCustomObjectโ€‹, เบญเบญเบโ€‹เปเบšเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เป‚เบ„เบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹. เบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป‚เบ”เบเปƒเบŠเป‰ New-Object cmdlet เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ„เบฅเบฒเบชเบชเบดเบ, เปเบ•เปˆเบซเบเบธเป‰เบ‡เบเบฒเบ เปเบฅเบฐเบฅเป‰เบฒเบชเบฐเป„เบซเบก:

$object = New-Object  โ€“TypeName PSCustomObject -Property @{Name = 'Ivan Danko'; 
                                          City = 'Moscow';
                                          Country = 'Russia'}

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ:

$object | Get-Member

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เป‚เบ”เบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ PowerShell 3.0, syntax เบญเบทเปˆเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰:

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

เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปƒเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบฝเบšโ€‹เป€เบ—เบปเปˆเบฒโ€‹:

$object.Name

$object.'Name'

$value = 'Name'
$object.$value

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™ hashtable เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเป€เบ›เบฑเบ™เบงเบฑเบ”เบ–เบธ:

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

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰. เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ [ordered] attribute:

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

เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ: เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เป‚เบ”เบเปƒเบŠเป‰ cmdlet เป€เบฅเบทเบญเบเบงเบฑเบ”เบ–เบธ. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ„เบดเบ”เบญเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเปเบฅเบฐเบฅเบปเบšเบญเบปเบ‡เบ›เบฐเบเบญเบš. เบเบฒเบ™เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบˆเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ:

$object | Add-Member โ€“MemberType NoteProperty โ€“Name Age  โ€“Value 33
$object | Get-Member

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

Add-Member cmdlet เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบžเบตเปˆเบกโ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบšเปเปˆโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹, เปเบ•เปˆโ€‹เบเบฑเบ‡โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบเบฑเบš $object เบ—เบตเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบเปˆเบญเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ™เบตเป‰โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ "-MemberType ScriptMethod" construct:

$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 เป„เบ”เป‰เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ” เบซเป‰เบญเบ‡เบฎเบฝเบ™ เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฑเบเบชเบฐเบ™เบฐ syntax เบ‚เบญเบ‡เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบšเบงเบฑเบ”เบ–เบธ. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ„เปเบฒเบ—เบตเปˆเปƒเบŠเป‰ Class เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เปเบฅเบฐเบญเบฐเบ—เบดเบšเบฒเบเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบงเบปเบ‡เป€เบฅเบฑเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™:

class MyClass
{
    # ั‚ะตะปะพ ะบะปะฐััะฐ
}

เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเป€เบžเบ” .NET Core เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เบกเบตเป€เบ™เบทเป‰เบญเปƒเบ™เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”, เบงเบดเบ—เบตเบเบฒเบ™, เปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบญเบทเปˆเบ™เป†เบ‚เบญเบ‡เบกเบฑเบ™. เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”:

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

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ object (class instance), เปƒเบŠเป‰ cmdlet New-Object, เบซเบผเบทเบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” [MyClass] เปเบฅเบฐ เบงเบดเบ—เบตเบเบฒเบ™ pseudostatic เปƒเปเปˆ (เบ•เบปเบงเบชเป‰เบฒเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™):

$object = New-Object -TypeName MyClass

เบซเบผเบท

$object = [MyClass]::new()

เปƒเบซเป‰เบงเบดเป€เบ„เบฒเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ:

$object | Get-Member

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เบขเปˆเบฒเบฅเบทเบกเบเปˆเบฝเบงเบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ”: เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเป‰เบฒเบ‡เบญเบตเบ‡เปƒเบชเปˆเบŠเบทเปˆเบ›เบฐเป€เบžเบ”เป€เบ›เบฑเบ™ string เบซเบผเบทเปƒเบŠเป‰เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบ›เบฐเป€เบžเบ”เบ™เบญเบ script เบซเบผเบทเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰, functions can return class instances (objects) which will be accessible outside the module or script.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ, เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปƒเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™:

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

เบงเบดเบ—เบตเบเบฒเบ™เบชเบฒเบกเบฒเบ” overloaded; เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบกเบต เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเบ–เบดเบ” เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบเบปเบ‡เบเบฑเบšเบŠเบทเปˆเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบชเบฐเบ„เบฃเบดเบš เบซเบผเบท เป‚เบกเบ”เบนเบ™ PowerShell เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเบณเบฅเบฑเบšเบญเบฑเบ™เบญเบทเปˆเบ™เป„เบ”เป‰ - เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบทเบšเบ—เบญเบ”. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เบกเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบŠเบฑเป‰เบ™ .NET เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปเบฅเป‰เบงโ€‹เป€เบ›เบฑเบ™โ€‹เบ‚เบฑเป‰เบ™โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹:

class MyClass2 : MyClass
{
      #ั‚ะตะปะพ ะฝะพะฒะพะณะพ ะบะปะฐััะฐ, ะฑะฐะทะพะฒั‹ะผ ะดะปั ะบะพั‚ะพั€ะพะณะพ ัะฒะปัะตั‚ัั MyClass
}
[MyClass2]::new().Smile($true)

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธเปƒเบ™ PowerShell เปเบกเปˆเบ™เป€เบเบทเบญเบšเบซเบกเบปเบ”. เปƒเบ™เบชเบดเปˆเบ‡เบžเบดเบกเบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเป€เบˆเบฒเบฐเป€เบฅเบดเบเบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”: เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเบซเป‰เบฒเปƒเบ™เบŠเบธเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบญเบธเบ—เบดเบ”เปƒเบซเป‰เบเบฑเบšเบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบก PowerShell เบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบŠเบญเบšเปเบงเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก. เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบชเบฒเบกเบฒเบ”เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบชเปˆเบงเบ™เบ—เบต 1: เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ Windows PowerShell
เบชเปˆเบงเบ™เบ—เบต 2: เบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบก Windows PowerShell
เบชเปˆเบงเบ™เบ—เบต 3: เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป„เบ›เบเบฑเบ‡เบชเบฐเบ„เบฃเบดเบš เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ•เปˆเบฒเบ‡เป†, เบเบฒเบ™เบชเป‰เบฒเบ‡ cmdlets

Windows PowerShell เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบเบฑเบ‡? เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธ, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™