Powershell: ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ ์ง€์› ๋ฒ„์ „ ๊ด€๋ฆฌ

์— ๋งŒ๋“  2020๋…„ 01์›” 23์ผ  ยท  60์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: PowerShell/PowerShell

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ/๊ฐœ์„  ์‚ฌํ•ญ ์š”์•ฝ

Get-Command๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ช…๋ น์— ๋Œ€ํ•œ ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋ช…๋ น์ด ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“ˆ์˜ ์ผ๋ถ€์ผ ๋•Œ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฒ„์ „์€ ์ •๋ง ๋ชจ๋“ˆ์šฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๊ธฐ๋Šฅ ์ˆ˜์ค€๋ณ„๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. PS1 ํŒŒ์ผ์— ๋‹จ์ผ ๊ธฐ๋Šฅ ๋ช…๋ น์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์†Œ์Šค๋ฅผ ์ฐ๊ณ  ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Get-Command๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ๋œ ๊ธฐ์ˆ  ๊ตฌํ˜„ ์„ธ๋ถ€ ์ •๋ณด(์„ ํƒ ์‚ฌํ•ญ)

System.Management.Automation.FunctionInfo ํด๋ž˜์Šค์—๋Š” ํ•„์š”ํ•œ ์†์„ฑ์ด ์žˆ์ง€๋งŒ ์ฝ๊ธฐ ์ „์šฉ์ž…๋‹ˆ๋‹ค. PowerShellGet ๋ฐ ๊ฒŒ์‹œ๋œ ์Šคํฌ๋ฆฝํŠธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” PScriptInfo ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋ฅผ PowerShell๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ PowerShell์ด โ€‹โ€‹์ฒ˜๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉํ•  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์„น์…˜์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Committee-Reviewed Issue-Enhancement Resolution-Answered

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์—ฌ Get-Command๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ Get-Function๊ณผ ๊ฐ™์€ ์ƒˆ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜๋ฟ์ž…๋‹ˆ๋‹ค. PowerShell ์Šคํฌ๋ฆฝํŒ…์„ ํ†ตํ•ด ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  60 ๋Œ“๊ธ€

๋ฒ„์ „์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด PowerShell ์–ธ์–ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์‹ถ์€์ง€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. cmdletbinding ํŠน์„ฑ์—์„œ?

๋‚ด ์ƒ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์„ ํ—ค๋”๋ฅผ ์ƒ์„ฑํ•˜๋Š” New-ScriptFileInfo์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

<#PSScriptInfo

.VERSION 1.0

.GUID 66c837b7-6478-4571-9dec-0621e13df4c3

.AUTHOR Jeff

.COMPANYNAME

.COPYRIGHT 2020

.TAGS

.LICENSEURI

.PROJECTURI

.ICONURI

.EXTERNALMODULEDEPENDENCIES 

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES


.PRIVATEDATA

#>

<# 

.DESCRIPTION 
 This is a cool function 

#> 
Param()

PSFunctionInfo๋กœ ๋งŒ๋“ค๊ณ  Get-Command์—์„œ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” PowerShell์ด โ€‹โ€‹#requires๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ #version์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊นŒ๋‹ค๋กœ์šด ๋ถ€๋ถ„์€ ๋™์ผํ•œ ps1 ํŒŒ์ผ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ ๊ธฐ๋Šฅ ์ž‘์„ฑ์ž๋กœ์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ตฌ๋ฌธ ๋ถ„์„๋œ ์ฃผ์„ ๋ธ”๋ก, ์ƒˆ๋กœ์šด cmdletbinding() ์˜ต์…˜ ๋˜๋Š” ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ํŠน์„ฑ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Function Get-Awesomeness {

 [cmdletbinding()]
 [alias("awe")]
 [outputtype("psobject")]
 [version("1.1.0")]

 Param ()

 ...
}

๊ธฐ๋Šฅ์—์„œ ๊ฐ’์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. PowerShellGet์— ๊ฒŒ์‹œํ•˜๊ณ  PowerShell ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋“ˆ๋กœ๋งŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ๋ก€/์›Œํฌํ”Œ๋กœ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐค๋Ÿฌ๋ฆฌ์— ๊ฒŒ์‹œ๋œ ์ ์ด ์—†๋Š” PowerShell ์†”๋ฃจ์…˜์„ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํšŒ์‚ฌ ํ™˜๊ฒฝ์—์„œ์™€ ๊ฐ™์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋กœ ํŒจํ‚ค์ง•๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํšŒ์‚ฌ ํ™˜๊ฒฝ์—์„œ ์ผํ•˜๊ณ  ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ๋ฒ„์ „์„ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์›ํ•ฉ๋‹ˆ๋‹ค. Get-Command Get-CompanyFoo๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ ์—์„œ ๋ชจ๋“ˆ์—์„œ๋„ ๋‚ด๋ณด๋‚ธ ๋ชจ๋“  ํ•จ์ˆ˜๋Š” ๋™์ผํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ๋ฐ ์˜์กดํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ํ—ฌํ”„ ๋ฐ์Šคํฌ ๊ธฐ์ˆ ์ž๊ฐ€ ๋‚ด ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ PowerShell์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น ๋ฒ„์ „์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ, ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ด๊ฒƒ์„ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ๋ชจ๋“ˆ์— ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋ช…๋ น๋ณ„ ๋ฒ„์ „์ด ๊ฐ์ง€๋˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“ˆ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@jdhitsolutions ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ท€ํ•˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—๋Š” (1) ๋ฒ„์ „ ์ถ”์  ์‹œ์Šคํ…œ, (2) ๋ฐฐํฌ ์‹œ์Šคํ…œ์˜ ๋‘ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ๋Š” GIT(๊ธฐํƒ€?)์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

(์š”์ฒญํ•œ ์†์„ฑ์˜ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜๋ฅผ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.)

๋‚˜๋Š” ์ •๊ธฐ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์— ๊ธฐ๋Šฅ์„ ๋‚จ๊ฒจ๋‘๋Š”๋ฐ, ์ด ๊ธฐ๋Šฅ์€ ํŠน์ • ํด๋ผ์ด์–ธํŠธ์—์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉํ•œ ์‹œ์ ์„ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ getWUlog๊ฐ€ ๋– ์˜ค๋ฆ…๋‹ˆ๋‹ค. WinRM๊ณผ psexec(139 ๋˜๋Š” 5985๊ฐ€ ์—ด๋ ค ์žˆ๋Š”์ง€ ํ™•์ธ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐํ•˜๊ณ  ํ•ด๋‹น ์ปดํ“จํ„ฐ์—์„œ WindowsUpdate ๋กœ๊ทธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋กœ์ปฌ ์ปดํ“จํ„ฐ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ฉ”๋ชจ์žฅ์„ ์—ฌ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” getFrameworkVersion์ž…๋‹ˆ๋‹ค. CIM ๋˜๋Š” ์›๊ฒฉ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ์ปดํ“จํ„ฐ์— ์„ค์น˜๋œ .NET Framework ๋ฒ„์ „์„ ์ฐพ๊ณ (๋‹ค์‹œ - ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ํฌํŠธ ํ™•์ธ), ์ด๋ฅผ ๋ณด๊ณ ํ•˜๊ณ  ์ฐจ๋‹จ๋œ ๋ฒ„์ „์— ๋Œ€ํ•ด ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ์–ด๋– ํ•œ.

์ด๋“ค์€ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ ์ง€๋‚œ ๋ช‡ ๋…„ ๋™์•ˆ ์ •๊ธฐ์ ์ธ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค.

๊ฐ๊ฐ์— ๋ฒ„์ „์„ ์ฒจ๋ถ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์†Œ์Šค ์ƒ๋‹จ์— "๋งˆ์ง€๋ง‰ ์ˆ˜์ • ๋‚ ์งœ"๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

๋‚ด ์ƒ๊ฐ์— ๋ฐฐํฌ๋Š” ์ด ํ† ๋ก ๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ˆ, git์ด ์—ญํ• ์„ ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. PowerShell์— ์žˆ๊ณ  ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ. Get-Command Get-Foo๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ•จ์ˆ˜์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ทธ๊ฒƒ๋งŒํผ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐฐํฌ๋˜์—ˆ๋Š”์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ์ ˆ๋Œ€์ ์œผ๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ, ๋‚˜๋Š” ์‚ฌ์šฉ์ž ๋˜๋Š” ์‹ฌ์ง€์–ด ๋‚˜ ์ž์‹ ์—๊ฒŒ ์†Œ์Šค๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋Œ“๊ธ€์ด๋‚˜ ๋ฉ”๋ชจ๋ฅผ ์ฐพ๋„๋ก ๊ฐ•์š”ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ™•์‹คํžˆ ์ผ๋ถ€ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์„ ์ž‘์„ฑ/์‚ฌ์šฉํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์€ ๋ชจ๋“ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„์€ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž„์˜์˜ ํ‘œ๋ฅ˜ ํ™”๋ฌผ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•ญ์ƒ ์ฃผ์„ ๋ธ”๋ก ๋‚ด์˜ .NOTES ์— ์˜๋ฏธ๋ก ์  ๋ฒ„์ „๊ณผ ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ๋„ฃ๊ณ  ์‹œ์ž‘ ๋ธ”๋ก์— [version]$Version ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค [version()] ๋˜๋Š” [cmdletbinding(Version='01.00.0000')] ์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ฐ–๋Š” ๊ฒƒ์€ ์žฅ๊ด€์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด psm1 ํŒŒ์ผ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๋„ฃ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— .VERSION๋ณด๋‹ค .VERSION์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค(๊ทธ๋ ‡์ง€๋Š” ์•Š์ง€๋งŒ).
git, btw๋„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์ปค๋ฐ‹ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ฒˆ๋“ค๋กœ ๋ฌถ๊ณ  ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋กœ ๋ชจ๋“ˆ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜, ๊ทธ๋ž˜, ๋‚˜๋„ ์•Œ์•„, ๋‚ด๊ฐ€ ์ด์ƒํ•ด.

์Šคํฌ๋ฆฝํŠธ๊ฐ€ $env:PATH ์— ์žˆ์œผ๋ฉด Get-Command์— ๋Œ€ํ•ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด ScriptFileInfo ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„์ „์„ ํฌํ•จํ•˜๋Š” ExternalScriptInfo ๋ฉค๋ฒ„์— ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

์Šคํ‹ฐ๋ธŒ์˜ ๊ฐ€์ •์— ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๋‹จ์ผ ps1 ํŒŒ์ผ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Get-Command๊ฐ€ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์‹ ๋ขฐํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์  ์žฅ, PowerShell ํ”„๋กœํ•„ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฒ„์ „์ด ์ง€์ •๋œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ ๋‚ด ํ”„๋กœํ•„ ์Šคํฌ๋ฆฝํŠธ์— ๋ฒ„์ „ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Version ์†์„ฑ์ด ์žˆ๋Š” System.Management.Automation.FunctionInfo ์œ ํ˜•์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ๋ฒ„์ „ ์†์„ฑ์ด ํ•จ์ˆ˜์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ์ฑ„์›Œ์ง€๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์€ ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์•„์ง ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. PowerShell์ด โ€‹โ€‹๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ผ๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ์–ด๋–ค ๋™์ž‘์ด ์˜ˆ์ƒ๋ฉ๋‹ˆ๊นŒ? ๋” ๋†’์€ ๋ฒ„์ „์œผ๋กœ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ฒ”์œ„๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ(ํ˜„์žฌ ๋ฒ”์œ„์—์„œ ์ด์ „ ํ•จ์ˆ˜๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•จ - ์ „์—ญ ๋ฒ”์œ„์—์„œ ๋” ๋งŽ์€ ์ƒˆ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•จ)? ์•„๋‹ˆ๋ฉด ์ •๋ณด ์†์„ฑ๋งŒ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์—ฌ Get-Command๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ Get-Function๊ณผ ๊ฐ™์€ ์ƒˆ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜๋ฟ์ž…๋‹ˆ๋‹ค. PowerShell ์Šคํฌ๋ฆฝํŒ…์„ ํ†ตํ•ด ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์•„์ง ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. PowerShell์ด โ€‹โ€‹๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ผ๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ์–ด๋–ค ๋™์ž‘์ด ์˜ˆ์ƒ๋ฉ๋‹ˆ๊นŒ? ๋” ๋†’์€ ๋ฒ„์ „์œผ๋กœ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ฒ”์œ„๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ(ํ˜„์žฌ ๋ฒ”์œ„์—์„œ ์ด์ „ ํ•จ์ˆ˜๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•จ - ์ „์—ญ ๋ฒ”์œ„์—์„œ ๋” ๋งŽ์€ ์ƒˆ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•จ)? ์•„๋‹ˆ๋ฉด ์ •๋ณด ์†์„ฑ๋งŒ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

PS๊ฐ€ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์— ๋ณ€ํ™”๋ฅผ ์ œ์•ˆํ•œ ์‚ฌ๋žŒ์€ ์•„๋ฌด๋„ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹จ์ง€ ๊ทธ๋“ค์— ๋ฒ„์ „์„ ๋„ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ •๋ณด ์ œ๊ณต ๋ฐ ์‹ฌ๋ฌธ ๋ฐฉ๋ฒ•.

๊ฐ์‚ฌ ํ•ด์š”! ๋‹ค์Œ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ํŒŒ์ผ์€ ํŒŒ์ผ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๊ณตํ†ต์ ์ธ ๋ฒ„์ „ ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

PowerShell ์Šคํฌ๋ฆฝํŒ…์„ ํ†ตํ•ด ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ ์—์„œ ์•„์ด๋””์–ด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‚ด ๊ณ„ํš์ด์•ผ.

ํด๋ž˜์‹ ๋ฒ„์ „ ๋˜๋Š” SymVer 2.0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ์ ์  ๋” ํ•จ์ˆ˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์ข‹์€ ๊ฒƒ์ด๋ผ๋Š” ํ™•์‹ ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@iSazonov ์ตœ์‹  ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๋ฉด - ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค๋ฉด SymVer๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜ ํŒŒ์ผ๊ณผ ๊ด€๋ จํ•˜์—ฌ - ๋‚˜๋Š” ์†์„ฑ์ด ํŒŒ์ผ๋ณ„ ์†์„ฑ์ด ์—†๋Š” ํ•จ์ˆ˜๋ณ„๋กœ ์žˆ๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚ ์˜ CMDLETBinding์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํ† ํƒ€์ž…์ด ##11686์— ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค.

PR์—์„œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ƒˆ๋กœ์šด ์†์„ฑ์œผ๋กœ ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ฌ์ฝคํ•œ.

๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณด์‹ญ์‹œ์˜ค - ์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „์„ ํฌํ•จํ•˜๋„๋ก PSVersionAttribute๋ฅผ ํ™•์žฅํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“ˆ๊ณผ (์ง€๊ธˆ์ด์—ˆ์œผ๋ฉด!) ํ•จ์ˆ˜์˜ ๋ฒ„์ „์„ ๋งŒ๋“ ๋‹ค๋ฉด ์™œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์•ˆ ๋ ๊นŒ์š”?

PSVersionAttribute๋Š” ์Šคํฌ๋ฆฝํŠธ์— ์ •์˜๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ฌป๊ธฐ ์ „์—... ํ•จ์ˆ˜ ์‹คํ–‰์— ๋ฒ„์ „์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ํ•จ์ˆ˜๋ฅผ ๋กœ๋“œํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹คํ–‰ํ•  ํŠน์ • ๋ฒ„์ „์„ ์•Œ๋ ค์ฃผ๋Š” -PSFunctionVersion ๊ณตํ†ต ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด ๋” ๋งŽ์€ ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฒ„์ „์ด ์ง€์ •๋œ ํ•จ์ˆ˜ ์‹คํ–‰์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

[CmdletBinding()] ๊ฐ€ ํ•จ์ˆ˜์™€ ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋‘์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์†์„ฑ์ด๋ผ๋ฉด ํ•ญ์ƒ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์™€ ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋‘์— ํ•ญ์ƒ [PSVersion()] ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํฅ๋ฏธ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๐Ÿ™‚

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ๋Œ€๋ถ€๋ถ„์˜ ๋ฒ„์ „ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ชจ๋“ˆ์—์„œ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์ผ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์Šคํฌ๋ฆฝํŠธ์™€ ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋งค์šฐ ํฅ๋ฏธ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์—ฌ Get-Command๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ Get-Function๊ณผ ๊ฐ™์€ ์ƒˆ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜๋ฟ์ž…๋‹ˆ๋‹ค. PowerShell ์Šคํฌ๋ฆฝํŒ…์„ ํ†ตํ•ด ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ˆœ์ˆ˜ํ•œ ๋ฌธ์„œํ™”๋กœ ์ œํ•œํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ•จ์ˆ˜ ๋ฒ„์ „์„ ์ง€์ •ํ•˜๊ณ  ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ˜„๋ช…ํ•˜์ง€ ์•Š์„๊นŒ์š”?

์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ํ•จ์ˆ˜๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•  ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๋ฒ„์ „ ์ค‘์—์„œ ์„ ํƒํ•˜์—ฌ gcm์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ ๋ชฉ๋ก์— ๋กœ๋“œํ•œ ๋‹ค์Œ ํ•ด๋‹น ๋ฒ„์ „์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ScriptFileInfo ๋ช…๋ น์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์—…ํ•œ ๊ฐœ๋… ์ฆ๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://gist.github.com/jdhitsolutions/65070cd51b5cfb572bc6375f67bcbc3d

๋‚ด๊ฐ€ ์‹ค์ œ๋กœ ๋ชจ๋ธ๋งํ•˜๊ฑฐ๋‚˜ ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ์ ์ ˆํ•œ ์œ ํ˜•์ด ์žˆ์œผ๋ฏ€๋กœ Get-Command๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

image

๊ทธ๋ฆฌ๊ณ  ํ˜ผํ•ฉ๋œ ํŒŒ์ผ์„ ์–ป์Šต๋‹ˆ๋‹ค.
image

ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋“ˆ์— ์†ํ•˜๋Š” ๊ฒฝ์šฐ ๋ช…๋ น ๋ฒ„์ „ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์š”์ 
PowerShell ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ๊ฐœ๋… ์ฆ๋ช… - PSFunctionInfo.format.ps1xml

์ข‹์€ ์ œํ”„!

๊ทธ๋ ‡๋‹ค๋ฉด ๋™์ผํ•œ ๊ธฐ๋Šฅ์˜ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ๊นŒ์š”?
ํŠน์ • ๊ธฐ๋Šฅ ๋ฒ„์ „์„ ์–ด๋–ป๊ฒŒ ๋ช…์‹œ์ ์œผ๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๊นŒ?
ํŠน์ • ๋ฒ„์ „์˜ ํ•จ์ˆ˜๋ฅผ ์–ด๋–ป๊ฒŒ ๋ช…์‹œ์ ์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๊นŒ?

@doctordns ๋ฌด์—‡์„ ์‹คํ–‰ํ• ์ง€ ํŒŒ์•…ํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๊ท€ํ•˜์˜ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœํ† ํƒ€์ž… ์ฝ”๋“œ๋Š” ๋‹จ์ˆœํžˆ FunctIon: Psdrive์˜ ํ•ญ๋ชฉ์„ ๋‚˜์—ดํ•˜๊ณ  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ psdrive์— ์ค‘๋ณต ๊ธฐ๋Šฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชฉํ‘œ๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์ด ๋กœ๋“œ๋œ ๊ฒฝ์šฐ ๋ฒ„์ „ ๋ฐ ๊ธฐํƒ€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PowerShell์ด โ€‹โ€‹_scripts_์— ๋Œ€ํ•œ _embedded_ PSScriptInfo ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ง€์›ํ•œ๋‹ค๋ฉด ํ›Œ๋ฅญํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ... _function_ ์ˆ˜์ค€์—์„œ๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

๋ฒ„์ „์€ ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ญ”๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค

PowerShell์€ ํ˜„์žฌ ๋ช…๋ น์˜ ๋ฒ„์ „์„ _๋ณด๊ณ _ํ•˜์ง€๋งŒ ์‹ค์ œ ๋ฒ„์ „์€ _module_์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋ฒ„์ „์„ ๊ฐ–๋Š” ๊ฒƒ์€ ๋„์›€์ด ๋˜์ง€ ์•Š์„ ๋ฟ ์•„๋‹ˆ๋ผ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€๊ณ„์—†์ด ํ•˜์œ„ ํŒŒ์ผ "๋ฉ์–ด๋ฆฌ"๋ฅผ ๋ฐฐํฌํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ(๋˜๋Š” ์ „์ฒด ํŒŒ์ผ์„ ์ œ์™ธํ•œ ์–ด๋–ค ๊ฒƒ๋„ ๋กœ๋“œํ•  ์ˆ˜ ์—†์Œ)์„ ๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ๊ณผ ์Šคํฌ๋ฆฝํŠธ์šฉ ๋ฒ„์ „์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” _module_์—์„œ ํ•ด๋‹น ๋ฒ„์ „์„ ์ƒ์†ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ์—๋Š” ์ž์ฒด ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ก์„ ์œ„ํ•ด:

์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ .ps1 ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ™•์žฅ์ž๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฏ€๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” _functions_์„ ๋ชจ๋“ˆ ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ฐฐํฌํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์„ ์ ๊ทน์ ์œผ๋กœ ๊ถŒ์žฅํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿคจ

@Jaykul ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋“ˆ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ ๋ชฉํ‘œ๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š” ๋ชจ๋“ˆ ๋ฒ„์ „์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์‹ฑ๋œ ํ”„๋กœํ•„ ๋˜๋Š” ์ ์— ๋กœ๋“œ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…์„ ๋ชจ๋“ˆ์— ๋กœ๋“œํ•˜๊ณ  ๋นŒ๋“œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๋น„ ๋ชจ๋“ˆ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์—์„œ ๋กœ๋“œ๋œ ๋ช…๋ น๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฒ„์ „ ๋ฐ ๊ธฐํƒ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์บก์ฒ˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋Œ€๋‹ต์€ ๋‚ด ํ”„๋กœํ† ํƒ€์ž…๊ณผ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋ช…๋ น์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Jaykul ์ œ ์ƒ๊ฐ์— ์šฐ๋ฆฌ ์ค‘ ๋ช‡๋ช‡์€ ์ด๋ฏธ ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ์—๊ฒŒ ์œ ์šฉํ•  ๊ฒƒ์ด๋ฉฐ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ๋‹จ์ผ ๊ธฐ๋Šฅ์„ ๋ฐฐํฌํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

IMO, ๋ชจ๋“  ๊ฒƒ์— ๋ชจ๋“ˆ์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ œ์•ˆ๋œ ๊ธฐ๋Šฅ์ด ์œ ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ ์ค‘ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ผ๋Š” ์•„์ด๋””์–ด๊ฐ€ ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ์†”๋ฃจ์…˜์„ ํ•œ๋‹ค๋ฉด ์ฃผ์„์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์•ฝ๊ฐ„์˜ ๋ฌธ์„œ ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋กœ๋“œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ์—†๋‹ค๋ฉด ์ด๊ฒƒ์€ ์ง€๊ธˆ์œผ๋กœ์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

7.0์—์„œ๋Š” ์ด ์•„์ด๋””์–ด๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋ฏน์Šค์— ๋ฐ€์–ด๋„ฃ๊ธฐ์—๋Š” RTM์— ๋„ˆ๋ฌด ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. NT 5days์— ๋Œ€ํ•œ ๋‚˜์œ ๊ธฐ์–ต์ด ์žˆ์Šต๋‹ˆ๋‹ค!! ์ด๊ฒƒ์„ 7.1๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋ฉด ์™„์ „ํžˆ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์ด์•ผ๊ธฐํ•ฉ์‹œ๋‹ค. ๋งˆ์ง€๋ง‰ ์ˆœ๊ฐ„์— ์ด๊ฒƒ์„ ๋ฐ€์–ด๋‚ด๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ์‹ค๋ง์„ ์•ผ๊ธฐํ•˜๋Š” ํ™•์‹คํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด 7.1 ์ถ”๊ฐ€ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ๋กœ๋“œํ•˜๋Š” ๋ฌธ์ œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋‚ด๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์†Œ์Šค๋ฅผ ํŒŒํ—ค์น  ํ•„์š” ์—†์ด ๋กœ๋“œ๋œ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํ•จ์ˆ˜์—์„œ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

7.1์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

๋™์‹œ์— ๋‚˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ๋ฌธ์„œ ์†”๋ฃจ์…˜์ด ๋ฒ„์ „ ๊ธฐ๋ฐ˜ ๋Ÿฐํƒ€์ž„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์š”์ฒญ๋งŒ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์™„๋ฒฝํ•˜๊ณ  ์šฐ์•„ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—”์ง€๋‹ˆ์–ด๋ง๋œ ์†”๋ฃจ์…˜์„ ๊ณ ๋ คํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. .

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ์†”๋ฃจ์…˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์— ๋กœ๋“œ๋œ ๊ฒƒ์ด ์ด๊น๋‹ˆ๋‹ค. :-)

๋‹ค๋ฅธ ๋ฒ„์ „ ๋“ฑ์˜ ๋กœ๋“œ๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋Šฅ์ด ์—†์œผ๋ฉด ํ˜„์žฌ๋กœ์„œ๋Š” ์ด ๊ธฐ๋Šฅ ์—†์ด๋Š” ํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜์˜ ๋ฒ„์ „์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ ์™„์ „ํžˆ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ์ตœ์ƒ์˜ ์ ˆ์ถฉ์•ˆ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „ ํ™•์ธ์€ ๋ชจ๋“ˆ ๋กœ๋“œ ์‹œ ํ•œ ๋ฒˆ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

@SteveL-MSFT PowerShell ์œ„์›ํšŒ ๊ฒฐ๋ก ์„ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ํƒ€์ž… #11686.

์Šคํฌ๋ฆฝํŠธ์šฉ ๋ฒ„์ „์ด ์—”์ง„์— ์žˆ๋Š” ๊ฒƒ์ด ์œ ์šฉํ•˜๋‹ค๋Š” ๋ฐ ๋ชจ๋‘ ๋™์˜ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ชจ๋“ˆ ๊ฐœ๋…์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋Šฅ์˜ ๋ฒ„์ „์ด ์˜์‹ฌ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์ œํ•œ์€ ๋กœ๋“œ๋œ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ๊ธฐ๋Šฅ์˜ ๋ฒ„์ „๋งŒ ๋ณผ ์ˆ˜ ์žˆ๊ณ  import-module์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ฒ„์ „์„ ๋กœ๋“œํ•˜์ง€๋งŒ get-module์—๋„ ๋ช…์‹œ์ ์ธ ๋ฒ„์ „ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ง€๋‚˜์น˜๊ฒŒ ์ƒ๊ฐํ•˜๊ฑฐ๋‚˜ ํ•„์š” ์ด์ƒ์œผ๋กœ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ชจ๋“ˆ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์€ ๋ชจ๋“ˆ์— ์†ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์นจํ‘œ. ๊ถŒ์žฅ๋˜๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๋•์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ๋ชจ๋“ˆ๊ณผ ํ•จ๊ป˜ ๋ฐฐํฌ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋ฐฐํฌ

Get-Command๊ฐ€ ์ด ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ๋˜๊ธฐ๋ฅผ ํฌ๋งํ–ˆ์ง€๋งŒ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์™„์ „ํžˆ ๋ณ„๋„์˜ ๊ฒƒ์œผ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ๊ทธ ๋Œ€๋‹ต์€ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋งก๊ธฐ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ์†”๋ฃจ์…˜์„ ์ž˜ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ •์งํ•œ ์‚ฌ์‹ค์€ ๋„ํŠธ ์†Œ์‹ฑ ๊ธฐ๋Šฅ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์ด ์•„๋‹ˆ๋ฉฐ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์ด v2์— ๋‚˜์™”์„ ๋•Œ๋ถ€ํ„ฐ ๊ถŒ์žฅ๋˜์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›๊ฒฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์‹œ๊ฐ„์€ v1์—์„œ์˜€์Šต๋‹ˆ๋‹ค.

์ด์ œ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์€ ์‹ค์ œ๋กœ๋Š” ํ”„๋กœํ•„์˜ ์ผ๋ถ€๋กœ ๋กœ๋“œํ•˜๊ฑฐ๋‚˜(์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•ด์•ผ ํ•จ) ๋” ์‰ฌ์šด ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๋” ํฐ ์Šคํฌ๋ฆฝํŠธ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“ˆ ๋‚ด์— ๋ฐฐ์น˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” xyz ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋‹จ์ผ ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ๋ณ€๊ฒฝ์ด ํ•จ์ˆ˜ ์ •์˜์— ์ œ์•ˆ๋œ [Version] ์†์„ฑ์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์ด์ ๋ณด๋‹ค ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋” ๋งŽ์€ ํ˜ผ๋ž€์„ ์ค„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ชจ๋“ˆ ๋ฐ ํ•จ์ˆ˜ ๋ฒ„์ „์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ์ ์ ˆํ•˜๊ณ  ์‹ค์ œ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ชจ๋“ˆ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ์ด๊ฒƒ์€ ๋‹น์‹ ์ด psd1๊ณผ psm1์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ ์ ˆํ•œ ๋ฐœ๊ฒฌ๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•ด 2๊ฐœ์˜ ํŒŒ์ผ์€ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ํฐ ์š”๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์•„์‹œ๋‹ค์‹œํ”ผ ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋™์˜ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋Œ€์‹  ์ง‘์ค‘ํ•ด์•ผ ํ•  ๋” ๋‚˜์€ ์‚ฌํ•ญ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ์ด๊ฒƒ์€ ๋‹น์‹ ์ด psd1๊ณผ psm1์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ ์ ˆํ•œ ๋ฐœ๊ฒฌ๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•ด 2๊ฐœ์˜ ํŒŒ์ผ์€ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ํฐ ์š”๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์˜ˆ, ๊ทธ๊ฒƒ์€ ํฐ ์š”๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ๊ฐœ๋ฐœ์ž๋กœ ๋งŒ๋“ค๋ ค๋Š” ์‹œ๋„๋Š” ์ง„์ž… ์žฅ๋ฒฝ์„ ํฌ๊ฒŒ ๋†’์ž…๋‹ˆ๋‹ค.

"์˜ค ์ด๊ฒƒ์„ ์—ฌ๊ธฐ์— ๋ณต์‚ฌํ•˜๊ณ  ๊ฑฐ๊ธฐ์— ๋ณต์‚ฌํ•œ ๋‹ค์Œ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ "์ด๊ฒƒ์„ ๋ณต์‚ฌํ•˜์—ฌ run.ps1์ด๋ผ๋Š” ํŒŒ์ผ์— ๋ถ™์—ฌ๋„ฃ๊ณ  ,\run์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋ณต์žกํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. .ps1".

์ด๊ฒƒ์€ ์‚ฌ์†Œํ•œ ๋ณ€๊ฒฝ์ด๋ฉฐ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ๋˜๋Š” null-coalescing(๋‚˜๋Š” ์•„์ง ์ดํ•ดํ•˜์ง€ ๋ชปํ•จ) ๋˜๋Š” ๊ฐœ๋ฐœ์ž์ธ ์—ฌ๋Ÿฌ๋ถ„์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋‹ค๋ฅธ ๋งŽ์€ ์ตœ๊ทผ ๋ณ€๊ฒฝ๋ณด๋‹ค ์บ์ฃผ์–ผ/๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํ„ฐ์—๊ฒŒ ํ›จ์”ฌ ๋” ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋งํ–ˆ๋“ฏ์ด ๊ธฐ๋Šฅ ๋ฒ„์ „์— ๋Œ€ํ•ด ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

@SteveL-MSFT ๋‚˜๋Š” PowerShell ์œ„์›ํšŒ๊ฐ€ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ฒ„์ „ ์ง€์› ์š”์ฒญ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ† ํƒ€์ž…์€ #11686์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์งํ•œ ์‚ฌ์‹ค์€ ๋„ํŠธ ์†Œ์‹ฑ ๊ธฐ๋Šฅ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉฐ ์–ด์จŒ๋“  ์ด ์š”์ฒญ์˜ ์œ ์ผํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์ด v2์— ๋‚˜์™”์„ ๋•Œ ๋ช‡ ๋…„ ๋™์•ˆ ๊ถŒ์žฅ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์›๊ฒฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์‹œ๊ฐ„์€ v1์—์„œ์˜€์Šต๋‹ˆ๋‹ค.

์ด์ œ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์€ ์‹ค์ œ๋กœ๋Š” ํ”„๋กœํ•„์˜ ์ผ๋ถ€๋กœ ๋กœ๋“œํ•˜๊ฑฐ๋‚˜(์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•ด์•ผ ํ•จ) ๋” ์‰ฌ์šด ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๋” ํฐ ์Šคํฌ๋ฆฝํŠธ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“ˆ ๋‚ด์— ๋ฐฐ์น˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” xyz ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋‹จ์ผ ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ๋ณ€๊ฒฝ์ด ํ•จ์ˆ˜ ์ •์˜์— ์ œ์•ˆ๋œ [Version] ์†์„ฑ์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์ด์ ๋ณด๋‹ค ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋” ๋งŽ์€ ํ˜ผ๋ž€์„ ์ค„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ชจ๋“ˆ ๋ฐ ํ•จ์ˆ˜ ๋ฒ„์ „์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ์ ์ ˆํ•˜๊ณ  ์‹ค์ œ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ชจ๋“ˆ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ์ด๊ฒƒ์€ ๋‹น์‹ ์ด psd1๊ณผ psm1์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ ์ ˆํ•œ ๋ฐœ๊ฒฌ๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•ด 2๊ฐœ์˜ ํŒŒ์ผ์€ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ํฐ ์š”๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์˜ˆ, ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“ˆ์„ ๋ฒ„์ „ํ™”ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ;-)

์•„์‹œ๋‹ค์‹œํ”ผ, ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— _๋™์˜ํ•˜์ง€ ์•Š์œผ๋ฉฐ_ ๋Œ€์‹  ์ง‘์ค‘ํ•ด์•ผ ํ•  ๋” ๋‚˜์€ ์‚ฌํ•ญ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ [CmdletBinding()] ๋˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์š”๋˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.
๋ช…๋ น ๋ฐ cmdlet์—๋Š” ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ์ž์ฒด์— ๋ฒ„์ „์ด ์žˆ๋Š” ๊ฒฝ์šฐ _ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋“ˆ ๋‚ด์— ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด_ ์ด๋Š” ๋‹จ์ˆœํžˆ ์‚ฌ์†Œํ•˜์ง€๋งŒ ์œ ์šฉํ•œ ๋ฌธ์„œ ์š”์ ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค ์ž์‹ ์˜ ๊ฐœ๋ณ„ ๋ชจ๋“ˆ์„ ์ •๋‹นํ™”ํ•˜์ง€ ์•Š๋Š” ๋‹ค์–‘ํ•˜๊ณ  ๊ด€๋ จ ์—†๋Š” ๋„๊ตฌ๋กœ ์ˆ˜๋งŽ์€ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชจ๋“ˆ์ด MiscStuff 1.1.0002 ์ด๋ฉด ๋ฐฐํฌ ๋ถ€๋ถ„์— ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋‚ด๋ถ€์— 30๊ฐœ์˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ๊ณ  ๋‚ด๊ฐ€ Do-Thing 7.9.0 ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜๊ณ  ์ด๋ฅผ ๋‚ด ๋ณ€๊ฒฝ ๋กœ๊ทธ์˜ ํ•ญ๋ชฉ๊ณผ ์—ฐ๊ด€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด(๊ทธ๋ ‡๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค!) ์ด๊ฒƒ์€ ์›ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค์ด ์š”๊ตฌํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@PowerShell/powershell-committee๊ฐ€ ์ด๋ฅผ ๊ฒ€ํ† ํ–ˆ์œผ๋ฉฐ ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ ์ ˆํ•œ ์†”๋ฃจ์…˜์€ ๋ชจ๋“ˆ์—์„œ ์ด๋ฅผ ๋ž˜ํ•‘ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋“ˆ ๋‚ด์— ์žˆ์ง€๋งŒ ๊ณ ์œ ํ•œ ๋ฒ„์ „ ์†์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์ด ๋ฌด์—‡์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ์ƒˆ ํŠน์„ฑ์„ ์กด์ค‘ํ•˜๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” PowerShell, PowerShellGet ๋ฐ PSGallery์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์šฐ๋ ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๋Œ€ ํด๋”(๋ชจ๋“ˆ)๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ zip/nupkg ๋ชจ๋“ˆ์„ ์ง์ ‘ ๊ฐ€์ ธ์˜ค๊ณ  .ps1์„ ๋ชจ๋“ˆ๋กœ ์‰ฝ๊ฒŒ

๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํ„ฐ ๋กœ์„œ #7259์™€ ์ด ์š”์ฒญ(#11667)์ด ์„œ๋กœ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํ„ฐ ๋กœ์„œ ๋‚˜๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜์™€๋Š” ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ๊ฐ€์น˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ์˜ค๋ฒ„ํ—ค๋“œ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ๋น„์Šคํƒ€ํ„ฐ์ž…๋‹ˆ๋‹ค. (๋‚˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํ„ฐ์˜ ๊ฒฝ์šฐ - ์œ„์›ํšŒ๋Š” ๊ธฐ๋Šฅ/ํ•„ํ„ฐ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ œ์•ˆํ•ฉ๋‹ˆ๊นŒ?

๋ฐ˜๋Œ€๋Š” ์•„๋‹ˆ์ง€๋งŒ... ๋ฒ„์ „ ๊ด€๋ฆฌ ์ž์ฒด๋Š” ๋Œ€์ฒด๋กœ ๊ฐœ๋ฐœ์ž ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์žฅ์†Œ์—์„œ ์™œ ์—ฌ๊ธฐ์— ์ด โ€‹โ€‹์„ ์„ ๊ทธ๋ฆฌ๋ ค๊ณ  ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜•

์ˆ˜์‹ญ ๊ฐœ์˜ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ธฐ๋Šฅ๊ณผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถœ์‹œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ์—†์ด. ์ด๊ฒƒ์€ ์ €์™€ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” ๋ธ”๋กœ๊ฑฐ/์ถœํŒ์ž๋“ค์˜ ์ด์ „ ์˜๊ฒฌ์—์„œ ์ด๋ฏธ ๋‹ค๋ค˜์Šต๋‹ˆ๋‹ค.

#7259์™€ ์ด ์š”์ฒญ(#11667)์€ ์•„๋ฌด ์ƒ๊ด€์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋„ค ์ €๋„ ์†”์งํžˆ ์—ฐ๊ฒฐ์ด ์ž˜ ์•ˆ๋˜๋„ค์š”.

๋‚˜๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

FWIW์—์„œ๋Š” ํ™•์žฅ์ž๋ฅผ psm1 ํ•˜๊ณ  (์„ ํƒ์ ์œผ๋กœ) New-ModuleManifest ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋งŽ์€ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜์™€๋Š” ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ๊ฐ€์น˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์†Œ๋น„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒŒ์‹œํ•˜๋Š” ๊ฒฝ์šฐ ํ™•์‹คํžˆ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๋ฒ”์œ„๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์€ ๋ˆ„๊ตฐ๊ฐ€์˜ ์ „์—ญ ์„ธ์…˜ ์ƒํƒœ๋ฅผ ๋ฐŸ๋Š” ๊ฒƒ์„ ํ›จ์”ฌ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ๋Šฅ์€ ํ™˜๊ฒฝ์˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ฐจ์ด์— ๋Œ€ํ•ด ํ›จ์”ฌ ๋” ํƒ„๋ ฅ์ ์ž…๋‹ˆ๋‹ค.

์„ญ์ทจํ•˜๊ธฐ๋„ ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ๋žŒ๋“ค์€ ์  ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋ฉฐ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์  ์†Œ์‹ฑํ•œ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ๋กœ ์ถœ์‹œํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์ด ๋ฏธ๋ฆฌ ๋ฐฐํฌํ•˜๊ณ  ์›ํ•  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์›ํšŒ๋Š” ๊ธฐ๋Šฅ/ํ•„ํ„ฐ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ œ์•ˆํ•ฉ๋‹ˆ๊นŒ?

๊ฐœ๋ณ„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ตฌํ˜„๋œ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฒ„์ „์„ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๊นŒ?

๊ทธ๋ ‡๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ฟผ๋ฆฌํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? #requires ํƒœ๊ทธ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์‹ญ๋‹ˆ๊นŒ?

์†Œ์Šค์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์ผ ๊ฒฝ์šฐ ์ฃผ์„ ๊ธฐ๋ฐ˜ ๋„์›€๋ง์˜ NOTES ์„น์…˜์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PowerShell ์œ„์›ํšŒ ๊ฒฐ๋ก ์— ๋”ฐ๋ผ ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜์ง€๋งŒ(์ถ”์  ์ค‘์ง€) ์ž์œ ๋กญ๊ฒŒ ํ† ๋ก ์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ €๋Š” ์˜ค๋Š˜ NOTES ์„น์…˜๊ณผ $pVersion/$pName์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ ๋Œ€๋ถ€๋ถ„์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ "๋‚˜๋Š” ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค"๋ผ๊ณ  ์ผ์„ ๋•Œ ๋‚˜๋Š” ํŠน์ •ํ•œ ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ์‚ฌ๋žŒ์— ๋Œ€ํ•ด ๋งํ•˜๊ณ  ์žˆ์—ˆ๋‹ค(๋‚˜๋Š” ๊ทธ ๋ฒ”์ฃผ์— ์†ํ•˜์ง€๋งŒ).

๋ฐ $pVersion/$pName

๊ทธ๊ฒƒ๋“ค๋กœ ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ? ๊ฒŒ์‹œํ•œ ๋Š์Šจํ•œ ๊ธฐ๋Šฅ์˜ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ "๋‚˜๋Š” ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค"๋ผ๊ณ  ์ผ์„ ๋•Œ ๋‚˜๋Š” ํŠน์ •ํ•œ ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ์‚ฌ๋žŒ์— ๋Œ€ํ•ด ๋งํ•˜๊ณ  ์žˆ์—ˆ๋‹ค(๋‚˜๋Š” ๊ทธ ๋ฒ”์ฃผ์— ์†ํ•˜์ง€๋งŒ).

๋„ค, ๋ถ„๋ช…ํžˆ ๋ชจ๋“ˆ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ๋“ค์„ ๋งŽ์ด ์•Œ๊ณ  ์žˆ๊ณ  ํ˜„์žฌ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๋ช‡ ๋…„ ์ „์—๋Š” ์‚ฌ๋žŒ๋“ค์ด๋ผ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋“ค์ด ์กด์žฌํ•œ๋‹ค๋Š” ์ฃผ์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ทธ ์‚ฌ๋žŒ๋“ค๊ณผ 1. ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ 2. ์ž์‹ ์˜ ์ž‘์—…์„ ์ถœํŒํ•˜๊ณ  ์‹ถ์€ ๋งˆ์Œ์ด ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค ์‚ฌ์ด์˜ ๊ฒน์นจ์€ ์ œ ๊ฒฝํ—˜์— ๊ฑฐ์˜ 0์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ 1๋ฒˆ๊ณผ 2๋ฒˆ ํ™•์ธ๋ž€์„ ์„ ํƒํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ฒŒ์‹œํ•˜๊ธฐ ์ „์— ๋ชจ๋“ˆ์„ ์ •๋ง ๋นจ๋ฆฌ ๋ž˜ํ•‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Google์— 10๋ถ„ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋˜๋Š” ๋” ์ž์ฃผ, ๊ทธ๋“ค์€ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์š”์ ์ด๋‚˜ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์— ๊ทธ๊ฒƒ์„ ๊ฝ ๋‹ซ์Šต๋‹ˆ๋‹ค.

๋ฐ $pVersion/$pName

๊ทธ๊ฒƒ๋“ค๋กœ ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ? ๊ฒŒ์‹œํ•œ ๋Š์Šจํ•œ ๊ธฐ๋Šฅ์˜ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ "๋‚˜๋Š” ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค"๋ผ๊ณ  ์ผ์„ ๋•Œ ๋‚˜๋Š” ํŠน์ •ํ•œ ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ์‚ฌ๋žŒ์— ๋Œ€ํ•ด ๋งํ•˜๊ณ  ์žˆ์—ˆ๋‹ค(๋‚˜๋Š” ๊ทธ ๋ฒ”์ฃผ์— ์†ํ•˜์ง€๋งŒ).

๋„ค, ๋ถ„๋ช…ํžˆ ๋ชจ๋“ˆ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ๋“ค์„ ๋งŽ์ด ์•Œ๊ณ  ์žˆ๊ณ  ํ˜„์žฌ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๋ช‡ ๋…„ ์ „์—๋Š” ์‚ฌ๋žŒ๋“ค์ด๋ผ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋“ค์ด ์กด์žฌํ•œ๋‹ค๋Š” ์ฃผ์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ทธ ์‚ฌ๋žŒ๋“ค๊ณผ 1. ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ด€์‹ฌ์ด ์žˆ๊ณ  2. ์ž์‹ ์˜ ์ž‘์—…์„ ๊ฒŒ์‹œํ•˜๊ณ  ์‹ถ์€ ๋งˆ์Œ์ด ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค ์‚ฌ์ด์˜ ๊ฒน์นจ์€ ์ œ ๊ฒฝํ—˜์— _๊ฑฐ์˜_ 0์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ 1๋ฒˆ๊ณผ 2๋ฒˆ ํ™•์ธ๋ž€์„ ์„ ํƒํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ฒŒ์‹œํ•˜๊ธฐ ์ „์— ๋ชจ๋“ˆ์„ ์ •๋ง ๋นจ๋ฆฌ ๋ž˜ํ•‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Google์— 10๋ถ„ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋˜๋Š” ๋” ์ž์ฃผ, ๊ทธ๋“ค์€ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์š”์ ์ด๋‚˜ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์— ๊ทธ๊ฒƒ์„ ๊ฝ ๋‹ซ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ๋“ค์„ ํ•ญ์ƒ ์”๋‹ˆ๋‹ค. ๋นŒ์–ด ๋จน์„, ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ๋‚ด๋ถ€ ๋ชจ๋“ˆ์€ ๋งŽ์€ ์‹œ๊ฐ„, ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๋ณ€๊ฒฝ ๋กœ๊ทธ (ํ•จ์ˆ˜์—) ์™ธ๋ถ€๋กœ ๊บผ๋‚ดํ•˜์ง€ ์•Š๊ณ  ๋งˆ์ง€๋ง‰ ํ•จ์ˆ˜์—์„œ ๋ณ€๊ฒฝ ๋ฌด์—‡์„ ์ถ”์  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‚˜๋Š” ๋‚ด๋ถ€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ .VERSION ๊ฐ€ ๋ชจ๋“ˆ ๋ฒ„์ „์„ ๋ฐฉํ•ดํ•˜๋Š” ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚œ ๊ทธ๋ƒฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ๋“ค์„ ํ•ญ์ƒ ์”๋‹ˆ๋‹ค. ์  ์žฅ, ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋Š” _inside_ _modules_ ๋งŽ์€ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋‚ด๋ถ€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์™ธ๋ถ€(ํ•จ์ˆ˜์— ๋Œ€ํ•œ) ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ํ•„์š” ์—†์ด ํ•จ์ˆ˜์—์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ .VERSION ๊ฐ€ ๋ชจ๋“ˆ ๋ฒ„์ „์„ ๋ฐฉํ•ดํ•˜๋Š” ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚œ ๊ทธ๋ƒฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋งž์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ทธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ๋ฌด์—‡์„ ํ•  ๊ฑด๊ฐ€์š”? ํ•จ์ˆ˜์˜ ์†Œ์Šค์—์„œ ๋ณด๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด .NOTES ์„น์…˜์ด ์–ด๋–ป๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์€์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ ์ด ๋ฌธ์ œ๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํ•จ์ˆ˜๊ฐ€ Get-Command ์ถœ๋ ฅ์—์„œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์„ ์–ธํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ „์ฒด ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ํฌํ•จํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ๋‹ค๋ฅธ ๊ตฌํ˜„์ด๋ฉฐ ์•„๋งˆ๋„ ์ž์ฒด ๋ฌธ์ œ์—์„œ ๋” ๋‚˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋Œ€๋‹ตํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํŽธ์ง‘๊ธฐ์—์„œ ์—ด๊ฑฐ๋‚˜ ํŠน์ • ์œ ํ˜•์˜ ์–ด์ƒ‰ํ•œ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ฃผ์–ด์ง„ ์ปดํ“จํ„ฐ/ํ•ด๋‹น ์ปดํ“จํ„ฐ์˜ ์ง€์ •๋œ ์œ„์น˜์— ์„ค์น˜๋œ ๋ฒ„์ „์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋Œ€๋‹ต์ฒ˜๋Ÿผ ํ•ญ์ƒ ์‰ฌ์šด ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. :-)

์„ค๋งˆ?

Notes ํ•„๋“œ๋Š” ์ ์ ˆํ•œ ์ฃผ์„ ๊ธฐ๋ฐ˜ ๋„์›€๋ง(์–ด์จŒ๋“  ๊ทธ๋ž˜์•ผ ํ•จ)๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ Get-Help ์ถœ๋ ฅ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

function test {
    <#
    .NOTES
    Version: 1.5.0
    #>
    [CmdletBinding()]
    param()
}

Get-Help test -Full

# or
Get-Help test | % alertSet

๊ฒฐ๊ณผ:

PS> Get-Help test -Full
SYNTAX
    test [<CommonParameters>]


DESCRIPTION


PARAMETERS
    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer, PipelineVariable, and OutVariable. For more information, see
        about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).

INPUTS

OUTPUTS

NOTES


        Version: 1.5.1


RELATED LINKS

PS> get-help test | % alertset



    Version: 1.5.1

๊ทธ๋ž˜์„œ? ๋‚˜๋Š” ๊ฐ๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ๋” ์žฅํ™ฉํ•œ ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜... ๋” ๊ฐ„๊ฒฐํ•œ ๋ฐฉ๋ฒ•์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์ผ๋ถ€) ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์›ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ null-coalescing ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๋ฌด์—‡์„ ์ถ”๊ตฌํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ์›ํ•˜๋Š” ๊ฒƒ์„ ๋น„๊ต์  ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์ถ”๊ฐ€ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ๊ฐ€์น˜๊ฐ€ ์—†๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ž์œ ๋กญ๊ฒŒ PR์„ ์—ด์–ด ์ฃผ์‹œ๋ฉด ๋” ์ž์„ธํžˆ ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿคท

๋ฌด์—‡์„ ์œ„ํ•œ PR์ธ๊ฐ€? ์ €๋Š” C# ์ฝ”๋”๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ €๋Š” 30๋…„ ๋„˜๊ฒŒ ์ „๋ฌธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ ์ค‘ ๋ช‡๋ช‡์ด ์šฐ๋ฆฌ๊ฐ€ ์ถ”๊ตฌํ•˜๋Š” ๊ฒƒ๊ณผ ์šฐ๋ฆฌ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ •๋ง ๋ช…ํ™•ํ–ˆ์œผ๋ฉฐ ๋ฐฉ๊ธˆ ๋‹ค์‹œ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ด๋Ÿฌํ•œ ์šฐ๋ ค๊ฐ€ ์ตœ์†Œํ™”๋˜๋Š” ๊ฒƒ์„ ๋ณด์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํŒ…์„ ๋„˜์–ด์„  ๋ถ„๋“ค์€ "๊ทธ๋ƒฅ ๋ชจ๋“ˆ๋กœ ๋งŒ๋“œ์„ธ์š”"๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ด€๋ฆฌ ์Šคํฌ๋ฆฝํ„ฐ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์ง€ ๋ชปํ•˜๋ฉฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ณด๋ฉด ๋„ˆ๋ฌด ๋ฌธ์ œ๊ฐ€ ๋งŽ๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์ €๋„ ๋™์˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค).

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋ฌด์˜๋ฏธํ•˜๊ณ  ๋‚˜๋Š” ๋” ์ž˜ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. PowerShell ์œ„์›ํšŒ์˜ ๊ฒฐ๋ก ์€ ์ด๋ฏธ ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ“๊ธ€์„ ๋‹ฌ์•„ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

PowerShell ์œ„์›ํšŒ์˜ ๊ฒฐ๋ก ์€ ์ด๋ฏธ ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„์— ๋”ฐ๋ฅธ ๊ฒฐ๋ก ์„ ์žฌ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ ์ค‘ ๋ช‡๋ช‡์ด ์šฐ๋ฆฌ๊ฐ€ ์ถ”๊ตฌํ•˜๋Š” ๊ฒƒ๊ณผ ์šฐ๋ฆฌ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ •๋ง ๋ช…ํ™•ํ–ˆ์œผ๋ฉฐ ๋ฐฉ๊ธˆ ๋‹ค์‹œ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ด๋Ÿฌํ•œ ์šฐ๋ ค๊ฐ€ ์ตœ์†Œํ™”๋˜๋Š” ๊ฒƒ์„ ๋ณด์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‹ค์ œ ๋ชฉํ‘œ์™€ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ง ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ ๋‚ด ์งˆ๋ฌธ์€ ๋Œ€๋ถ€๋ถ„ ๋ฌด์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ์ดํ•ดํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์Šคํฌ๋ฆฝํŒ…์„ ๋„˜์–ด์„  ๋ถ„๋“ค

์ €๋Š” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. ๋‚ด ๊ฒฝ๋ ฅ์˜ ๋Œ€๋ถ€๋ถ„์€ ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ตฌ๋ฌธ์ด "์Šคํ”Œ๋ž˜ํŒ… ๊ตฌ๋ฌธ"์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋™๋ฃŒ๋Š” ๋‚ด๊ฐ€ discord/reddit์—์„œ ๋„์›€์„ ์ฃผ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ PowerShell์˜ ์ ˆ๋Œ€์ ์ธ ๊ธฐ๋ณธ ์‚ฌํ•ญ๋งŒ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ „ํ˜€ ์žˆ๋‹ค๋ฉด).

๋‚˜๋Š” ๋‹น์‹ ์ด PS dev ํŒ€๊ณผ ์•ฝ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ง€๋งŒ, ๋‚ด๊ฐ€ ์šฐ์—ฐํžˆ C#์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ๋‹น์‹ ์˜ ๊ด€์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ์ฒ™ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ทธ ๊ด€์ ์„ ์œ„ํ•ด ๋Š์ž„์—†์ด ์‹ธ์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"๊ทธ๋ƒฅ ๋ชจ๋“ˆ๋กœ ๋งŒ๋“œ์‹ญ์‹œ์˜ค"๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ด€๋ฆฌ ์Šคํฌ๋ฆฝํ„ฐ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์ง€ ๋ชปํ•˜๋ฉฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ณด๋ฉด ๋„ˆ๋ฌด ๋ฌธ์ œ๊ฐ€ ๋งŽ๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์ €๋„ ๋™์˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค).

๋‚˜์ค‘์— ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ ‘ํ•˜๊ณ  ๋ชจ๋“ˆ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊บผ๋ ค์ง€๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. .ps1 ํŒŒ์ผ์˜ ์ด๋ฆ„์„ .psm1
  2. ์‚ฌ์šฉ Import-Module ./file.psm1 ๋Œ€์‹  . ./file.ps1

๊ทธ๊ฒŒ ๋‹ค์•ผ, ๋‹น์‹ ์€ ๋ชจ๋“ˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ์•„์ง ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „์„ ์ง€์ •ํ•˜๋ ค๋ฉด ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ „์ฒด ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. .ps1 ํŒŒ์ผ์˜ ์ด๋ฆ„์„ .psm1
  2. New-ModuleManifest -RootModule ./file.psm1 -Path ./file.psd1 -ModuleVersion 1.0.0
  3. ์‚ฌ์šฉ Import-Module ./file.psd1 ๋Œ€์‹  . ./file.ps1

์†Œ๋น„์ž(๋˜๋Š” ๋‹น์‹  ์ž์‹ )๊ฐ€ ๋„ํŠธ ์†Œ์Šค๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๋Š์Šจํ•œ ๊ธฐ๋Šฅ์„ ps1์— ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“ˆ์— ์•„์ฃผ ๋นจ๋ฆฌ ๋˜์ง€๋ฉด ์‚ถ์ด ๋” ์‰ฌ์›Œ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ง์ ‘ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ New-ScriptFileInfo ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์„์ด ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<#PSScriptInfo

.VERSION 1.0.0

.GUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

.AUTHOR username

.COMPANYNAME

.COPYRIGHT

.TAGS

.LICENSEURI

.PROJECTURI

.ICONURI

.EXTERNALMODULEDEPENDENCIES 

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES


.PRIVATEDATA

#>

<# 
.DESCRIPTION 
     Quick script description here.
#> 
param()

Test-ScriptFileInfo ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰