áááá¯ááºážááŒá±á¬ááºážá¡áá Unix á áá áºáá»á¬ážááŸá command-line utilities áá»á¬ážááẠWindows ááẠááá¯áá±á¬ááºážá¡á±á¬áẠáá®ááœááºáá¬ážáá±á¬áºáááºáž ááŒá±ááŸááºážáá»ááºá¡áá áºáá áºáᯠááœááºážáá¬ážáá¬áááºááŸáá·áºá¡áá»áŸ á¡ááŒá±á¡áá±ááŸá¬ ááŒá±á¬ááºážáá²ááœá¬ážáááºá
Windows PowerShell ááẠá áá áºá á®áá¶ááá·áºááœá²áá°áá»á¬ážá¡á¬áž áá¯ááºááá¯ážáá¯ááºá ááºá¡áá»á¬ážá á¯ááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááẠááœáá·áºááŒá¯áááºá áááºážááŸáá·áºá¡áá°á áááºááẠáááºáááºáá»á¬ážááᯠááŒá±á¬ááºážáá²ááá¯ááºáááºá áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºááá·áºáᬠá áááºááá¯ááºááá·áºá¡ááŒáẠááá·áºááœááºážáá¬ážááá·áº á¡ááá®áá±ážááŸááºážá¡áá»á¬ážá á¯ááœááºáááºáž ááŒá¯ááŒááºááááºážááááºážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá á¡ááŒá¬áá±á¬ááºáááºážááá¯ážááᯠá¡ááŒá¬áž command interpreter á¡ááŒá Ạáá¶áá°ááŒááºážááẠááŸá¬ážáááá·áºáááºá á€áá»ááºážáááºááŸá¯ááẠMicrosoft á០á¡ááá¯ááŒá¯áá¬ážáá±á¬ áááºážáá áºáá®ááœááºááŸá¯á á¡ááŸá áºáá¬áááᯠáááºáááºááŒááºážáááŸááá«á á¡ááŸááºááŸá¬á Windows PowerShell áááŒá áºááá¯ááºááŒá±ááẠááá¯ááá»ááºááŒáá·áºáááº- áá±á¬ááºážáá«ážááá¯ááá¯ááœááºá Microsoft ááŒá±ááŸááºážáá»ááºááẠáá»áœááºá¯ááºááá¯á·ááŸáá·áº ááá¯áááºážááŸá®ážáá±á¬ tools áá»á¬ážááŸáá·áº áááºááá¯á·ááœá¬ááŒá¬ážáááºááᯠá¡ááŒá±ááŸá¬ááẠááŒáá¯ážá á¬ážáá«áááºá
á¡áááá¡ááºá¹áá«áááºáá»á¬áž
áá¯ááºáá«áááºá Windows PowerShell ááẠáá°áá¡á¬ážááŒáá·áº .NET Framework ááœááºáááºáá±á¬ááºáá¬ážááŒá®áž áá±á¬ááºááá¯ááºážááœáẠ.NET Core ááœáẠscripting language áá áºáá¯áá«ááŸááá±á¬ command shell áá áºáá¯ááŒá áºáááºá á á¬áá¬ážáá±áá¬ááᯠáááºáá¶ááŒá®áž ááŒááºáá±ážááá·áº á¡ááœá¶áá»á¬ážááŸáá·áº ááá°áá²á Windows PowerShell ááẠáá¯ááºááá¹áááá»á¬ážááŸáá·áº áááºážáááºážáá»á¬ážáá«ááŸáááá·áº .NET á¡áááºážáá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºáááºá PowerShell ááẠááá·áºá¡á¬áž áá¯á¶á¡áááá·áºáá±ážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±ááŒá®áž COMá WMI ááŸáá·áº ADSI á¡áá¬ááá¹áá¯áá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááœáá·áºáá±ážáááºá áááºážááẠááá¯ááºá áá Ạááá¯á·ááá¯áẠWindows ááŸááºáá¯á¶áááºááŒááºážáá²á·ááá¯á·áá±á¬ á¡áá»áá¯ážáá»áá¯ážáá±á¬ ááá¯ááŸá±á¬ááºáááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áááºážááẠáááºážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºá¡ááœáẠá¡áá¯á¶ážááŒá¯áááºá áá¶á·ááá¯ážáá±ážáá°áá»á¬áž áá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯ážáá»áá¯ážááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááẠPowerShell executable components áá»á¬ážááᯠá¡ááŒá¬áž application áá»á¬ážáá²ááá¯á· ááŒáŸááºááœááºážááá¯ááºáááºááᯠáááááŒá¯ááá·áºáá«áááºá graphical interface ááŸáááá·áºá ááŒá±á¬ááºážááŒááºáááºáááºáž ááŸááºáááº- Windows á¡ááá®áá±ážááŸááºážáá»á¬ážá áœá¬ááẠPowerShell ááŸáááá·áº áááºážááá¯á·á á á®áá¶ááá·áºááœá²ááŸá¯ á¡ááºáá¬áá±á·á áºáá»á¬ážááá¯á· áááºáá±á¬ááºááœáá·áº áá±ážáá«áááºá
Windows PowerShell ááẠááá·áºá¡á¬áž á¡á±á¬ááºáá«ááá¯á·ááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±áá«áááºá
- áááºáááºááŸá¯á áá Ạáááºáááºáá»á¬ážááᯠááŒá±á¬ááºážáá²áá«á
- áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá¯ááºáááºážá ááºáá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážá
- áá¬áá¬á¡áááºážááá¹ááá»á¬ážááŸáá·áº á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠá á®á ááºáááºááŸááºáá«á
- áá±á¬á·ááºáá²ááá¯ááá·áºááœááºáž;
- á¡áá°ážá¡ááºáá¬áá±á·á áºáá»á¬ážááŸáááá·áºááá·áºááœááºážáá¬ážáá±á¬áá±á¬á·ááºáá²ááá¯á á®áá¶ááá·áºááœá²áá«á
- Third-party áááá¯ááááºáá»á¬ážááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááŒáŸá¯ááºááŸá¶áá«á
- á á®áá¶ááá·áºááœá²ááŒááºážáá¯ááºáááºážáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááẠscript áá»á¬ážáááºáá®ážáá«á
- ááá¯ááºá áá áºá Windows ááŸááºáá¯á¶áááºááŒááºážá áááºááŸááºá ááá¯ážá á áááºááá¯á·ááŒáá·áº áá¯ááºáá±á¬ááºáá«á
á¡ááœá¶ááŸáá·áº ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±áž áááºáááºážáá»ááº
Windows PowerShell ááœáẠáá¯á¶á á¶ááŸá áºáá»áá¯ážááŒáá·áº áá«ááŸááááº- command shell áá áºáá¯áá«ááŸááá±á¬ console emulator á¡ááŒááºá Integrated Scripting Environment (ISE) áá«ááŸááá«áááºá command line interface ááá¯áááºáá±á¬ááºáááºá Windows menu ááŸááá·áºáá»á±á¬áºáá±á¬ááŒááºáááºážááá¯ááœá±ážáá»ááºáá« ááá¯á·ááá¯áẠRun menu á០powershell.exe ááá¯ááœáá·áºáá«á antediluvian cmd.exe ááŸáá·áº áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá»á¬ážááœáẠáááá¬áááºááŸá¬ážá áœá¬ ááœá²ááŒá¬ážáá±á¬ á¡ááŒá¬áá±á¬ááºáááºážááá¯ážááẠá ááááºáá±á«áºááœáẠáá±á«áºáá¬áááá·áºáááºá Unix á áá áºáá»á¬ážá¡ááœáẠcommand shells á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááŸáá·áº áááºážááŸá®ážáá±á¬ autocompletion ááŸáá·áº á¡ááŒá¬ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž ááŸááá«áááºá
Shell ááŸáá·áºá¡áá¯ááºáá¯ááºááẠáá®ážáá¯ááºááŒááºáááºážá¡áá»áá¯á·ááᯠááŸááºáá¬ážáá¬ážááẠááá¯á¡ááºáááº-
- á¡áááºááŸáá·áºá¡á±á¬áẠááŒáŸá¬ážáá»á¬ážááẠááááºá ááá¯ááºááá·áºáá¬ážáá±á¬ á¡áááá·áºáá»á¬ážááᯠááŒááºáá¯ááºááẠáááá¯ááºážáá áºáá»áŸá±á¬áẠááŸááá·áºáááºážááœá¬ážááŒááºážá
- á á¬ááŒá±á¬ááºážáá áºáá¯áá¡áá¯á¶ážááŸá áá¬áááºááŒáŸá¬ážááẠáááẠcommand áá¬ááºáá±á¬ááºááᯠá¡áá¹ááá¬ááŒáá·áº ááŒááºááá¯ááºáááºá
- Ctrl+Home ááẠcursor á¡áá±á¡áá¬ážá០á á¬ááŒá±á¬ááºážá¡á á¡áá ááá¯ááºááá·áºáá¬ážáá±á¬ á á¬áá¬ážááᯠáá»ááºáááºá
- Ctrl+End ááẠáá¬áá¬á០á á¬ááŒá±á¬ááºážá¡áá¯á¶ážá¡áá á á¬áá¬ážááᯠáá»ááºáááºá
F7 ááẠááá¯ááºááá·áºáá¬ážáá±á¬ command áá»á¬ážááŒáá·áº áááºážááá¯ážááᯠááŒáááŒá®áž áááºážááá¯á·áá²á០áá áºáá¯ááᯠááœá±ážáá»ááºááẠááœáá·áºááŒá¯áááºá ááœááºááá¯ážááºááẠáá±á¬ááºá áºá áááá¹áá°áá°ážááá·áºááŒááºážá áá¬áá¬áá±áá¬áá»áá¬ážááŒááºážá áá»ááºááŒááºážá backspace - áá»áœááºá¯ááºááá¯á·ááŸá áºáááºááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááŸáá·áºáááºáž ááœá²áááºáá¯ááºáá±á¬ááºáá«áááºá
Windows PowerShell ISE ááẠáááºááºáá»á¬ážááŸáá·áº á¡áá¬ážá¡ááá¯á¡áá¬ážáá±ážáá±á¬áºááŒááŸá¯ááᯠáá¶á·ááá¯ážáá±ážááá·áº áá¯ááºáááºážááŒááºááŸá¯áá
áºáá¯áá«ááŸááá±á¬ ááŒáá·áºá
á¯á¶áá±á¬ ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áááºáááºážáá»ááºáá
áºáá¯ááŒá
áºáááºá ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áááºáááºážáá»ááºáááºážááŒááºááŸá¯ááœáẠááœááºáááºážá¡áááºáá±á¬ááºááœáẠáá¯á¶ážááá¯áá
áºáá¯áá±ážáá«áá á¡áá»áá¯ážá¡á
á¬ážááᯠááœáŸááºááŒáá±á¬ drop-down list ááœáẠáááŸáááá¯ááºáá±á¬ ááá·áºáááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáá¶áááŸááááºááŒá
áºáááºá á
áá
áºáá®áá°ážá០ááŒááºáááºážáá
áºáá¯ááŸáá
áºááá·áº ááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááá¯áẠpowershell_ise.exe ááᯠá¡áá¯á¶ážááŒá¯á PowerShell ISE ááᯠáááºááœáá·áºááá¯ááºáááºá
Cmdlets
Window PowerShell ááá¯á· áá±á«áºáá«áááºá cmdlets á áááºážááá¯á·ááẠáá¯ááºáá±á¬ááºááá¯ááºá áœááºážá¡áá»áá¯ážáá»áá¯ážááᯠáá¶á·ááá¯ážáá±ážááá·áº á¡áá°ážááŒá¯ .NET á¡áááºážáá»á¬ážááŒá áºáááºá áááºážááá¯á·ááᯠAction-Object (ááá¯á·ááá¯áẠáááºááŸá áºáááºáá«á Verb-Noun) áᯠá¡áááºáá±ážáá¬ážááŒá®áž áá¯á¶ážááá¯ááŒáá·áº ááŒá¬ážáá¬ážáá±á¬ ááá·áºááºááẠááá¬ááá¬áá¬á áá¬ážáá«áá»áá»á¬ážááœáẠpredicate ááŸáá·áº subject ááŸáá·áº áááºáá°áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Get-Help ááẠá á¬áá¬ážá¡á "Get-Help" ááá¯á·ááá¯áẠPowerShell áááºá ááºááŸá¯ááœááº- "Show-Help" ááᯠááá¯ááá¯áááºá á¡ááŸááºááŸá¬á áááºážááẠUnix á áá áºáá»á¬ážááŸá man command á analogue áá áºáá¯ááŒá áºááŒá®áž PowerShell ááŸá áááºá áœá²á á¬á¡á¯ááºáá»á¬ážá¡á¬áž --help ááá¯á·ááá¯áẠ/? áá±á¬á·ááŒáá·áº cmdlets ááá¯áá±á«áºááá¯ááŒááºážááŒáá·áº á€áááºážá¡á¬ážááŒáá·áº áá±á¬ááºážááá¯ááááºááŒá áºáá«áááºá Microsoft á á¡á²áá«ááᯠáá±á¬áºáá±á¬áºáá±áž á¡áá±ážá áááºáá«áááºá
Get á¡ááŒááºá cmdlets ááẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá±á¬áºááŒáááºá¡ááœáẠá¡ááŒá¬ážááŒááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠ(ááŒááá¬áá»á¬ážáá¬áá áááºážááŒááºá áœá¬ááŒá±á¬ááá¯ááŒááºáž)á á¡á±á¬ááºáá«á á¬áááºážááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¥ááá¬á¡áá»áá¯á·ááᯠáá±ážáááº-
Add
- ááá·áº;
Clear
- ááŸááºážáááºážáá±á¬;
Enable
- ááœááºá·áááº;
Disable
- ááááºáááº;
New
- áááºáá®áž;
Remove
- áá»ááºáá
áº;
Set
- áá±áž;
Start
- ááŒá±áž;
Stop
- áááº;
Export
- áááºááá¯á·;
Import
- áááºááœááºážááŒááºážá
á áá áºá á¡áá¯á¶ážááŒá¯áá°ááŸáá·áº ááœá±ážáá»ááºááá¯ááºáá±á¬ cmdlets áá»á¬áž ááŸááááº- áá¯ááºáá±á¬ááºááŸá¯áááááºá¡áá±ááŒáá·áº áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠá¡áá¬ááá¹áá¯áá áºáᯠááá¯á·ááá¯áẠá¡áá¬ááá¹áá¯áá áºáá¯á array áá áºáá¯ááᯠááŒááºáá±ážáááºá áááºážááá¯á·ááẠááŒá áºáááºááŸááºááá¯ááºáá«á ááá¯ááá¯áááºááŸá¬á á¡áááá·áºáá±ážáá°áá¡ááŒááºá¡áá Get-Help ááŸáá·áº get-help á¡ááŒá¬áž ááœá¬ááŒá¬ážáá»ááºáááŸááá«á á¡áá¹ááᬠ';' ááᯠááœá²áá¯ááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá±á¬áºáááºáž áá°áá®áá±á¬á á¬ááŒá±á¬ááºážáá±á«áºááœáẠcmdlets á¡áá»á¬ážá¡ááŒá¬ážááᯠáá¯ááºáá±á¬ááºááŸáᬠáááºážááᯠáááŒá áºááá± ááá·áºááœááºážááẠááá¯á¡ááºáá«áááºá
Windows PowerShell cmdlets ááᯠmodule áá»á¬áž (NetTCPIPá Hyper-V á áááºááŒáá·áº) ááœááºá á¯ááœá²á·áá¬ážááŒá®áž object ááŸáá·áº action á¡ááá¯ááºááŸá¬ááœá±ááẠGet-Command cmdlet ááŸááá«áááºá á€áá²á·ááá¯á·áá±á¬á¡áá°á¡áá®ááᯠáááºááŒáááá¯ááºáááº-
Get-Help Get-Command
áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá command ááẠá¡ááá¯áá»á¯á¶ážá¡áá°á¡áá®ááá¯ááŒááááºá ááá¯á·áá±á¬áº parameters (arguments) áá»á¬ážááᯠááá¯á¡ááºáááᯠcmdlets ááá¯á· áá±ážááá¯á·áá«áááºá áááºážááá¯á·áá¡áá°á¡áá®ááŒáá·áºá á¥ááá¬á¡á¬ážááŒáá·áº áááºááẠá¡áá±ážá ááẠ(áá«áá¬áá®áá¬-á¡áá±ážá áááº) ááá¯á·ááá¯áẠá¡ááŒáá·áºá¡á (áá«áá¬áá®áá¬-Full) á¡áá°á¡áá®á¡ááŒáẠááá°áá¬áá»á¬áž (áá«áá¬áá®áá¬-á¥ááá¬-á¥ááá¬áá»á¬áž) ááᯠááá°ááá¯ááºáá«áááºá
Get-Help Get-Command -Examples
Windows PowerShell ááœáẠHelp ááᯠUpdate-Help cmdlet ááŒáá·áº á¡ááºááááºáá¯ááºáá¬ážáááºá command line ááẠááŸááºááœááºážáá«áá service character '`' ááá¯áá±ážááŒá®áž Enter ááŸáááºááŒááºážááŒáá·áº cmdlet argument áá»á¬ážááᯠáá±á¬ááºáá áºáá¯ááá¯á· ááœáŸá±á·ááá¯ááºááẠ- command ááᯠá á¬ááŒá±á¬ááºážáá áºááŒá±á¬ááºážáá±á«áºááœááºáá±ážááŒá®áž áá±á¬ááºáá áºáá¯ááœáẠáááºááœá¬ážáá¯á¶ááŒáá·áº á¡áá¯ááºáááŒá áºáá«á
á€áááºááŸá¬ á¡áá¯á¶ážáá»á¬ážáá±á¬ cmdlets á á¥ááá¬á¡áá»áá¯á·ááŒá áºáááºá
Get-Process
- á
áá
áºááœááºáááºáááºáá±áá±á¬áá¯ááºáááºážá
ááºáá»á¬ážááá¯ááŒááá«á
Get-Service
- áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºážááá¯á·á á¡ááŒá±á¡áá±ááᯠááŒááá«á
Get-Content
- ááá¯ááºáá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááá¯ááŒááá«á
áááŒá¬ááá¡áá¯á¶ážááŒá¯áá±á·ááŸááá±á¬ cmdlets ááŸáá·áº ááŒááºáá¡áá¯á¶ážá¡áá±á¬ááºáá»á¬ážá¡ááœááºá Windows PowerShell ááœáẠááá¯áá±á¬ááºážáá±á¬ áá°áá®áá±á¬á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬áž (á¡ááºá¹áááááºá Alias ââááŸ) ááŸááááºá á¥ááá¬á dir ááẠGet-ChildItem á¡ááœáẠalias áá áºáá¯ááŒá áºáááºá áá°áá®áá±á¬á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážá á¬áááºážááœáẠUnix á áá áºáá»á¬áž (lsá ps á áááºááŒáá·áº) á០command áá»á¬ážá analogues áá»á¬ážáá«ááŸáááŒá®áž Get-Help cmdlet ááᯠhelp command ááŒáá·áº áá±á«áºáááºá Get-Alias ââââcmdlet ááᯠá¡áá¯á¶ážááŒá¯á áá°áá®áá±á¬ á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºá á¬áááºáž á¡ááŒáá·áºá¡á á¯á¶ááᯠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
PowerShell Scriptsá Functionsá Modules ááŸáá·áº Language
Windows PowerShell script áá»á¬ážááᯠ.ps1 ááá¯ážáá»á²á·ááŸá¯ááŒáá·áº ááá¯ážááá¯ážá á¬áá¬ážááá¯ááºáá»á¬ážá¡ááŒá Ạááááºážáááºážáá¬ážáááºá áááºážááá¯á·ááᯠááŸá áºáá»ááºááŸáááºááŒááºážááŒáá·áº áááºá áááºááááá«- áááºá ááºáá®áá°ážááá¯áá±á«áºááá¯ááẠáá¬áááºááá áºááŸáááºááŒá®áž âPowerShell in Runâ ááᯠááœá±ážáá»ááºáá«á ááœááºááá¯ážááºááŸá áááºááẠáá¬ááºááœáŸááºážááá¯á· áááºážááŒá±á¬ááºážá¡ááŒáá·áºá¡á á¯á¶ááᯠáááºááŸááºááẠááá¯á·ááá¯áẠááá·áºáá»á±á¬áºáá±á¬ áááºážááœáŸááºááá¯á· ááœá¬ážáᬠááá¯ááºá¡áááºááᯠáá±ážáá«á áá¯ááºáá±á¬ááºááŒááºáž scripts áá»á¬ážááᯠá áá áºáá°áá«áá¡ááááºáž ááá·áºáááºáá¬ážááŒá®áž áááºááŸááááºáááºáá»á¬ážááᯠá á áºáá±ážáááºá¡ááœáẠá¡á±á¬ááºáá«áááºááá¯ážáá»á¬ážáá²á០áá áºáá¯ááᯠááŒááºáá±ážááá·áº Get-ExecutionPolicy cmdlet ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
Restricted
â á
áááºááŒááºáž scripts áá»á¬ážááá¯ááááºáá¬ážááẠ(áá¯á¶ááŸááºá¡á¬ážááŒáá·áº);
AllSigned
â áá¯á¶ááŒááºá
áááºáá»ááá±á¬ developer á០áááºááŸááºáá±ážááá¯ážáá¬ážáá±á¬ script áá»á¬ážááá¯áᬠrun ááœáá·áºááŸááááºá
RemoteSigned
- áááºááŸááºáá±ážááá¯ážááŒá®áž ááá¯ááºááá¯áẠscript áá»á¬ážááᯠrun áááºááœáá·áºááŒá¯áááºá
Unrestricted
- áááºááá·áº scripts ááá¯áááᯠrun áááºááœáá·áºááŒá¯áááºá
á á®áá¶ááá·áºááœá²áá°ááœáẠááœá±ážáá»ááºá áá¬ááŸá áºáá¯ááŸááááºá á¡áá¯á¶ááŒá¯á¶áá¯á¶ážááœáẠáááºááŸááºááá¯ážáá¬ážáá±á¬ script áá»á¬ážáá«áááºáááºá ááá¯á·áá±á¬áº áááºážááẠá¡ááœááºáá±ážáááºáá±á¬ áááºáááá¹áá¬ááŒá áºááẠ- áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáá±á¬ááºáá±á¬ááºážáá«ážáá»á¬ážááœáẠááá¯ááºááœááºááŒá±ááŸááºážáá«áááºá á¡áᯠáá¯áá¶ááŸá¯ á¡áááºážáá¯á¶áž áááºážááŒá±á¬ááºážááᯠáá»áŸá±á¬ááºááŒá®áž áá°áá«áááᯠááŒá±á¬ááºážáá²ááŒáá«á áá¯á·á
Set-ExecutionPolicy RemoteSigned
áááºážááá¯áá¯ááºáá±á¬ááºááẠáááºááẠáááºááŸáá¡áá¯á¶ážááŒá¯áá°á¡ááœáẠáá°áá«áááá¯ááŒá±á¬ááºážáá²ááẠá¡áá°ážááá·áºáááºáá±á¬ááºáá
áºáá¯ááᯠáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬áºáááºáž PowerShell ááᯠá
á®áá¶ááá·áºááœá²áá°á¡ááŒá
Ạáááºáá¯ááºáá±á¬ááºááá«áááºá
Script áá»á¬ážááᯠobject-oriented programming language ááŒáá·áºáá±ážáá¬ážáá¬ážááŒá®ážá ááááºááœá±ážááœá±ážáá¬ážáá±á¬ cmdlets áá»á¬ážááŸáá·áºáá°áá®áá±á¬áááá¬áá¡á á¡áááºáá±ážáá¬ážááá·áº commands áá»á¬áž- "Action-Object" ("Verb-Noun")á áááºážáá¡ááááááºááœááºáá»ááºááŸá¬ á á®áá¶ááá·áºááœá²áá±ážááá¯ááºáá¬áá¬áááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºáááºááŒá áºáááºá ááá¯á·áá±á¬áº ááá¯á¡ááºáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážáá«ááŸááá±á¬ ááŒáá·áºá á¯á¶áá±á¬áá¬áá¬ááŒááºáá áºáá¯ááŒá áºáááº- á¡ááŒá±á¡áá±á¡ááá¯ááºáá¯ááºááŒááºážá ááœááºážáááºáá»á¬ážá ááááºážááŸááºáá»á¬ážá áááºážáá»ááºážááŸá¯áá»á¬ážá á¡áá¬ááá¹áá¯áá»á¬ážá á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠááá¯ááºááœááºááŒááºáž á¡á ááŸááááºááá¯á·áá«ááŸááááºá áááºááá·áºá á¬áá¬ážáááºážááŒááºáá°áááᯠscripts áá»á¬ážáá±ážáá¬ážááŒááºážá¡ááœááºáá±á¬ááºážááœááºáá±á¬áºáááºáž Windows PowerShell ISE ááᯠrun ááŒááºážáááºá¡áá±á¬ááºážáá¯á¶ážááŒá áºáááºá
áááºááẠááá·áºáááºáá»ááºáá»á¬ážááᯠáá¬ááºááœáŸááºážááá¯á·áá±ážááá¯á·ááá¯ááºááŒá®áž áááºážááá¯á·ááᯠáááŒá áºááá±ááŒá¯áá¯ááºáááºááŸáá·áº áá¯á¶áá±áááºááá¯ážáá»á¬ážááá¯áááºáž áááºááŸááºááá¯ááºáááºá Windows PowerShell ááẠFunction construct ááŸáá·áº curly braces áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á cmdlets áá²á·ááá¯á· áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºáá®ážáᬠáá±á«áºáááºáááºáž ááœáá·áºááŒá¯áá«áááºá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážáá«ááŸááá±á¬ script ááᯠmodule áá áºáá¯áá¯áá±á«áºááŒá®áž .psm1 áá±á¬ááºáááºááœá²áá«ááŸááááºá PowerShell áááºáááºážáá»áẠááááºážááŸááºáá»á¬ážááœáẠáááºááŸááºáá¬ážáá±á¬ áááºážááŒá±á¬ááºážáá»á¬ážááœáẠáá±á¬áºáá»á°ážáá»á¬ážááᯠááááºážáááºážááá«áááºá á¡á±á¬ááºáá« command ááᯠá¡áá¯á¶ážááŒá¯á áááºážááá¯á·ááᯠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
Get-ChildItem Env:PSModulePath | Format-Table -AutoSize
áááºáá±á¬ááº
áá±á¬ááºáá¯á¶ážá¥ááá¬ááœááºá Unix shell á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááŸáá·áº áááºážááŸá®ážáá±á¬ áááºáá±á¬ááºááŸá¯áá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážááŒá¯áá¬ážáá«áááºá Windows PowerShell ááœááºá áá±á«ááºááá¯ááºáá¬ážááẠááá·áºá¡á¬áž command áá áºáá¯á output á¡á¬áž á¡ááŒá¬áž input ááá¯á·áá±ážááá¯á·ááẠááœáá·áºááŒá¯áááºá ááá¯á·áá±á¬áº ááá¯ááºááá¯ááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠáááá¬áááºááŸá¬ážáá±á¬ ááœá¬ááŒá¬ážáá»ááºáá áºáá¯ááŸááááº- áá»áœááºá¯ááºááá¯á·ááẠáá¬ááºáá±á¬ááºá¡á ᯠááá¯á·ááá¯áẠáá áºáá»áá¯ážáá»áá¯ážá¡ááŒá±á¬ááºáž áááŒá±á¬áá±á¬á·áá«á á á¬áá¬ážá Built-in cmdlets ááá¯á·ááá¯áẠá¡áá¯á¶ážááŒá¯áá°áááºááŸááºáá¬ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠá¡áá¬ááá¹áá¯áá»á¬áž ááá¯á·ááá¯áẠá¡áá¬ááá¹áá¯áá»á¬ážá arrays áá»á¬ážááᯠááŒááºáá±ážáᬠáááºážááá¯á·ááᯠááá·áºááœááºážááŸá¯á¡ááŒá Ạáááºáá¶ááá¯ááºáááºá Bourne shell ááŸáá·áº áááºážááááºáá¶áá°á¡áá»á¬ážá¡ááŒá¬ážáá²á·ááá¯á·ááẠPowerShell ááẠááá¯ááºááá¯ááºážáá áºáá¯ááŒáá·áº ááŸá¯ááºááœá±ážáá±á¬á¡áá¯ááºáá»á¬ážááᯠááá¯ááá¯ááœááºáá°á á±áááºá
ááá¯ááºááá¯ááºážá á¡ááá¯ážááŸááºážáá¯á¶áž á¥ááá¬ááŸá¬ á€áá²á·ááá¯á· ááŒá áºáááº-
Get-Service | Sort-Object -property Status
ááááŠážá
áœá¬á Get-Service cmdlet ááᯠáá¯ááºáá±á¬ááºááŒá®ážá ááá¯á·áá±á¬áẠáááºážááŸáááŸááá±á¬áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠStatus ááá¯ááºááá¯ááºááŸá¯ááŒáá·áº á
á®ááẠsort-Object cmdlet ááá¯á· áá±ážááá¯á·áááºááŒá
áºáááºá ááá¯ááºááá¯ááºážá ááááºá¡ááá¯ááºážá ááááºááẠáááºážá á¡áá»áá¯ážá¡á
á¬ážáá±á«áº áá°áááºá áááºááá·áºá¡ááŒááºážá¡áá¯á¶ááŒá
áºááẠ- áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áááºážááẠInputObject ááŒá
áºáááºá PowerShell áááá¯ááááºážáááºážáá¬áá¬á
áá¬ážá¡ááœáẠáááºááœáŸááºážáá¬ážáá±á¬ áá±á¬ááºážáá«ážáá
áºáá¯ááºááœáẠá€ááŒá¿áá¬ááᯠá¡áá±ážá
ááẠááœá±ážááœá±ážáá«áááºá
ááá¹áááŸááá«á áááºááẠááœááºážáááºááᯠáááºáááºáá¯ááºáá±á¬ááºááá¯ááºááŒá®áž Sort-Object áá¯ááºáá±á¬ááºáá»ááºá ááááºááᯠá¡ááŒá¬ážáá±á¬ cmdlet ááá¯á· áá±ážááá¯á·ááá¯ááºááẠ(áááºážááá¯á·ááᯠáááºááŸáá¬ááá¯á· áá¯ááºáá±á¬ááºááœá¬ážáá«áááº)á á áá¬ážáá ááºá Windows á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠUnixoids á¡á¬ážáá¯á¶ážááŸáá·áºáááºážááŸá®ážáá±á¬ pagination á¡ááœááºáááºáá±á¬ááºááŸá¯ááá¯áááºážáááºáá±á¬ááºááœáá·áºááŸááááºá
Get-Service | Sort-Object -property Status | more
á¡áá¯ááºáá»á¬ážááᯠáá±á¬ááºáá¶ááœáẠáá¯ááºáá±á¬ááºááŒááºážá
shell session ááœááºáááºážááá¯ááºáá±á¬ááºááŸá¯ááááºááá¯á á±á¬áá·áºááá¯ááºážáááºáá á±á¬áá·áºáááºáá±áá»á¬áá±á¬ command áá áºáá¯ááá¯áá±á¬ááºáá¶ááœááºáá¯ááºáá±á¬ááºáááºáááŒá¬ááááá¯á¡ááºáááºá Windows PowerShell ááœáẠá€á¡ááŒá±á¡áá±á¡ááœáẠcmdlets áá»á¬ážá áœá¬ááŸááááºá
Start-Job
- áá±á¬ááºáá¶á¡áá¯ááºáá
áºáá¯á
áááºááŒááºáž;
Stop-Job
- áá±á¬ááºáá¶á¡áá¯ááºáá
áºáá¯ááᯠáááºááá·áºááŒááºážá
Get-Job
- áá±á¬ááºáá¶á¡áá¯ááºáá»á¬ážá
á¬áááºážááá¯ááŒáá·áºááŸá¯áá«á
Receive-Job
- áá±á¬ááºáá¶áá¯ááºáááºážáá±á¬ááºááœááºááŸá¯áááááºááá¯ááŒáá·áºááŸá¯ááŒááºážá
Remove-Job
- áá±á¬ááºáá¶áá¯ááºáá±á¬ááºá
áá¬áá
áºáá¯ááᯠáá»ááºááŒááºážá
Wait-Job
â áá±á¬ááºáá¶áá¬áááºááᯠááœááºááá¯ážááºááá¯á· ááŒááºááŒá±á¬ááºážááŒááºážá
áá±á¬ááºáá¶áá¯ááºáááºážáá áºáá¯á áááºáááºá áá»áœááºá¯ááºááá¯á·ááẠStart-Job cmdlet ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž curly braces áá»á¬ážááœáẠcommand áá áºáᯠááá¯á·ááá¯áẠcommand á¡á á¯á¶ááᯠáááºááŸááºáá«-
Start-Job {Get-Service}
Windows PowerShell ááŸá áá±á¬ááºáá¶áá¯ááºáá±á¬ááºá
áá¬áá»á¬ážááᯠáááºážááá¯á·áá¡áááºáá»á¬ážááᯠááááŸáááŒááºážááŒáá·áº ááŒáá¯ážááá¯ááºááá¯ááºáááºá ááááŠážá
áœá¬á áááºážááá¯á·ááá¯ááŒááááºážááᯠáá±á·áá¬ááŒáá«á
áá¯á·á
Get-Job
á¡áᯠJob1 áá²á· ááááºááᯠááŒááŒáá·áºáá¡á±á¬ááºá
Receive-Job Job1 | more
á¡áá¬á¡á¬ážáá¯á¶ážá áá±á¬áºáá±á¬áºááá¯ážááŸááºážáá«áááºá
á¡áá±ážááááºážá¡áááá·áºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá
Windows PowerShell ááẠááá·áºá¡á¬áž áá±ááá¹ááááœááºáá»á°áá¬áá±á«áºááœááºáá¬áá á¡áá±ážááááºážááœááºááŒá°áá¬ááœááºáá¬áá á ááºá¡á¯ááºá á¯áá áºáá¯áá¯á¶ážááœááºáá« á¡áááá·áºáá»á¬ážááŸáá·áº script áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±áá«áááºá á€ááá¯á·ááŒá¯áá¯ááºááẠáááºážáááºážáá»á¬ážá áœá¬ ááŸááá«áááºá
- cmdlet á¡áá»á¬ážá¡ááŒá¬ážááœáẠparameter áá
áºáá¯ááŸááááºá
-ComputerName
á¥ááá¬á¡á¬ážááŒáá·áºá á€áááºážá¡á¬ážááŒáá·áº conveyor ááá¯áááºáá®ážáááºáááŒá áºááá¯ááºáá«á - Cmdlet
Enter-PSSession
áá±ážáá¶áá±á«ááºáá®áá±á¬á ááºáá±á«áºááœáẠá¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºáá±á¬ session áá áºáá¯ááᯠáááºáá®ážááá¯ááºá á±áááºá - cmdlet ááᯠá¡áá¯á¶ážááŒá¯
Invoke-Command
á¡áá±ážááááºážááœááºááŒá°áá¬áá áºáá¯á¶áž ááá¯á·ááá¯áẠáá áºáá¯áááºááá¯áá±á¬ ááœááºááŒá°áá¬áá»á¬ážááœáẠááœáŸááºááŒá¬ážáá»ááºáá»á¬áž ááá¯á·ááá¯áẠscript áá»á¬ážááᯠáááºáá¯ááºáá±á¬ááºááá¯ááºáááºá
PowerShell áá¬ážááŸááºážáá»á¬áž
2006 áá¯ááŸá áºááœááºáááºážáááááá¯á¶ážááœááºááŸáááááºážá PowerShell áááºáá»á¬ážá áœá¬ááŒá±á¬ááºážáá²áá²á·áááºá áááááá¬ááẠááá°áá®áá±á¬ áá¬á·ááºáá²ááááºáá±á¬ááºážáá»á¬áž (x86á x86-64á Itaniumá ARM) áá±á«áºááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ á áá áºáá»á¬ážá áœá¬á¡ááœáẠáááá¯ááºáááº- Windows XPá Windows Server 2003á Windows Vistaá Windows Server 2008/2008 R2á Windows 7á Windows 8á Windows 8.1á Windows RTá Windows RT 8.1á Windows Server 2012/2012 R2á Windows 10á Windows Server 2016á GNU/Linux ááŸáá·áº OS Xá áá±á¬ááºáá¯á¶ážááœááºáá¬ážááŸááºáž 6.2 ááᯠáááºááá«áá® 10á 2018 ááœáẠáá¯ááºááŒááºáá²á·áááºá á¡á á±á¬ááá¯ááºážáá¬ážááŸááºážáá»á¬ážá¡ááœáẠáá±ážáá¬ážáá¬ážáá±á¬ Script áá»á¬ážááẠáá±á¬ááºááá¯ááºážáá¬ážááŸááºážáá»á¬ážááœáẠá¡áá¯ááºáá¯ááºááá¯ááºááœááºááŸááá±á¬áºáááºáž PowerShell ááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸá áºáá»á¬ážáá áºáá»áŸá±á¬ááºááœáẠcmdlets á¡áá áºá¡áá»á¬ážá¡ááŒá¬ážááᯠááááºáááºáá¬ážáá±á¬ááŒá±á¬áá·áº backporting ááŒá¿áá¬ááŒá áºááá¯ááºáááºá $PSVersionTable built-in variable á PSVersion ááá¯ááºááá¯ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á ááœááºáá»á°áá¬áá±á«áºááœáẠááá·áºááœááºážáá¬ážááá·áº command shell ááá¬ážááŸááºážááᯠáááºááŸá¬ááœá±ááá¯ááºáááº-
$PSVersionTable.PSVersion
cmdlet ááá¯áááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
Get-Variable -Name PSVersionTable âValueOnly
Get-Host cmdlet ááᯠá¡áá¯á¶ážááŒá¯á á¡áá¬ážáá°áá¯ááºáá±á¬ááºááá¯ááºáááºá ááááºáá±á¬á·á ááœá±ážáá»ááºá
áá¬áá»á¬ážá
áœá¬ááŸááá±á¬áºáááºáž áááºážááá¯á·ááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·áá¯ááºáá±á¬ááºááá·áº PowerShell áááá¯ááááºážáááºážáá¬áá¬á
áá¬ážááᯠáá±á·áá¬ááẠááá¯á¡ááºáá«áááºá
ááááºáá»á¬ážááá¯
Microsoft ááẠscript áá»á¬ážáááºáá®ážáááºá¡ááœáẠá¡áááºááŒá±áá±á¬áá±á«ááºážá
ááºáááºáááºážáá»ááºáá
áºáá¯ááŒáá·áº á¡ááŸááºááááºá¡á¬ážáá±á¬ááºážáá±á¬ shell ááá¯áááºáá®ážááá¯ááºáá²á·áááºá áááºážááẠWindows áááá¬ážá
á¯á áááºáááºááŸá¯á
áá
áºáá»á¬ážááŸáá·áº áááºááŸáá¯ááºážá
áœá¬ áá±á«ááºážá
ááºááŒááºážááŒáá·áº Unix ááá¹áá¬ááŸá áá»áœááºá¯ááºááá¯á·ááŸáá·áº áááºážááŸá®ážáá±á¬ áááááá¬áá»á¬ážááŸáá·áº ááœá²ááŒá¬ážááá·áºá¡ááŒáẠáááºážááá¯á·á¡ááœáẠáá±á¬á·ááºáá²ááºááŸáá·áº .NET Core ááááºáá±á¬ááºážááŸáá·áº ááœá²ááŒá¬ážáááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº cmdlets ááŸáá·áº á¡áá¯á¶ážááŒá¯áá°áááºááŸááºáá¬ážáá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠá¡áá¬ááá¹áá¯áá»á¬áž ááá¯á·ááá¯áẠá¡áá¬ááá¹áá¯áá»á¬ážá arrays áá»á¬ážááᯠááŒááºááá¯á·ááŒá®áž áááºážááá¯á·á¡á¬áž ááá·áºááœááºážááŸá¯á¡ááŒá
Ạáá°ááá¯ááºáá±á¬ááŒá±á¬áá·áº PowerShell ááᯠá¡áá¬ááá¹áá¯-á¡áá¬ážáá±áž shell áá¯áá±á«áºáááºá Windows áá±á«áºááŸá áá¬áá¬á
á®áá¶ááá·áºááœá²áá°á¡á¬ážáá¯á¶ážááẠá€áááááá¬ááᯠááá¯ááºááá¯ááºááá·áºáááºáᯠáá»áœááºá¯ááºááá¯á·áááºáááº- áááºážááá¯á·ááẠcommand line ááá«áá² áá¯ááºáá±á¬ááºááá¯ááºááá·áº á¡áá»áááºáá¯ááºááœá¬ážáá«áááºá á¡ááá·áºááŒáá·áº ááœááºááá¯ážááŸá²ááºáá
áºáá¯ááœáẠá¡áá°ážááá¯á¡ááºáá«áááºá
á
á¬áááºážááœááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáᬠá
á
áºáááºážááœáẠáá«áááºááá¯ááºáá«áááºá
á á®ážáá®ážááá±á¬ááºáá±á¬ááºážáá«ážáá»á¬ážááœáẠáááºááá·áºá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáŠážá áœá¬ááŒá±á¬ááá¯ááá·áºááááºážá
-
53,2%PowerShell123 ááœáẠáááá¯ááááºáá±ážáá¬ážááŒááºážá
-
42,4%PowerShell98 áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº áá±á¬áºáá»á°ážáá»á¬áž
-
22,1%ááá·áºááá¯ááºááá¯áẠscript áá»á¬ážááᯠáááºááá¯á· áááºááŸááºáá±ážááá¯ážááááºáááºážá51
-
12,1%áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážááŸáááá·áº ááá¯ááŸá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºááŒááºáž áá
-
57,6%PowerShell133 ááᯠá¡áá¯á¶ážááŒá¯á ááœááºáá»á°áᬠá á®áá¶á¡á¯ááºáá»á¯ááºááŸá¯ááᯠá¡ááá¯á¡áá»á±á¬áẠááŒá¯áá¯ááºáá«á
-
30,7%áá±á¬á·ááºáá² á á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº ááŒááºááá¯áá¹ááá® áá¯ááºáá¯ááºáá»á¬ážááœáẠPowerShell áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááá·áºááœááºážááŒááºáž 71
á¡áá¯á¶ážááŒá¯áá° áá áŠáž áá²áá±ážáá²á·áááºá á¡áá¯á¶ážááŒá¯áá° á áŠáž ááŸá±á¬ááºáá±áá²á·áá«áááºá
source: www.habr.com