2장 - 도움말 시스템
두 IT 전문가 그룹이 PowerShell을 관련 기술 수준 확인을 위해 컴퓨터를 이용할 수 없는 필기시험을 받았습니다. PowerShell 초보자는 한 그룹에 배치되었고 다른 그룹에는 전문가가 배치되었습니다. 테스트 결과 두 그룹 간의 기술 수준은 큰 차이가 없었습니다. 두 그룹 모두 첫 번째 테스트와 유사한 두 번째 테스트를 받았습니다. 이번에는 인터넷에 액세스할 수 없는 PowerShell을 사용하는 컴퓨터에 대한 액세스 권한이 부여되었습니다. 두 번째 테스트의 결과는 두 그룹 간의 기술 수준에서 큰 차이를 보였습니다. 전문가들은 항상 답을 알지는 못하지만 답을 파악하는 방법을 알고 있습니다.
이 두 그룹 간의 첫 번째 및 두 번째 테스트 결과의 차이는 무엇인가요?
이 두 테스트에서 관찰된 차이점은 전문가가 PowerShell에서 수천 개의 명령을 사용하는 방법을 기억하지 않기 때문입니다. PowerShell 내에서 도움말 시스템을 매우 잘 사용하는 방법을 알아봅니다. 필요할 때 필요한 명령을 확인하고 확인한 명령의 사용 방법을 알아낼 수 있습니다.
PowerShell 개발자인 Jeffrey Snover가 이와 비슷한 이야기를 여러 번 들려주었습니다.
PowerShell을 제대로 활용하려면 도움말 시스템을 숙지해야 합니다.
검색 가능성
PowerShell에서 컴파일된 명령을 cmdlet이라고 합니다. Cmdlet은 (CMD let이 아닌) "command-let"으로 발음합니다. Cmdlet 이름은 쉽게 검색할 수 있도록 단수 "동사-명사" 명령 형식입니다. 예를 들어 실행 중인 Get-Process
프로세스를 결정하는 cmdlet과 서비스 목록 및 해당 상태 검색하기 위한 cmdlet이 Get-Service
있습니다. PowerShell에는 이 책의 뒷부분에서 다룰 별칭 및 함수와 같은 다른 유형의 명령이 있습니다. PowerShell 명령이라는 용어는 cmdlet, 함수 또는 별칭인지 여부에 관계없이 PowerShell에서 모든 유형의 명령을 참조하는 데 자주 사용되는 제네릭 용어입니다.
PowerShell의 세 가지 주요 Cmdlet
Get-Command
Get-Help
Get-Member
(3장에서 설명)
자주 묻는 질문 중 하나는 PowerShell에서 명령이 무엇인지 어떻게 파악하는가하는 것입니다. 둘 다 Get-Command
명령을 Get-Help
결정하는 데 사용할 수 있습니다.
Get-Help
Get-Help
는 다목적 명령입니다. Get-Help
에서는 명령을 찾은 후 명령을 사용하는 방법을 알아볼 수 있습니다. Get-Help
은 명령을 찾는 데도 사용할 수 있지만 비교했을 때는 다른 간접적인 방식으로 사용할 수 Get-Command
있습니다.
명령을 찾는 데 사용되는 경우 Get-Help
먼저 제공된 입력에 따라 명령 이름의 야생카드 일치 항목을 검색합니다. 일치 항목을 찾지 못하면 도움말 항목 자체를 검색하고 일치하는 항목이 없으면 오류가 반환됩니다. 대중적인 믿음과는 달리 도움말 Get-Help
항목이 없는 명령을 찾는 데 사용할 수 있습니다.
PowerShell의 도움말 시스템에 대해 가장 먼저 알아야 할 것은 cmdlet을 사용하는 Get-Help
방법입니다. 다음 명령은 에 대한 Get-Help
도움말 항목을 표시하는 데 사용됩니다.
Get-Help -Name Get-Help
Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows PowerShell
modules, and installs them on your computer. For more information about the Update-Help
cmdlet, see http://go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
PowerShell 버전 3부터 PowerShell 도움말은 운영 체제와 함께 제공되지 않습니다. 명령에 대해 처음 Get-Help
실행되면 이전 메시지가 표시됩니다. help
cmdlet 대신 함수 또는 man
별칭을 Get-Help
사용하는 경우 이 프롬프트가 표시되지 않습니다.
Y 키를 눌러 예라고 대답하면 기본적으로 인터넷 액세스가 필요한 cmdlet이 실행됩니다Update-Help
. Y
는 대문자 또는 소문자로 지정할 수 있습니다.
도움말이 다운로드되고 업데이트가 완료되면 지정된 명령에 대한 도움말 항목이 반환됩니다.
Get-Help -Name Get-Help
잠시 시간을 내어 컴퓨터에서 해당 예제를 실행하고, 출력을 검토하고, 정보가 그룹화되는 방식을 기록해 둡니다.
- 이름
- 개요
- 구문
- 설명
- 관련 링크
- REMARKS
여기에서 볼 수 있듯이 도움말 항목에는 엄청난 양의 정보가 포함될 수 있으며 전체 도움말 항목이 아닙니다.
PowerShell과는 관련이 없지만 매개 변수는 명령에 입력을 제공하는 방법입니다. Get-Help
에는 전체 도움말 항목 또는 해당 하위 집합을 반환하기 위해 지정할 수 있는 많은 매개 변수가 있습니다.
이전 결과 집합에 표시된 도움말 항목의 구문 섹션에는 에 대한 Get-Help
모든 매개 변수가 나열됩니다. 언뜻 보기에 동일한 매개 변수가 6번 나열된 것처럼 보입니다. 구문 섹션에 있는 각 블록이 매개 변수 집합입니다. 즉 Get-Help
cmdlet에는 서로 다른 매개 변수 6개가 있습니다. 자세히 살펴보면 각 매개 변수 집합에서 하나 이상의 매개 변수가 다르다는 것을 알 수 있습니다.
매개 변수 집합은 상호 배타적입니다. 매개 변수 집합 중 하나에만 존재하는 고유 매개 변수를 사용하면 해당 매개 변수 집합 내에 포함된 매개 변수만 사용할 수 있습니다. 예를 들어 전체 및 상세 매개 변수는 서로 다른 매개 변수 집합에 있으므로 동시에 지정할 수 없습니다.
다음 매개 변수 각각은 서로 다른 매개 변수 집합에 있습니다.
- 전체
- 자세히
- 예제
- 온라인
- 매개 변수
- ShowWindow
구문 섹션의 사각형 및 꺾쇠 괄호와 같은 모든 비밀 구문은 무언가를 의미하지만 이 책의 부록 A에서 다룹니다. 중요하지만, 비밀 구문을 배우는 것은 PowerShell을 새로 사용하고 매일 사용하지 않을 수 있는 사람을 위해 유지하기 어려운 경우가 많습니다.
비밀 구문을 더 잘 이해하려면 부록 A를 참조하세요.
초보자를 위해 일반 언어를 제외하고 동일한 정보를 파악하는 더 쉬운 방법이 있습니다.
전체 매개 변수 Get-Help
를 지정하면 전체 도움말 항목이 반환됩니다.
Get-Help -Name Get-Help -Full
잠시 시간을 내어 컴퓨터에서 해당 예제를 실행하고, 출력을 검토하고, 정보가 그룹화되는 방식을 기록해 둡니다.
- 이름
- 개요
- 구문
- 설명
- PARAMETERS
- 입력
- 출력
- 메모장
- 예제
- 관련 링크
Full 매개 변수를 사용하면 몇 가지 추가 섹션이 반환되었으며, 그 중 하나는 암호화된 SYNTAX 섹션보다 더 많은 정보를 제공하는 PARAMETERS 섹션입니다.
Full 매개 변수는 switch 매개 변수입니다. 값을 요구하지 않는 매개 변수를 스위치 매개 변수라고 합니다. switch 매개 변수를 지정하면 해당 값은 true이고 그렇지 않은 경우 해당 값은 false입니다.
PowerShell 콘솔에서 이 장을 작업하고 있다면 이전 명령은 Get-Help
에 대한 전체 도움말 항목을 표시하기 때문에 읽을 수가 없을 것입니다. 더 좋은 방법이 있습니다.
Help
는 Windows의 실행 파일에 대한 more.com
래퍼인 함수more
로 파이프 Get-Help
되는 함수입니다. PowerShell 콘솔 help
에서 한 번에 한 페이지의 도움말을 제공합니다. ISE에서 이 기능은 Get-Help
와 동일한 방식으로 작동합니다. 더 나은 환경을 제공하고 형식이 적기 때문에 cmdlet 대신 Get-Help
함수를 사용하는 help
것이 좋습니다.
하지만 입력할 내용이 적다는 것이 항상 좋은 것은 아닙니다. 명령을 스크립트로 저장하거나 다른 사용자와 공유하려는 경우 전체 cmdlet 및 매개 변수 이름을 사용해야 합니다. 전체 이름은 자체 문서화이므로 이해하기 쉽습니다. 여러분의 명령을 읽고 이해해야 하는 다음 사람을 생각해 보세요. 그 사람이 여러분일 수도 있습니다. 동료와 미래의 자아는 당신을 감사할 것입니다.
Windows 10 랩 환경 컴퓨터의 PowerShell 콘솔에서 다음 명령을 실행해 보세요.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Windows 10 랩 환경 컴퓨터에서 실행했을 때 이전에 나열된 명령의 출력에 차이가 있나요?
마지막 두 옵션이 결과를 한 번에 한 페이지씩 반환하는 것 외에는 차이가 없습니다.
스페이스바는 함수를 사용할 Help
때 콘텐츠의 다음 페이지를 표시하는 데 사용되며 Ctrl+C는 PowerShell 콘솔에서 실행되는 명령을 취소합니다.
첫 번째 예제에서는 cmdlet을 Get-Help
사용하고, 두 번째 예제는 함수를 Help
사용하고, 세 번째 예제는 함수를 사용할 때 Name 매개 변수를 Help
생략합니다. Name은 위치 매개 변수이며 해당 예제에서 위치를 기준으로 사용됩니다. 따라서 값 자체를 올바른 위치에 지정한다면 매개 변수 이름을 지정하지 않고도 값을 지정할 수 있습니다. 값을 지정할 위치를 어떻게 알 수 있나요? 다음 예제와 같이 도움말을 읽습니다.
help Get-Help -Parameter Name
-Name <String>
Gets help about the specified command or concept. Enter the name of a cmdlet, function,
provider, script, or workflow, such as Get-Member, a conceptual article name, such as
about_Objects, or an alias, such as ls. Wildcard characters are permitted in cmdlet and
provider names, but you can't use wildcard characters to find the names of function help and
script help articles.
To get help for a script that isn't located in a path that's listed in the $env:Path
environment variable, type the script's path and file name.
If you enter the exact name of a help article, Get-Help displays the article contents.
If you enter a word or word pattern that appears in several help article titles, Get-Help
displays a list of the matching titles.
If you enter a word that doesn't match any help article titles, Get-Help displays a list of
articles that include that word in their contents.
The names of conceptual articles, such as about_Objects, must be entered in English, even in
non-English versions of PowerShell.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
이전 예제에서 Parameter 매개 변수는 Help 함수와 함께 Name 매개 변수에 대한 도움말 항목의 정보만 반환하는 데 사용되었습니다. 때로는 수백 페이지에 달하는 것처럼 보이기도 하는 도움말 항목 전체를 일일이 살펴보는 방법보다 훨씬 효율적입니다.
이러한 결과에 따라 Name 매개 변수가 위치이며 위치 지정 시 위치 0(첫 번째 위치)에 지정되어야 한다는 것을 알 수 있습니다. 매개 변수 이름을 지정했다면 매개 변수가 지정되는 순서는 중요하지 않습니다.
또 다른 중요 정보는 Name 매개 변수가 자신의 값에 대한 데이터 유형이 <String>
으로 표시되는 단일 문자열이라 예상한다는 점입니다. 여러 문자열을 수락하면 데이터 형식이 .로 <String[]>
나열됩니다.
명령에 대한 전체 도움말 항목을 표시하지 않으려는 경우가 있습니다. Full 외에도 다양한 매개 변수를 Get-Help
또는 Help
를 이용해 지정할 수 있습니다. Windows 10 랩 환경 컴퓨터에서 다음 명령을 실행해 보세요.
Get-Help -Name Get-Command -Full
Get-Help -Name Get-Command -Detailed
Get-Help -Name Get-Command -Examples
Get-Help -Name Get-Command -Online
Get-Help -Name Get-Command -Parameter Noun
Get-Help -Name Get-Command -ShowWindow
일반적으로 전체 또는 온라인 매개 변수와 함께 사용합니다help <command name>
. 예제에만 관심이 있는 경우 Examples 매개 변수를 사용하고 특정 매개 변수에만 관심이 있는 경우 매개 변수 매개 변수를 사용합니다. ShowWindow 매개 변수는 여러 모니터를 사용할 경우 다른 모니터에 배치할 수 있는 별도의 검색 가능한 창에서 도움말 항목을 엽니다. 전체 도움말 항목을 표시하지 않는 알려진 버그가 있으므로 ShowWindow 매개 변수를 피했습니다.
별도의 창에서 도움말을 보려면 다음 예제와 같이 Online 매개 변수를 사용하거나 전체 매개 변수를 사용하여 결과를 파이프하는 것이 Out-GridView
좋습니다.
help Get-Command -Full | Out-GridView
Out-GridView
cmdlet의 cmdlet 및 ShowWindow 매개 변수 Get-Help
모두 GUI(그래픽 사용자 인터페이스)가 있는 운영 체제가 필요합니다. 서버 코어(no-GUI) 설치 옵션을 사용하여 설치된 Windows Server에서 둘 중 하나를 사용하려고 하면 오류 메시지가 생성됩니다.
명령을 찾는 데 사용하려면 Name 매개 변수와 함께 별표(*
) wild카드 문자를 사용합니다Get-Help
. 다음 예제와 같이 Name 매개 변수의 값 으로 명령을 검색하는 용어를 지정합니다.
help *process*
Name Category Module Synopsis
---- -------- ------ --------
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Connects to and ...
Exit-PSHostProcess Cmdlet Microsoft.PowerShell.Core Closes an intera...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core
Debug-Process Cmdlet Microsoft.PowerShell.M... Debugs one or mo...
Get-Process Cmdlet Microsoft.PowerShell.M... Gets the process...
Start-Process Cmdlet Microsoft.PowerShell.M... Starts one or mo...
Stop-Process Cmdlet Microsoft.PowerShell.M... Stops one or mor...
Wait-Process Cmdlet Microsoft.PowerShell.M... Waits for the pr...
Get-AppvVirtualProcess Function AppvClient ...
Start-AppvVirtualProcess Function AppvClient ...
이전 예제 *
에서는 와일드카드 문자가 필요하지 않으며 생략하면 동일한 결과가 생성됩니다. Get-Help
는 백그라운드에서 야생카드 문자를 자동으로 추가합니다.
help process
이전 명령은 프로세스의 각 끝에서 wild카드 문자를 지정하는 *
것과 동일한 결과를 생성합니다.
항상 일관되게 작동하는 옵션이므로 추가하는 것을 선호합니다. 추가하지 않으면 특정 시나리오에서는 필요하지만 다른 시나리오에서는 필요하지 않게 됩니다. 값 중간에 와일드카드 문자를 추가하면 사용자가 지정된 값에 자동으로 추가되지 않습니다.
help pr*cess
와일드카드 문자가 시작, 끝 또는 시작과 끝에 pr*cess
모두 추가되지 않는 한 *
해당 명령에서 결과가 반환되지 않습니다.
지정한 값이 대시로 시작하는 경우 PowerShell이 이를 매개 변수 이름으로 해석하고 cmdlet에 대한 Get-Help
매개 변수 이름이 없으므로 오류가 생성됩니다.
help -process
찾으려는 항목이 -process
로 끝나는 명령이라면 값의 시작 부분에 *
와일드카드 문자를 추가하기만 하면 됩니다.
help *-process
PowerShell 명령을 Get-Help
검색할 때 검색하는 내용에 너무 구체적이지는 않고 좀 더 모호하게 작업하려고 합니다.
앞에서 검색한 process
결과 명령 이름에 포함된 명령만 발견되었으며 해당 결과만 반환되었습니다 process
. 검색processes
하는 데 사용되는 경우 Get-Help
명령 이름에 대한 일치 항목을 찾을 수 없으므로 시스템에서 PowerShell의 모든 도움말 항목을 검색하고 찾은 일치 항목을 반환합니다. 이렇게 하면 엄청난 수의 결과가 반환됩니다.
Get-Help processes
Name Category Module Synopsis
---- -------- ------ --------
Disconnect-PSSession Cmdlet Microsoft.PowerShell.Core Disconnects from...
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Connects to and ...
ForEach-Object Cmdlet Microsoft.PowerShell.Core Performs an oper...
Get-PSSessionConfiguration Cmdlet Microsoft.PowerShell.Core Gets the registe...
New-PSTransportOption Cmdlet Microsoft.PowerShell.Core Creates an objec...
Out-Host Cmdlet Microsoft.PowerShell.Core Sends output to ...
Where-Object Cmdlet Microsoft.PowerShell.Core Selects objects ...
Clear-Variable Cmdlet Microsoft.PowerShell.U... Deletes the valu...
Compare-Object Cmdlet Microsoft.PowerShell.U... Compares two set...
Convert-String Cmdlet Microsoft.PowerShell.U... Formats a string...
ConvertFrom-Csv Cmdlet Microsoft.PowerShell.U... Converts object ...
ConvertTo-Html Cmdlet Microsoft.PowerShell.U... Converts Microso...
ConvertTo-Xml Cmdlet Microsoft.PowerShell.U... Creates an XML-b...
Debug-Runspace Cmdlet Microsoft.PowerShell.U... Starts an intera...
Export-Csv Cmdlet Microsoft.PowerShell.U... Converts objects...
Export-FormatData Cmdlet Microsoft.PowerShell.U... Saves formatting...
Format-List Cmdlet Microsoft.PowerShell.U... Formats the outp...
Format-Table Cmdlet Microsoft.PowerShell.U... Formats the outp...
Get-Random Cmdlet Microsoft.PowerShell.U... Gets a random nu...
Get-Unique Cmdlet Microsoft.PowerShell.U... Returns unique i...
Group-Object Cmdlet Microsoft.PowerShell.U... Groups objects t...
Import-Clixml Cmdlet Microsoft.PowerShell.U... Imports a CLIXML...
Import-Csv Cmdlet Microsoft.PowerShell.U... Creates table-li...
Measure-Object Cmdlet Microsoft.PowerShell.U... Calculates the n...
Out-File Cmdlet Microsoft.PowerShell.U... Sends output to ...
Out-GridView Cmdlet Microsoft.PowerShell.U... Sends output to ...
Select-Object Cmdlet Microsoft.PowerShell.U... Selects objects ...
Set-Variable Cmdlet Microsoft.PowerShell.U... Sets the value o...
Sort-Object Cmdlet Microsoft.PowerShell.U... Sorts objects by...
Tee-Object Cmdlet Microsoft.PowerShell.U... Saves command ou...
Trace-Command Cmdlet Microsoft.PowerShell.U... Configures and s...
Write-Output Cmdlet Microsoft.PowerShell.U... Sends the specif...
Debug-Process Cmdlet Microsoft.PowerShell.M... Debugs one or mo...
Get-Process Cmdlet Microsoft.PowerShell.M... Gets the process...
Get-WmiObject Cmdlet Microsoft.PowerShell.M... Gets instances o...
Start-Process Cmdlet Microsoft.PowerShell.M... Starts one or mo...
Stop-Process Cmdlet Microsoft.PowerShell.M... Stops one or mor...
Wait-Process Cmdlet Microsoft.PowerShell.M... Waits for the pr...
Get-Counter Cmdlet Microsoft.PowerShell.D... Gets performance...
Invoke-WSManAction Cmdlet Microsoft.WSMan.Manage... Invokes an actio...
Remove-WSManInstance Cmdlet Microsoft.WSMan.Manage... Deletes a manage...
Get-WSManInstance Cmdlet Microsoft.WSMan.Manage... Displays managem...
New-WSManInstance Cmdlet Microsoft.WSMan.Manage... Creates a new in...
Set-WSManInstance Cmdlet Microsoft.WSMan.Manage... Modifies the man...
about_Arithmetic_Operators HelpFile Describes the op...
about_Arrays HelpFile Describes arrays...
about_Debuggers HelpFile Describes the Wi...
about_Execution_Policies HelpFile Describes the Wi...
about_ForEach-Parallel HelpFile Describes the Fo...
about_Foreach HelpFile Describes a lang...
about_Functions HelpFile Describes how to...
about_Language_Keywords HelpFile Describes the ke...
about_Methods HelpFile Describes how to...
about_Objects HelpFile Provides essenti...
about_Parallel HelpFile Describes the Pa...
about_Pipelines HelpFile Combining comman...
about_Preference_Variables HelpFile Variables that c...
about_Remote HelpFile Describes how to...
about_Remote_Output HelpFile Describes how to...
about_Sequence HelpFile Describes the Se...
about_Session_Configuration_Files HelpFile Describes sessio...
about_Variables HelpFile Describes how va...
about_Windows_PowerShell_5.0 HelpFile Describes new fe...
about_WQL HelpFile Describes WMI Qu...
about_WS-Management_Cmdlets HelpFile Provides an over...
about_ForEach-Parallel HelpFile Describes the Fo...
about_Parallel HelpFile Describes the Pa...
about_Sequence HelpFile Describes the Se...
Help
를 사용하여 process
를 검색하면 결과 10개가 반환되고 processes
를 검색하면 결과 68개가 반환됩니다. 결과가 하나만 있으면 명령 목록 대신 도움말 항목 자체가 표시됩니다.
get-help *hotfix*
NAME
Get-HotFix
SYNOPSIS
Gets the hotfixes that have been applied to the local and remote computers.
SYNTAX
Get-HotFix [-ComputerName <String[]>] [-Credential <PSCredential>] [-Description
<String[]>] [<CommonParameters>]
Get-HotFix [[-Id] <String[]>] [-ComputerName <String[]>] [-Credential
<PSCredential>] [<CommonParameters>]
DESCRIPTION
The Get-Hotfix cmdlet gets hotfixes (also called updates) that have been installed
on either the local computer (or on specified remote computers) by Windows Update,
Microsoft Update, or Windows Server Update Services; the cmdlet also gets hotfixes
or updates that have been installed manually by users.
RELATED LINKS
Online Version: http://go.microsoft.com/fwlink/?LinkId=821586
Win32_QuickFixEngineering http://go.microsoft.com/fwlink/?LinkID=145071
Get-ComputerRestorePoint
Add-Content
REMARKS
To see the examples, type: "get-help Get-HotFix -examples".
For more information, type: "get-help Get-HotFix -detailed".
For technical information, type: "get-help Get-HotFix -full".
For online help, type: "get-help Get-HotFix -online"
이제 PowerShell에서 도움말 항목이 있는 명령만 찾을 수 있다는 Help
신화를 설명합니다.
help *more*
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
이전 예제에서는 도움말 항목이 more
없는 것을 확인하지만 PowerShell의 Help
시스템에서 찾을 수 있었습니다. 일치하는 항목이 하나뿐이며 명령에 도움말 항목이 없을 때 표시되는 기본 구문 정보를 반환했습니다.
PowerShell에는 다양한 개념적(About) 도움말 항목이 포함되어 있습니다. 다음 명령을 사용하여 시스템의 모든 정보 도움말 항목 목록을 반환할 수 있습니다.
help About_*
결과를 단일 About 도움말 항목으로 제한하면 목록 대신 실제 도움말 항목이 표시됩니다.
help about_Updatable_Help
About 도움말 항목이 존재하려면 PowerShell의 도움말 시스템을 업데이트해야 합니다. 컴퓨터에서 도움말 시스템의 초기 업데이트가 실패하면 Update-Help
cmdlet이 성공적으로 실행될 때까지는 파일을 사용할 수 없습니다.
Get-Command
Get-Command
는 명령을 쉽게 찾을 수 있도록 설계되었습니다. 매개 변수 없이 실행 Get-Command
하면 시스템의 모든 명령 목록이 반환됩니다. 다음 예제는 Get-Command
cmdlet을 사용하여 프로세스 작업에 사용할 수 있는 명령을 확인하는 방법을 보여줍니다.
Get-Command -Noun Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 3.1.0.0 Microsof...
Cmdlet Get-Process 3.1.0.0 Microsof...
Cmdlet Start-Process 3.1.0.0 Microsof...
Cmdlet Stop-Process 3.1.0.0 Microsof...
Cmdlet Wait-Process 3.1.0.0 Microsof...
실행된 이전 예제 Get-Command
에서는 Noun 매개 변수가 사용되고 Process
Noun 매개 변수의 값으로 지정됩니다. Get-Command
cmdlet 사용 방법을 모른다면 어떻게 해야 할까요? 에 대한 도움말 항목을 표시하는 데 사용할 Get-Help
수 있습니다 Get-Command
.
이름, 명사 및 동사 매개 변수는 wild카드 허용합니다. 다음 예제에서는 Name 매개 변수와 함께 사용되는 wild카드s를 보여 줍니다.
Get-Command -Name *service*
CommandType Name Version Source
----------- ---- ------- ------
Function Get-NetFirewallServiceFilter 2.0.0.0 NetSecurity
Function Set-NetFirewallServiceFilter 2.0.0.0 NetSecurity
Cmdlet Get-Service 3.1.0.0 Microsof...
Cmdlet New-Service 3.1.0.0 Microsof...
Cmdlet New-WebServiceProxy 3.1.0.0 Microsof...
Cmdlet Restart-Service 3.1.0.0 Microsof...
Cmdlet Resume-Service 3.1.0.0 Microsof...
Cmdlet Set-Service 3.1.0.0 Microsof...
Cmdlet Start-Service 3.1.0.0 Microsof...
Cmdlet Stop-Service 3.1.0.0 Microsof...
Cmdlet Suspend-Service 3.1.0.0 Microsof...
Application AgentService.exe 10.0.14... C:\Windo...
Application SensorDataService.exe 10.0.14... C:\Windo...
Application services.exe 10.0.14... C:\Windo...
Application services.msc 0.0.0.0 C:\Windo...
Application TieringEngineService.exe 10.0.14... C:\Windo...
네이티브 PowerShell 명령이 아닌 실행 파일도 반환하기 때문에 Name 매개 변수 Get-Command
와 함께 wild카드s를 사용하는 팬은 아닙니다.
Name 매개 변수와 함께 wild카드 문자를 사용하려는 경우 CommandType 매개 변수를 사용하여 결과를 제한하는 것이 좋습니다.
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias
PowerShell 명령에만 동사와 명사가 둘 다 있기 때문에 동사 또는 명사 매개 변수 또는 둘 다를 사용하는 것이 더 좋습니다.
도움말 항목에 문제가 있나요? 다행히도 PowerShell의 도움말 항목은 오픈 소스이며 GitHub의 PowerShell-Docs 리포지토리에서 사용할 수 있습니다. 자신을 위해 잘못된 정보를 수정할 뿐만 아니라 다른 모든 사람도 수정하여 비용을 지불합니다. GitHub에서 PowerShell 설명서 리포지토리를 포크하고, 도움말 항목을 업데이트하고, 끌어오기 요청을 제출하기만 하면됩니다. 끌어오기 요청이 수락되면 모든 사용자가 수정된 설명서를 사용할 수 있습니다.
도움말 업데이트
PowerShell 도움말 항목의 로컬 복사본은 이전에 명령에 대한 첫 번째 도움말이 요청된 업데이트되었습니다. 때때로 도움말 콘텐츠에 대한 업데이트가 있을 수 있으므로 주기적으로 도움말 시스템을 업데이트하는 것이 좋습니다. 이 Update-Help
cmdlet은 도움말 항목을 업데이트하는 데 사용됩니다.
기본적으로 인터넷 액세스를 요구하며 사용자는 관리자 자격으로 PowerShell을 실행해야 합니다.
Update-Help
Update-Help : Failed to update Help for the module(s) 'BitsTransfer' with UI culture(s)
{en-US} : Unable to retrieve the HelpInfo XML file for UI culture en-US. Make sure the HelpInfoUri
property in the module manifest is valid or check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+
+ CategoryInfo : InvalidOperation: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : InvalidHelpInfoUri,Microsoft.PowerShell.Commands.UpdateHel
pCommand
Update-Help : Failed to update Help for the module(s) 'NetworkControllerDiagnostics,
StorageReplica' with UI culture(s) {en-US} : Unable to retrieve the HelpInfo XML file
for UI culture en-US. Make sure the HelpInfoUri property in the module manifest is valid
or check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+
+ CategoryInfo : ResourceUnavailable: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.
UpdateHelpCommand
몇 가지 모듈이 오류를 반환했는데, 이는 드문 일이 아닙니다. 컴퓨터에 인터넷에 액세스할 수 없는 경우 인터넷에 액세스할 수 있는 다른 컴퓨터에서 cmdlet을 사용하여 Save-Help
먼저 업데이트된 도움말 정보를 네트워크의 파일 공유에 저장한 다음 SourcePath 매개 변수 Update-Help
를 사용하여 도움말 항목에 대해 이 네트워크 위치를 지정할 수 있습니다.
예약된 작업을 설정하거나 PowerShell에서 프로필 스크립트에 일부 논리를 추가하여 컴퓨터의 도움말 콘텐츠를 주기적으로 업데이트하는 것이 좋습니다. 프로필 스크립트는 이후 장에서 설명하겠습니다.
요약
이 챕터에서는 두 명령을 모두 Get-Help
Get-Command
사용하여 명령을 찾는 방법을 알아보았습니다. 도움말 시스템을 사용하여 명령을 찾은 후 사용하는 방법을 알아내는 방법을 알아보았습니다. 또한 업데이트를 사용할 수 있을 때 도움말 항목의 콘텐츠를 업데이트하는 방법도 알아보았습니다.
나의 과제는 하루에 PowerShell 명령을 배우는 것입니다.
Get-Command | Get-Random | Get-Help -Full
검토
- 위치의 DisplayName 매개 변수
Get-Service
인가요? - cmdlet에는 몇 개의 매개 변수 집합이
Get-Process
있나요? - 이벤트 로그 작업을 위한 PowerShell 명령은 무엇인가요?
- 컴퓨터에서 실행 중인 PowerShell 프로세스 목록을 반환하기 위한 PowerShell 명령은 무엇인가요?
- 컴퓨터에 저장된 PowerShell 도움말 콘텐츠를 업데이트하려면 어떻게 해야 할까요?
권장 참조 항목
이 챕터에서 다루는 항목에 대한 자세한 내용을 알아보려면 다음 PowerShell 도움말 항목을 읽어보는 것이 좋습니다.
다음 챕터에서는 개체, 속성 및 메서드뿐만 아니라 cmdlet에 대해 Get-Member
알아봅니다.
PowerShell
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기