အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

မာတိကာ:

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

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

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

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

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

Get-Process | Get-Member

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

Get-Process | Get-Member -MemberType Property

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

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

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

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

operator brackets အတလင်သရဟိ script block ကို execute လုပ်ခဌင်သ၏ ရလဒ်သည် Boolean value ဖဌစ်ရမည်။ ၎င်သသည် true ($true) ဖဌစ်ပါက၊ Where-Object cmdlet သို့ ပေသပို့သော object သည် pipeline တစ်လျဟောက် ပေသပို့သလာသမည်ဖဌစ်ပဌီသ မဟုတ်ပါက (တန်ဖိုသ $false) ဖျက်ပစ်မည်ဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ ရပ်တန့်ထာသသော service မျာသစာရင်သကို ပဌသကဌပါစို့။ Windows Server, ဆိုလိုသည်မဟာ Status property တလင် “Stopped” တန်ဖိုသရဟိသော သူမျာသ-

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

Get-Process | Sort-Object –Property cpu

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

Get-Process | Sort-Object cpu -Descending

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

အောက်ဖော်ပဌပါ command သည် RAM ပမာဏအမျာသဆုံသသုံသစလဲသည့် လုပ်ငန်သစဉ် 10 ခုအကဌောင်သ အချက်အလက်ကို ပဌသသည်-

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

Conveyor မဟတဆင့် ဖဌတ်သန်သသလာသသော အရာဝတ္ထုမျာသ၏ အချို့သော ဂုဏ်သတ္တိမျာသကိုသာ ရလေသချယ်နိုင်ပဌီသ ၎င်သတို့အပေါ် အခဌေခံ၍ အသစ်မျာသကို ဖန်တီသနိုင်သည်-

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 နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

Select-Object သည် ကျလန်ုပ်တို့သတ်မဟတ်ထာသသော အကလက်နဟစ်ခုသာပါရဟိသော အရာတစ်ခု (-First 1) ကို ပဌန်ပေသသည်- ၎င်သတို့၏တန်ဖိုသမျာသကို Get-Process cmdlet မဟ ပိုက်လိုင်သသို့ ပေသပို့သော ပထမအရာဝတ္ထုမဟ ၎င်သတို့၏တန်ဖိုသမျာသကို ကူသယူထာသသည်။ Select-Object ကိုအသုံသပဌုခဌင်သသည် PowerShell scripts မျာသတလင် အရာဝတ္ထုမျာသကို ဖန်တီသရန် နည်သလမ်သတစ်ခုဖဌစ်သည်-

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

Select-Object ကို အသုံသပဌု၍ သင်ကိုယ်စာသပဌုလိုသော အရာဝတ္ထုမျာသသို့ တလက်ချက်ထာသသော ဂုဏ်သတ္တိမျာသ ပေါင်သထည့်နိုင်သည်။ hash ဇယာသမျာသ. ကကိစ္စတလင်၊ ၎င်သ၏ပထမသော့တန်ဖိုသသည် ပိုင်ဆိုင်မဟုအမည်နဟင့် သက်ဆိုင်ပဌီသ ဒုတိယသော့တန်ဖိုသသည် လက်ရဟိပိုက်လိုင်သအစိတ်အပိုင်သအတလက် ပိုင်ဆိုင်မဟုတန်ဖိုသနဟင့် သက်ဆိုင်သည်-

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

ForEach-Object ပိုက်လိုင်သရဟိ အရာဝတ္ထုတစ်ခုစီအတလက် 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 interface မျာသပါရဟိသော ဆော့ဖ်ဝဲအစိတ်အပိုင်သမျာသစလာရဟိပါသည်။ System.Diagnostics.EventLog class ကို အသုံသပဌုခဌင်သဖဌင့် စနစ်မဟတ်တမ်သမျာသကို အောက်ပါမဟ တိုက်ရိုက်စီမံခန့်ခလဲနိုင်သည်- Windows PowerShell။ -TypeName parameter ပါရဟိသော New-Object cmdlet ကို အသုံသပဌု၍ က class ၏ instance တစ်ခု ဖန်တီသခဌင်သ၏ ဥပမာတစ်ခုကို ကဌည့်ကဌပါစို့။

New-Object -TypeName System.Diagnostics.EventLog

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

$AppLog | Get-Member -MemberType Method

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

$AppLog.Clear()

New-Object cmdlet ကို COM components မျာသနဟင့်အလုပ်လုပ်ရန်လည်သ အသုံသပဌုသည်။ server မဟ ထောက်ပံ့ပေသထာသသော scripts မျာသထဲမဟ ၎င်သတို့ထဲမဟ အတော်မျာသမျာသရဟိသည်။ Windows libraries မျာသကို Internet Explorer ကဲ့သို့သော ActiveX applications မျာသသို့ ပဌောင်သလဲနိုင်သည်။ COM object တစ်ခု ဖန်တီသရန်အတလက်၊ သင်လိုချင်သော class ၏ ProgId ဖဌင့် -ComObject parameter ကို သတ်မဟတ်ရန် လိုအပ်သည်-

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 အရာဝတ္ထုမျာသကိုလည်သ လေ့လာပါမည်။

အငဌိမ်နည်သလမ်သမျာသ ခေါ်ဆိုခဌင်သ။

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

[System.Environment] | Get-Member

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

[System.Environment] | Get-Member -Static

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

[System.Environment]::OSVersion

သို့မဟုတ်

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

PSCustomObject အမျိုသအစာသ

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

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

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

$object | Get-Member

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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 နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

ကအရာဝတ္ထုအမျိုသအစာသ၏ အာသနည်သချက်မျာသထဲမဟတစ်ခုမဟာ ၎င်သတို့၏ ဂုဏ်သတ္တိမျာသ အစီအစဥ် ပဌောင်သလဲသလာသခဌင်သပင်ဖဌစ်သည်။ ၎င်သကိုရဟောင်ရဟာသရန်၊ သင်သည် [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 နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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 နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

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

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

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

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

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

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

$object = New-Object -TypeName MyClass

သို့မဟုတ်

$object = [MyClass]::new()

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

$object | Get-Member

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

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

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

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

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

အတန်သဖော်ပဌချက်သည် ပိုင်ဆိုင်မဟုအမျိုသအစာသမျာသသာမက ၎င်သတို့၏ ပုံသေတန်ဖိုသမျာသကိုပါ ဖော်ပဌကဌောင်သ သတိပဌုပါ။

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

class method တစ်ခု၏ ဖော်ပဌချက်သည် function တစ်ခု၏ ဖော်ပဌချက်နဟင့် ဆင်တူသော်လည်သ function keyword ကို အသုံသမပဌုဘဲ။ လုပ်ဆောင်ချက်တစ်ခုတလင် ပါရာမီတာမျာသကို လိုအပ်ပါက နည်သလမ်သမျာသသို့ ပေသပို့သည်-

class MyClass 
{
     [string]$Name
     [string]$City
     [string]$Country
     
     #ПпОсаМОе ЌетПЎа
     Smile([bool]$param1)
     {
         If($param1) {
            Write-Host ':)'
         }
     }
}

ယခုကျလန်ုပ်တို့၏အတန်သကိုယ်စာသလဟယ်သည်ပဌုံသနိုင်သည်-

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

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

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

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

အပိုင်သ ၁: အဓိကအင်္ဂါရပ်မျာသ Windows PowerShell
အပိုင်သ ၂: ပရိုဂရမ်သမင်သဘာသာစကာသမိတ်ဆက် Windows PowerShell
အပိုင်သ 3- Scripts မျာသနဟင့် Functions မျာသသို့ Parameters မျာသကိုဖဌတ်သန်သခဌင်သ၊ Cmdlets ဖန်တီသခဌင်သ။

အဘယျသို့ Windows PowerShell နဟင့် ၎င်သနဟင့်အတူ ဘာကိုသုံသသင့်သနည်သ။ အပိုင်သ ၄: Objects၊ Custom Classes မျာသနဟင့်အလုပ်လုပ်ခဌင်သ

source: www.habr.com

DDoS ကာကလယ်ရေသ၊ VPS VDS ဆာဗာမျာသပါသည့် ဆိုက်မျာသအတလက် ယုံကဌည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကလယ်မဟု၊ VPS VDS ဆာဗာမျာသပါရဟိသော ယုံကဌည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster