Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

PowerShell စကာသပဌန်ဝင်သဒိုသရဟိ အမိန့်စာမျာသ၏ စာသာသအထလက်သည် လူသာသ၏ခံယူချက်အတလက် သင့်လျော်သောပုံစံဖဌင့် အချက်အလက်မျာသကို ပဌသရန်နည်သလမ်သတစ်ခုမျဟသာဖဌစ်သည်။ တကယ်တော့ ဗုဒ္ဓဟူသနေ့ ညသတည်သည်။ အရာဝတ္ထုမျာသနဟင့် လုပ်ဆောင်ရန်- cmdlets နဟင့် functions မျာသသည် ၎င်သတို့အာသ input အဖဌစ် လက်ခံရယူသည်။ ထလက်ပေါက်မဟာပဌန်လာတယ်။နဟင့် အပဌန်အလဟန်အကျိုသပဌုနိုင်သော ကလဲပဌာသသောအမျိုသအစာသမျာသနဟင့် scripts မျာသတလင် .NET အတန်သမျာသကို အခဌေခံထာသသည်။ စီသရီသ၏စတုတ္ထဆောင်သပါသတလင်၊ အရာဝတ္ထုမျာသနဟင့်လုပ်ဆောင်ခဌင်သကိုပိုမိုအသေသစိတ်လေ့လာပါမည်။

မာတိကာ:

PowerShell ရဟိ အရာဝတ္ထုမျာသ
အရာဝတ္ထုမျာသ၏ဖလဲ့စည်သပုံကိုကဌည့်ရဟုခဌင်သ။
အရာဝတ္ထုမျာသကို စစ်ထုတ်ခဌင်သ။
အရာဝတ္ထုမျာသကို စီခဌင်သ။
အရာဝတ္ထုမျာသနဟင့် ၎င်သတို့၏ အစိတ်အပိုင်သမျာသကို ရလေသချယ်ခဌင်သ။
ForEach-Object၊ Group-Object နဟင့် Measure-Object
.NET နဟင့် COM အရာဝတ္ထုမျာသ ဖန်တီသခဌင်သ (New-Object)
Static Methods မျာသ ခေါ်ဆိုခဌင်သ။
PSCustomObject ဟု ရိုက်ထည့်ပါ။
သင်၏ကိုယ်ပိုင်အတန်သမျာသဖန်တီသခဌင်သ။

PowerShell ရဟိ အရာဝတ္ထုမျာသ

အရာဝတ္ထုတစ်ခုသည် ဒေတာအကလက်မျာသ (Properties, Events, etc.) နဟင့် ၎င်သတို့ကို လုပ်ဆောင်ရန် နည်သလမ်သမျာသ (methods) မျာသ အစုအဝေသတစ်ခုဖဌစ်ကဌောင်သ သတိရကဌပါစို့။ ၎င်သ၏ဖလဲ့စည်သပုံအာသ အမျိုသအစာသတစ်ခုအာသဖဌင့် သတ်မဟတ်ထာသသည်၊ ၎င်သသည် အမျာသအာသဖဌင့် တစ်စုတစ်စည်သတည်သ .NET Core ပလပ်ဖောင်သတလင် အသုံသပဌုသည့် အတန်သမျာသပေါ်တလင် အခဌေခံသည်။ COM၊ CIM (WMI) နဟင့် ADSI အရာဝတ္ထုမျာသနဟင့်လည်သ လုပ်ဆောင်နိုင်သည်။ ဒေတာမျာသပေါ်တလင် အမျိုသမျိုသသော လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်ရန်အတလက် Properties နဟင့် Method မျာသ လိုအပ်သည်၊ ထို့အပဌင် PowerShell တလင် အရာဝတ္ထုမျာသကို လုပ်ဆောင်ချက်မျာသနဟင့် cmdlets မျာသသို့ အကဌောင်သပဌချက်မျာသအဖဌစ် ပေသပို့နိုင်ပဌီသ၊ ၎င်သတို့၏ တန်ဖိုသမျာသကို ကိန်သရဟင်မျာသသို့ သတ်မဟတ်ပေသကာ လည်သရဟိပါသည်။ အမိန့်ပေသဖလဲ့စည်သမဟုယန္တရာသ (conveyor သို့မဟုတ် pipeline)။ ပိုက်လိုင်သရဟိ command တစ်ခုစီသည် ၎င်သ၏ output ကို နောက်တစ်ခုသို့ လလဟဲသလာသသည်၊ အရာဝတ္ထုအလိုက် အရာဝတ္ထုတစ်ခုစီကို အလဟည့်တလင် ပေသပို့သည်။ လုပ်ဆောင်ရန်အတလက် သင်သည် စုစည်သထာသသော cmdlets ကိုသုံသနိုင်သည် သို့မဟုတ် သင့်ကိုယ်ပိုင်ဖန်တီသနိုင်သည်။ အဆင့်မဌင့်အင်္ဂါရပ်မျာသပိုက်လိုင်သရဟိ အရာဝတ္ထုမျာသနဟင့် အမျိုသမျိုသသော ခဌယ်လဟယ်မဟုမျာသကို လုပ်ဆောင်ရန်- စစ်ထုတ်ခဌင်သ၊ စီခဌင်သ၊ အုပ်စုဖလဲ့ခဌင်သနဟင့် ၎င်သတို့၏ ဖလဲ့စည်သပုံကို ပဌောင်သလဲခဌင်သပင်။ ကဖောင်တလင် ဒေတာပေသပို့ခဌင်သတလင် လေသနက်သောအာသသာချက်တစ်ခုရဟိသည်- လက်ခံရေသအဖလဲ့သည် ဘိုက်စီသကဌောင်သ (စာသာသ) ကို ခလဲခဌမ်သစိတ်ဖဌာရန် မလိုအပ်ပါ၊ သင့်လျော်သော ဂုဏ်သတ္တိမျာသနဟင့် နည်သလမ်သမျာသကို ခေါ်ဆိုခဌင်သဖဌင့် လိုအပ်သော အချက်အလက်အာသလုံသကို အလလယ်တကူ ရယူနိုင်သည်။

အရာဝတ္ထုမျာသ၏ဖလဲ့စည်သပုံကိုကဌည့်ရဟုခဌင်သ။

ဥပမာအာသဖဌင့်၊ သင်သည် စနစ်တလင် လုပ်ဆောင်နေသည့် လုပ်ငန်သစဉ်မျာသအကဌောင်သ အချက်အလက်မျာသကို ရယူရန် ခလင့်ပဌုသည့် Get-Process cmdlet ကို ဖလင့်ကဌပါစို့။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

ပဌန်ပေသထာသသော အရာဝတ္ထုမျာသ၏ ဂုဏ်သတ္တိမျာသနဟင့် ၎င်သတို့၏ နည်သလမ်သမျာသအကဌောင်သ တစ်စုံတစ်ရာ အကဌံဥာဏ်မပေသသော ဖော်မတ်လုပ်ထာသသော စာသာသဒေတာအချို့ကို ပဌသပါမည်။ အထလက်အာသ ချိန်ညဟိရန်၊ ကျလန်ုပ်တို့သည် အရာဝတ္ထုမျာသ၏ ဖလဲ့စည်သပုံကို ဆန်သစစ်နည်သကို လေ့လာရန် လိုအပ်ပဌီသ Get-Member cmdlet သည် ၎င်သကို ကူညီပေသပါမည်-

Get-Process | Get-Member

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

ကနေရာတလင် ကျလန်ုပ်တို့သည် အမျိုသအစာသနဟင့် ဖလဲ့စည်သပုံကို မဌင်ထာသပဌီသသာသဖဌစ်ပဌီသ၊ အပိုဘောင်ဘောင်မျာသ၏အကူအညီဖဌင့် ဥပမာအာသဖဌင့်၊ ထည့်သလင်သမဟုတလင်ပါဝင်သော အရာဝတ္ထုမျာသ၏ ဂုဏ်သတ္တိမျာသကိုသာ ပဌသနိုင်သည်-

Get-Process | Get-Member -MemberType Property

စီမံခန့်ခလဲရေသဆိုင်ရာပဌဿနာမျာသကို အပဌန်အလဟန်တုံ့ပဌန်ဖဌေရဟင်သရန် သို့မဟုတ် သင့်ကိုယ်ပိုင် script မျာသရေသသာသရန် ကအသိပညာလိုအပ်ပါမည်- ဥပမာ၊ တုံ့ပဌန်ခဌင်သဆိုင်ရာပိုင်ဆိုင်မဟုကို အသုံသပဌု၍ ချိတ်ဆလဲထာသသည့်လုပ်ငန်သစဉ်မျာသအကဌောင်သ အချက်အလက်ရယူရန်။

အရာဝတ္ထုမျာသကို စစ်ထုတ်ခဌင်သ။

PowerShell သည် သတ်မဟတ်ထာသသော အခဌေအနေနဟင့် ကိုက်ညီသည့် အရာဝတ္ထုမျာသကို ပိုက်လိုင်သမဟတဆင့် ဖဌတ်သန်သခလင့်ပဌုသည်-

Where-Object { блПк сцеМарОя }

ကလင်သအတလင်သ script block ကို လုပ်ဆောင်ခဌင်သ၏ရလဒ်သည် boolean တန်ဖိုသဖဌစ်ရပါမည်။ အမဟန် ($true)၊ Where-Object cmdlet တလင် ထည့်သလင်သထာသသော အရာအာသ ပိုက်လိုင်သတစ်လျဟောက် ဖဌတ်သလာသမည်ဖဌစ်ပဌီသ၊ သို့မဟုတ်ပါက ($false) ၎င်သကို ဖျက်သလာသပါမည်။ ဥပမာအာသဖဌင့်၊ ရပ်တန့်ထာသသော Windows Server ဝန်ဆောင်မဟုမျာသစာရင်သကို ဖော်ပဌကဌပါစို့။ အဆင့်အတန်သ ပိုင်ဆိုင်မဟုကို “ရပ်လိုက်သည်” ဟု သတ်မဟတ်ခံရသူမျာသ-

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

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

ကနေရာတလင် ကျလန်ုပ်တို့သည် စာသာသကိုယ်စာသပဌုမဟုကို ထပ်မံတလေ့မဌင်ရသော်လည်သ၊ ပိုက်လိုင်သမဟတစ်ဆင့် ဖဌတ်သန်သသလာသသော အရာဝတ္ထုမျာသ၏ အမျိုသအစာသနဟင့် အတလင်သပိုင်သဖလဲ့စည်သပုံကို နာသလည်လိုပါက ၎င်သသည် မခက်ပါပေ။

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

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

အရာဝတ္ထုမျာသကို စီခဌင်သ။

အရာဝတ္ထုမျာသကို ပိုက်လိုင်သဖဌင့် စီမံဆောင်ရလက်သည့်အခါ ၎င်သတို့ကို စီရန် လိုအပ်သည်။ Sort-Object cmdlet သည် ဂုဏ်သတ္တိမျာသ (sorting keys) မျာသ၏ အမည်မျာသကို ကျော်ဖဌတ်ပဌီသ ၎င်သတို့၏ တန်ဖိုသမျာသဖဌင့် စီထာသသော အရာမျာသကို ပဌန်ပေသသည်။ CPU အချိန် (cpu ပိုင်ဆိုင်မဟု) ဖဌင့် လုပ်ဆောင်နေသော လုပ်ငန်သစဉ်မျာသ၏ output ကို စီရန် လလယ်ကူသည် ။

Get-Process | Sort-Object –Property cpu

Sort-Object cmdlet ကိုခေါ်သောအခါ -Property parameter ကို ချန်လဟပ်ထာသနိုင်သည်၊ ၎င်သကို မူရင်သအတိုင်သအသုံသပဌုပါသည်။ ပဌောင်သပဌန်စီခဌင်သအတလက် -Descending parameter ကိုသုံသပါ-

Get-Process | Sort-Object cpu -Descending

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

အရာဝတ္ထုမျာသနဟင့် ၎င်သတို့၏ အစိတ်အပိုင်သမျာသကို ရလေသချယ်ခဌင်သ။

Select-Object cmdlet သည် -First သို့မဟုတ် -Last parameters မျာသကို အသုံသပဌု၍ ပိုက်လိုင်သတစ်ခု၏အစ သို့မဟုတ် အဆုံသတလင် သီသခဌာသအရာဝတ္ထုအရေအတလက်ကို ရလေသချယ်နိုင်စေပါသည်။ ၎င်သ၏အကူအညီဖဌင့် သင်သည် အရာဝတ္ထုတစ်ခုတည်သ သို့မဟုတ် အချို့သောဂုဏ်သတ္တိမျာသကို ရလေသချယ်နိုင်ပဌီသ ၎င်သတို့အပေါ်အခဌေခံ၍ အရာဝတ္ထုအသစ်မျာသကိုလည်သ ဖန်တီသနိုင်သည်။ ရိုသရဟင်သသောနမူနာမျာသကိုအသုံသပဌု၍ cmdlet မည်ကဲ့သို့အလုပ်လုပ်သည်ကိုကဌည့်ကဌပါစို့။

အောက်ပါ command သည် 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-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 scripts မျာသတလင် အရာဝတ္ထုမျာသ ဖန်တီသရန် နည်သလမ်သမျာသထဲမဟ တစ်ခုသည် 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- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

Conveyor မဟတဆင့် ဖဌတ်သန်သသလာသသော အရာဝတ္ထုမျာသ၏ ဖလဲ့စည်သပုံကို ကဌည့်ကဌပါစို့။

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

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

ForEach-Object၊ Group-Object နဟင့် Measure-Object

Object မျာသနဟင့် လုပ်ဆောင်ရန် အခဌာသသော cmdlets မျာသ ရဟိပါသည်။ ဥပမာအနေနဲ့၊ အသုံသဝင်ဆုံသ သုံသမျိုသအကဌောင်သ ပဌောကဌည့်ရအောင်။

တစ်ခုစီအတလက်ရည်ရလယ်သည် ပိုက်လိုင်သရဟိ အရာဝတ္တုတစ်ခုစီအတလက် PowerShell ကုဒ်ကို သင်လုပ်ဆောင်နိုင်သည်-

ForEach-Object { блПк сцеМарОя }

အုပ်စု-အရာဝတ္ထု ပစ္စည်သတန်ဖိုသအလိုက် အရာဝတ္ထုမျာသကို အုပ်စုဖလဲ့ပါ-

Group-Object PropertyName

၎င်သကို -NoElement parameter ဖဌင့် run ပါက၊ အုပ်စုမျာသရဟိ element အရေအတလက်ကို သင်ရဟာဖလေနိုင်သည်။

အတိုင်သအတာ-အရာဝတ္ထု ပိုက်လိုင်သရဟိ အရာဝတ္ထုအကလက်တန်ဖိုသမျာသအလိုက် အမျိုသမျိုသသော အကျဉ်သချုပ် ဘောင်မျာသကို ပေါင်သစည်သသည် (ပေါင်သလဒ်ကို တလက်ချက်ပဌီသ အနိမ့်ဆုံသ၊ အမဌင့်ဆုံသ သို့မဟုတ် ပျမ်သမျဟတန်ဖိုသကိုလည်သ ရဟာဖလေသည်)။

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

ပုံမဟန်အာသဖဌင့်၊ ဆလေသနလေသထာသသော cmdlets မျာသကို အပဌန်အလဟန်အကျိုသသက်ရောက်စလာ အသုံသပဌုကဌပဌီသ scripts မျာသတလင် ဖန်တီသလေ့ရဟိပါသည်။ လုပ်ငန်သဆောင်တာ Begin၊ Process နဟင့် End လုပ်ကလက်မျာသဖဌင့်။

.NET နဟင့် COM အရာဝတ္ထုမျာသ ဖန်တီသခဌင်သ (New-Object)

စနစ်စီမံခန့်ခလဲသူမျာသအတလက် အသုံသဝင်သော .NET Core နဟင့် COM အင်တာဖေ့စ်မျာသပါရဟိသော ဆော့ဖ်ဝဲအစိတ်အပိုင်သမျာသစလာရဟိပါသည်။ System.Diagnostics.EventLog အတန်သအစာသကို အသုံသပဌု၍ သင်သည် Windows PowerShell မဟ စနစ်မဟတ်တမ်သမျာသကို တိုက်ရိုက်စီမံခန့်ခလဲနိုင်သည်။ -TypeName parameter ဖဌင့် New-Object cmdlet ကို အသုံသပဌု၍ ကအတန်သ၏ instance တစ်ခုကို ဖန်တီသခဌင်သ၏ ဥပမာကို ကဌည့်ကဌပါစို့။

New-Object -TypeName System.Diagnostics.EventLog

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

တိကျသောဖဌစ်ရပ်မဟတ်တမ်သကို ကျလန်ုပ်တို့မသတ်မဟတ်ထာသသောကဌောင့်၊ အတန်သ၏ရလဒ်ဥပမာတလင် ဒေတာမပါဝင်ပါ။ ၎င်သကိုပဌောင်သလဲရန် -ArgumentList ပါရာမီတာကို အသုံသပဌု၍ ၎င်သ၏ဖန်တီသမဟုအတလင်သ အထူသတည်ဆောက်ရေသနည်သလမ်သကို သင်ခေါ်ဆိုရန် လိုအပ်သည်။ ကျလန်ုပ်တို့သည် အပလီကေသရဟင်သမဟတ်တမ်သကို ဝင်ရောက်လိုပါက၊ ကျလန်ုပ်တို့သည် တည်ဆောက်သူအာသ အကဌောင်သပဌချက်အဖဌစ် "Application" စာကဌောင်သကို ပေသပို့သင့်သည်-

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

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

$AppLog variable တလင် command ၏ output ကို သိမ်သဆည်သထာသကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။ ပိုက်လိုင်သမျာသကို အပဌန်အလဟန်အကျိုသသက်ရောက်မဟုမုဒ်တလင် အသုံသမျာသသော်လည်သ၊ script မျာသရေသသာသရာတလင် အရာဝတ္ထုတစ်ခုအာသ အကိုသအကာသထာသရဟိရန် လိုအပ်ပါသည်။ ထို့အပဌင်၊ core .NET Core အတန်သမျာသသည် System namespace တလင်ပါ၀င်သည်- PowerShell သည် ၎င်သတလင် သတ်မဟတ်ထာသသောအမျိုသအစာသမျာသကို ရဟာဖလေသည်၊ ထို့ကဌောင့် System.Diagnostics.EventLog အစာသ System.Diagnostics.EventLog ကိုရေသသာသခဌင်သသည် အတော်လေသမဟန်ကန်ပါသည်။

မဟတ်တမ်သနဟင့်အတူအလုပ်လုပ်ရန်၊ သင်သည်သင့်လျော်သောနည်သလမ်သမျာသကိုသုံသနိုင်သည်။

$AppLog | Get-Member -MemberType Method

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

ဝင်ရောက်ခလင့်အခလင့်အရေသမျာသရဟိပါက Clear() နည်သလမ်သဖဌင့် ရဟင်သလင်သသည်ဟု ဆိုကဌပါစို့။

$AppLog.Clear()

New-Object cmdlet ကို COM အစိတ်အပိုင်သမျာသနဟင့် အလုပ်လုပ်ရန်လည်သ အသုံသပဌုပါသည်။ ၎င်သတို့အမျာသအပဌာသရဟိသည် - Windows script server မဟပေသဆောင်သောစာကဌည့်တိုက်မျာသမဟ Internet Explorer ကဲ့သို့သော ActiveX အပလီကေသရဟင်သမျာသအထိ။ COM အရာဝတ္ထုတစ်ခုဖန်တီသရန်၊ သင်အလိုရဟိသောအတန်သ၏ ပရိုဂရမ်မာတစ် ProgId ဖဌင့် -ComObject ဘောင်ကို သတ်မဟတ်ရန် လိုအပ်သည်-

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

သင့်ကိုယ်ပိုင်အရာဝတ္တုမျာသကို မတရာသဖလဲ့စည်သပုံဖဌင့်ဖန်တီသရန်၊ New-Object ကိုအသုံသပဌုခဌင်သသည် ရဟေသရိုသဆန်ပဌီသ ခက်ခဲလလန်သပုံပေါ်သည်၊ က cmdlet ကို PowerShell ပဌင်ပဆော့ဖ်ဝဲလ်အစိတ်အပိုင်သမျာသနဟင့်အလုပ်လုပ်ရန်အသုံသပဌုသည်။ နောင်ဆောင်သပါသမျာသတလင် ကပဌဿနာကို ပိုမိုအသေသစိတ်ဆလေသနလေသပါမည်။ .NET နဟင့် COM အရာဝတ္တုမျာသအပဌင်၊ ကျလန်ုပ်တို့သည် CIM (WMI) နဟင့် ADSI အရာဝတ္ထုမျာသကို စူသစမ်သလေ့လာပါမည်။

Static Methods မျာသ ခေါ်ဆိုခဌင်သ။

System.Environment နဟင့် System.Math အပါအဝင် အချို့သော .NET Core အတန်သမျာသသည် ချက်ချင်သလုပ်ဆောင်၍မရပါ။ သူတို့က အငဌိမ် နဟင့် တည်ငဌိမ်ဂုဏ်သတ္တိမျာသနဟင့် နည်သလမ်သမျာသသာ ပါရဟိသည်။ ၎င်သတို့သည် အရာဝတ္ထုမျာသကို ဖန်တီသခဌင်သမပဌုဘဲ အသုံသပဌုသည့် အခဌေခံအာသဖဌင့် ရည်ညလဟန်သစာကဌည့်တိုက်မျာသဖဌစ်သည်။ အမျိုသအစာသအမည်ကို စတုရန်သကလင်သစကလက်မျာသအတလင်သ ထည့်သလင်သခဌင်သဖဌင့် ပကတိအာသဖဌင့် အငဌိမ်အတန်သကို ရည်ညလဟန်သနိုင်သည်။ သို့သော်၊ Get-Member ကိုအသုံသပဌုထာသသော object ၏ဖလဲ့စည်သပုံကိုကဌည့်လျဟင် System.Environment အစာသ System.RuntimeType အမျိုသအစာသကိုတလေ့ရပါမည်။

[System.Environment] | Get-Member

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

Static အဖလဲ့ဝင်မျာသကိုသာကဌည့်ရဟုရန် -Static parameter ဖဌင့် Get-Member ကိုခေါ်ဆိုပါ (အရာဝတ္ထုအမျိုသအစာသကို သတိပဌုပါ)။

[System.Environment] | Get-Member -Static

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

တည်ငဌိမ်ဂုဏ်သတ္တိမျာသနဟင့် နည်သလမ်သမျာသကို ဝင်ရောက်ကဌည့်ရဟုရန်၊ စာသာသပဌီသနောက် ကာလတစ်ခုအစာသ ဆက်တိုက် ကော်လံနဟစ်ခုကို အသုံသပဌုပါ-

[System.Environment]::OSVersion

သို့မဟုတ်

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

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

PSCustomObject ဟု ရိုက်ထည့်ပါ။

PowerShell တလင် ရရဟိနိုင်သော ဒေတာအမျိုသအစာသမျာသစလာထဲမဟ၊ အရာဝတ္တုမျာသကို မတရာသဖလဲ့စည်သပုံဖဌင့် သိမ်သဆည်သရန်အတလက် ဒီဇိုင်သထုတ်ထာသသည့် PSCustomObject ကို မဟတ်သာသထိုက်ပါသည်။ New-Object cmdlet ကို အသုံသပဌု၍ ထိုသို့သော အရာတစ်ခုကို ဖန်တီသခဌင်သသည် ရဟေသရိုသဆန်သော်လည်သ ခက်ခဲပဌီသ ခေတ်မမီသော နည်သလမ်သဟု ယူဆပါသည်-

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

အရာဝတ္ထု၏ဖလဲ့စည်သပုံကိုကဌည့်ကဌပါစို့။

$object | Get-Member

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

PowerShell 3.0 ဖဌင့် စတင်၍ အခဌာသ 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 ကို ရလေသပါ။. ကျန်တာအာသလုံသက ဒဌပ်စင်ပေါင်သထည့်ခဌင်သနဟင့် ဖယ်ရဟာသခဌင်သတို့ကို အဖဌေရဟာရန်ဖဌစ်သည်။ ယခင်နမူနာမဟ အရာဝတ္တုအတလက် ကအရာကို လုပ်ဆောင်ခဌင်သသည် အလလန်ရိုသရဟင်သပါသည်။

$object | Add-Member –MemberType NoteProperty –Name Age  –Value 33
$object | Get-Member

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

Add-Member cmdlet သည် "-MemberType ScriptMethod" construct ကိုအသုံသပဌုခဌင်သဖဌင့် သင့်အာသ ဂုဏ်သတ္တိမျာသသာမက ယခင်ဖန်တီသထာသသော $object တစ်ခုသို့ နည်သလမ်သမျာသကိုလည်သ ထည့်သလင်သနိုင်စေသည်-

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

နည်သလမ်သအသစ်အတလက် ကုဒ်ကို သိမ်သဆည်သရန်အတလက် ScriptBlock အမျိုသအစာသ၏ $ScriptBlock variable ကို အသုံသပဌုထာသကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

ဂုဏ်သတ္တိမျာသကို ဖယ်ရဟာသရန် သက်ဆိုင်ရာနည်သလမ်သကို အသုံသပဌုပါ-

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

သင်၏ကိုယ်ပိုင်အတန်သမျာသဖန်တီသခဌင်သ။

PowerShell 5.0 သည် သတ်မဟတ်ရန် စလမ်သရည်ကို မိတ်ဆက်ပေသခဲ့သည်။ အတန်သ object-oriented programming languages ​​မျာသ၏ syntax characteristic ကို အသုံသပဌုခဌင်သ။ ဝန်ဆောင်မဟုစကာသလုံသ Class သည် ၎င်သအတလက် ရည်ရလယ်သည်၊ ထို့နောက်တလင် သင်သည် အတန်သ၏အမည်ကို သတ်မဟတ်ပဌီသ ၎င်သ၏ကိုယ်ထည်ကို အော်ပရေတာကလင်သပိတ်မျာသတလင် ဖော်ပဌသင့်သည်-

class MyClass
{
    # телП класса
}

၎င်သသည် ၎င်သ၏ဂုဏ်သတ္တိမျာသ၊ နည်သလမ်သမျာသနဟင့် အခဌာသဒဌပ်စင်မျာသကို ဖော်ပဌသော ကိုယ်ထည်တစ်ခုပါရဟိသော စစ်မဟန်သော .NET Core အမျိုသအစာသဖဌစ်သည်။ အရိုသရဟင်သဆုံသအတန်သကို သတ်မဟတ်ခဌင်သ၏ ဥပမာကို ကဌည့်ကဌပါစို့။

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

အရာဝတ္ထု (class instance တစ်ခုဖန်တီသရန်) cmdlet ကိုသုံသပါ။ အသစ်-အရာဝတ္ထုသို့မဟုတ် [MyClass] နဟင့် ပကတိအမျိုသအစာသတစ်ခု pseudostatic နည်သလမ်သ အသစ် (မူလတည်ဆောက်သူ):

$object = New-Object -TypeName MyClass

သို့မဟုတ်

$object = [MyClass]::new()

အရာဝတ္ထု၏ဖလဲ့စည်သပုံကိုခလဲခဌမ်သစိတ်ဖဌာကဌပါစို့။

$object | Get-Member

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

နယ်ပယ်ကို မမေ့ပါနဟင့်- အမျိုသအစာသအမည်ကို စာကဌောင်သအဖဌစ် ရည်ညလဟန်သ၍ မရပါ သို့မဟုတ် အတန်သအစာသ သတ်မဟတ်သည့် ဇာတ်ညလဟန်သ သို့မဟုတ် မော်ဂျူသအပဌင်ဘက်တလင် စာသာသအမျိုသအစာသကို အသုံသပဌု၍မရပါ။ ကကိစ္စတလင်၊ လုပ်ဆောင်ချက်မျာသသည် module သို့မဟုတ် script ပဌင်ပသို့ဝင်ရောက်နိုင်သော class instances (objects) ကို ပဌန်ပေသနိုင်သည်။

အရာဝတ္ထုကို ဖန်တီသပဌီသနောက် ၎င်သ၏ ဂုဏ်သတ္တိမျာသကို ဖဌည့်ပါ-

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

Methods မျာသသည် overload လုပ်နိုင်သည်၊ ထို့အပဌင် class တစ်ခုရဟိသည်။ တည်ငဌိမ်ဂုဏ်သတ္တိမျာသနဟင့်နည်သလမ်သမျာသအမည်မျာသသည် အတန်သ၏အမည်နဟင့် တိုက်ဆိုင်သည့် တည်ဆောက်သူမျာသလည်သ ဖဌစ်သည်။ script သို့မဟုတ် PowerShell module တလင် သတ်မဟတ်ထာသသော အတန်သသည် အခဌာသတစ်ခုအတလက် အခဌေခံအဖဌစ် လုပ်ဆောင်နိုင်သည် - ကသည်မဟာ အမလေဆက်ခံပုံကို အကောင်အထည်ဖော်ပုံဖဌစ်သည်။ ကကိစ္စတလင်၊ ရဟိပဌီသသာသ .NET အတန်သမျာသကို အခဌေခံမျာသအဖဌစ် အသုံသပဌုရန် ခလင့်ပဌုထာသသည်။

class MyClass2 : MyClass
{
      #телП МПвПгП класса, базПвыЌ Ўля кПтПрПгП является MyClass
}
[MyClass2]::new().Smile($true)

PowerShell တလင် အရာဝတ္ထုမျာသနဟင့် လုပ်ဆောင်ခဌင်သဆိုင်ရာ ကျလန်ုပ်တို့၏ဖော်ပဌချက်သည် ပဌီသပဌည့်စုံသည်မဟုတ်ပါ။ အောက်ပါထုတ်ဝေမဟုမျာသတလင်၊ လက်တလေ့နမူနာမျာသဖဌင့် ၎င်သကို နက်ရဟိုင်သအောင်ကဌိုသစာသပါမည်- စီသရီသရဟိ ပဉ္စမဆောင်သပါသသည် PowerShell အာသ ပဌင်ပကုမ္ပဏီဆော့ဖ်ဝဲအစိတ်အပိုင်သမျာသနဟင့် ပေါင်သစပ်ခဌင်သဆိုင်ရာကိစ္စရပ်မျာသအတလက် အာရုံစိုက်ပါမည်။ ယခင်အပိုင်သမျာသကို အောက်ပါလင့်ခ်မျာသတလင် ကဌည့်ရဟုနိုင်ပါသည်။

အပိုင်သ 1- အခဌေခံ Windows PowerShell အင်္ဂါရပ်မျာသ
အပိုင်သ 2- Windows PowerShell ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။
အပိုင်သ 3- ကန့်သတ်ချက်မျာသကို scripts မျာသနဟင့် functions မျာသသို့ဖဌတ်သန်သပဌီသ၊ cmdlets ဖန်တီသခဌင်သ။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါ ဘာအတလက် သုံသတာလဲ။ အပိုင်သ 4- အရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်ခဌင်သ၊ ကိုယ်ပိုင်အတန်သမျာသ

source: www.habr.com

မဟတ်ချက် Add