์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ PowerShell

PowerShell๋กœ ์ž‘์—…ํ•  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ์ ‘ํ•˜๋Š” ๊ฒƒ์€ ๋ช…๋ น(Cmdlet)์ž…๋‹ˆ๋‹ค.
๋ช…๋ น ํ˜ธ์ถœ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

๋„์›€๋ง

PowerShell์˜ ๋„์›€๋ง์€ Get-Help ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ์˜ˆ, ์ƒ์„ธ, ์ „์ฒด, ์˜จ๋ผ์ธ, showWindow.

Get-Help Get-Service -full์€ Get-Service ๋ช…๋ น ์ž‘์—…์— ๋Œ€ํ•œ ์ „์ฒด ์„ค๋ช…์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Get-Help Get-S*๋Š” Get-S*๋กœ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ช…๋ น๊ณผ ๊ธฐ๋Šฅ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

Microsoft ๊ณต์‹ ์›น ์‚ฌ์ดํŠธ์—๋„ ์ž์„ธํ•œ ์„ค๋ช…์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ Get-Evenlog ๋ช…๋ น์— ๋Œ€ํ•œ ์˜ˆ์ œ ๋„์›€๋ง์ž…๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ PowerShell

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋Œ€๊ด„ํ˜ธ[]๋กœ ๋ฌถ์—ฌ ์žˆ์œผ๋ฉด ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.
์ฆ‰, ์ด ์˜ˆ์—์„œ๋Š” ๋กœ๊ทธ ์ž์ฒด์˜ ์ด๋ฆ„์ด ํ•„์š”ํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ์•„๋‹ˆ์š”. ๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ํ˜•๊ณผ ํ•ด๋‹น ์ด๋ฆ„์ด ๋Œ€๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ๊ฒฝ์šฐ ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

EntryType ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณด๋ฉด ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ๊ฐ’์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ์ค‘๊ด„ํ˜ธ ์•ˆ์— ๋ฏธ๋ฆฌ ์ •์˜๋œ ๊ฐ’๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•„์ˆ˜์ธ์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ํ•„์ˆ˜ ํ•„๋“œ์˜ ์•„๋ž˜ ์„ค๋ช…์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์—์„œ ํ•„์ˆ˜๊ฐ€ false๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— After ํŠน์„ฑ์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ Named๋ผ๊ณ  ์ ํžŒ Position ํ•„๋“œ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฆ„์œผ๋กœ๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Get-EventLog -LogName Application -After 2020.04.26

LogName ๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” Named ๋Œ€์‹  ์ˆซ์ž 0์ด ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฆ„ ์—†์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์›ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Get-EventLog Application -After 2020.04.26

์ด ์ˆœ์„œ๋ฅผ ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค.

Get-EventLog -Newest 5 Application

๋ณ„๋ช…

PowerShell์˜ ์ฝ˜์†”์—์„œ ์ผ๋ฐ˜์ ์ธ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„์นญ(Alias)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Set-Location ๋ช…๋ น์˜ ์˜ˆ์ œ ๋ณ„์นญ์€ cd์ž…๋‹ˆ๋‹ค.

์ฆ‰, ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹ 

Set-Location โ€œD:โ€

์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

cd โ€œD:โ€

์—ฐํ˜

๋ช…๋ น ํ˜ธ์ถœ ๊ธฐ๋ก์„ ๋ณด๋ ค๋ฉด Get-History๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ก Invoke-History 1์—์„œ ๋ช…๋ น ์‹คํ–‰; ํ˜ธ์ถœ ๋‚ด์—ญ 2

ํด๋ฆฌ์–ด ํžˆ์Šคํ† ๋ฆฌ

๊ด€๋กœ

powershell์˜ ํŒŒ์ดํ”„๋ผ์ธ์€ ์ฒซ ๋ฒˆ์งธ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‘ ๋ฒˆ์งธ ํ•จ์ˆ˜๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

Get-Verb | Measure-Object

๊ทธ๋Ÿฌ๋‚˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋” ์ž˜ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋” ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒ€์„ ์–ป์—ˆ๋‹ค

Get-Verb "get"

Get-Help Get-Verb -Full ๋„์›€๋ง์„ ํ˜ธ์ถœํ•˜๋ฉด Verb ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ pipline ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ByValue๊ฐ€ ๊ด„ํ˜ธ ์•ˆ์— ์“ฐ์—ฌ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ PowerShell

์ด๋Š” Get-Verb "get"์„ "get"์œผ๋กœ ๋‹ค์‹œ ์“ธ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค | GetVerb.
์ฆ‰, ์ฒซ ๋ฒˆ์งธ ์‹์˜ ๊ฒฐ๊ณผ๋Š” ๋ฌธ์ž์—ด์ด๋ฉฐ ๊ฐ’์œผ๋กœ pipline ์ž…๋ ฅ์„ ํ†ตํ•ด Get-Verb ๋ช…๋ น์˜ Verb ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ํŒŒ์ดํ”„๋ผ์ธ ์ž…๋ ฅ์€ ByPropertyName์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Verb๋ผ๋Š” ์ด๋ฆ„์ด ๋น„์Šทํ•œ ์†์„ฑ์„ ๊ฐ€์ง„ ๊ฐœ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋ณ€์ˆ˜

๋ณ€์ˆ˜๋Š” ๊ฐ•๋ ฅํ•œ ํ˜•์‹์ด ์•„๋‹ˆ๋ฉฐ ์•ž์— $๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

$example = 4

> ๊ธฐํ˜ธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ: $example > File.txt
์ด ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ $example ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
Set-Content -Value $example -Path File.txt์™€ ๋™์ผ

๋ฐฐ์—ด

์–ด๋ ˆ์ด ์ดˆ๊ธฐํ™”:

$ArrayExample = @(โ€œFirstโ€, โ€œSecondโ€)

๋นˆ ์–ด๋ ˆ์ด ์ดˆ๊ธฐํ™”:

$ArrayExample = @()

์ธ๋ฑ์Šค๋กœ ๊ฐ€์น˜ ์–ป๊ธฐ:

$ArrayExample[0]

์ „์ฒด ๋ฐฐ์—ด์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

$ArrayExample

์š”์†Œ ์ถ”๊ฐ€:

$ArrayExample += โ€œThirdโ€

$ArrayExample += @(โ€œFourthโ€, โ€œFifthโ€)

์ •๋ ฌ ๊ธฐ์ค€ :

$ArrayExample | Sort

$ArrayExample | Sort -Descending

๊ทธ๋Ÿฌ๋‚˜ ๋ฐฐ์—ด ์ž์ฒด๋Š” ์ด ์ •๋ ฌ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์ด ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๋ ค๋ฉด ์ •๋ ฌ๋œ ๊ฐ’์„ ํ• ๋‹นํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$ArrayExample = $ArrayExample | Sort

PowerShell์—์„œ๋Š” ๋ฐฐ์—ด์—์„œ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•  ๋ฐฉ๋ฒ•์ด ์—†์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ArrayExample = $ArrayExample | where { $_ -ne โ€œFirstโ€ }

$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }

์–ด๋ ˆ์ด ์ œ๊ฑฐ:

$ArrayExample = $null

๋ฃจํ”„

๋ฃจํ”„ ๊ตฌ๋ฌธ:

for($i = 0; $i -lt 5; $i++){}

$i = 0
while($i -lt 5){}

$i = 0
do{} while($i -lt 5)

$i = 0
do{} until($i -lt 5)

ForEach($item in $items){}

์ค‘๋‹จ ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์† ์š”์†Œ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

์กฐ๊ฑด๋ฌธ

if () {} elseif () {} else

switch($someIntValue){
  1 { โ€œOption 1โ€ }
  2 { โ€œOption 2โ€ }
  default { โ€œNot setโ€ }
}

ํ•จ์ˆ˜

๊ธฐ๋Šฅ ์ •์˜:

function Example () {
  echo &args
}

๊ธฐ๋Šฅ ์‹คํ–‰:

Example โ€œFirst argumentโ€ โ€œSecond argumentโ€

ํ•จ์ˆ˜์—์„œ ์ธ์ˆ˜ ์ •์˜:

function Example () {
  param($first, $second)
}

function Example ($first, $second) {}

๊ธฐ๋Šฅ ์‹คํ–‰:

Example -first โ€œFirst argumentโ€ -second โ€œSecond argumentโ€

์˜ˆ์™ธ

try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€