다음을 통해 공유


PowerShell 검색

PowerShell은 명령줄 셸이며 하나의 스크립팅 언어입니다. PowerShell은 관리 작업을 자동화하는 데 도움이 되도록 Windows에서 시작했습니다. 이제 플랫폼 간을 실행하며 다양한 작업에 사용할 수 있습니다.

PowerShell을 고유하게 만드는 것은 텍스트가 아닌 .NET 개체를 허용하고 반환한다는 것입니다. 이 기능을 사용하면 파이프라인에서 다른 명령을 더 쉽게 연결할 수 있습니다.

PowerShell을 사용할 수 있는 항목은 무엇인가요?

처음에는 PowerShell이 Windows 전용이었습니다. 이제 플랫폼 간이며 다음과 같은 다양한 작업에 사용할 수 있습니다.

  • 클라우드 관리. PowerShell을 사용하여 클라우드 리소스를 관리할 수 있습니다. 예를 들어 정보를 검색하거나, 업데이트하거나, 새 리소스를 배포할 수 있습니다.
  • CI/CD. 연속 통합/지속적인 배포 파이프라인의 일부로 사용할 수도 있습니다.
  • Active Directory 및 Exchange에 대한 작업을 자동화합니다. 이를 사용하여 Active Directory에서 사용자를 만들고 Exchange에서 사서함을 만드는 것과 같은 Windows의 거의 모든 작업을 자동화할 수 있습니다.

PowerShell을 사용하는 사람은 누구인가요?

PowerShell은 다양한 역할에서 작업하는 사람들을 도울 수 있는 강력한 도구입니다. 일반적으로 PowerShell은 시스템 관리자가 사용했습니다. 이제 개발자 자신을 DevOps, Cloud Ops, 심지어 개발자라고 부르는 사람들이 사용하고 있습니다.

PowerShell cmdlet

PowerShell에는 수백 개의 사전 설치된 명령이 함께 제공됩니다. PowerShell 명령을 cmdlet( command-lets로 발음)이라고 합니다.

각 cmdlet의 이름은 동사-명사 쌍으로 구성됩니다. 예: Get-Process. 이 명명 규칙을 사용하면 cmdlet이 수행하는 작업을 더 쉽게 이해할 수 있습니다. 또한 원하는 명령을 더 쉽게 찾을 수 있습니다. 사용할 cmdlet을 찾는 경우 동사 또는 명사를 필터링할 수 있습니다.

cmdlet을 사용하여 PowerShell 탐색

PowerShell을 처음 선택할 때 배워야 할 것이 너무 많기 때문에 위협적일 수 있습니다. PowerShell은 필요에 따라 한 번에 조금씩 학습할 수 있도록 설계되었습니다.

PowerShell에는 PowerShell을 검색하는 데 도움이 되는 cmdlet이 포함되어 있습니다. 이러한 세 cmdlet을 사용하여 사용할 수 있는 명령, 명령의 작업 및 작동하는 형식을 검색할 수 있습니다.

  • Get-Verb; 이 명령을 실행하면 대부분의 명령이 준수하는 동사 목록이 반환됩니다. 응답에는 이러한 동사가 수행하는 일에 대한 설명이 포함됩니다. 대부분의 명령은 이 명명 규칙을 따르므로 명령이 수행하는 작업을 예상합니다. 이 명령을 사용하면 적절한 동사와 사용자 고유의 명령을 만들 때 명령 이름을 지정할 이름을 선택할 수 있습니다.
  • Get-Command; 이 명령은 컴퓨터에 설치된 모든 명령 목록을 검색합니다.
  • Get-Member; 개체 기반 출력에서 작동하며 명령에 사용할 수 있는 개체, 속성 및 메서드를 검색할 수 있습니다.
  • Get-Help; 명령 이름으로 이 명령을 인수로 호출하면 명령의 다양한 부분을 설명하는 도움말 페이지가 표시됩니다.

이러한 명령을 사용하면 PowerShell에 대해 알아야 할 거의 모든 것을 검색할 수 있습니다.

동사

동사는 PowerShell에서 중요한 개념입니다. 대부분의 cmdlet이 따르는 명명 표준입니다. 또한 고유한 명령을 작성할 때 따라야 하는 명명 표준이기도 합니다. 동 사는 데이터를 읽거나 변경하는 것과 같이 수행하려는 작업을 말한다는 것입니다. PowerShell에는 표준화된 동사 목록이 있습니다. 가능한 모든 동사의 전체 목록을 얻으려면 cmdlet을 Get-Verb 사용합니다.

Get-Verb

cmdlet은 동사의 긴 목록을 반환합니다. 설명은 동사가 수행하는 작업에 대한 컨텍스트를 제공합니다. 출력의 처음 몇 행은 다음과 같습니다.

Verb    AliasPrefix   Group     Description
----    -----------   -----     -----------
Add     a             Common    Adds a resource to a container, or attaches an item to another item
Clear   cl            Common    Removes all the resources from a container but does not delete the container
Close   cs            Common    Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy    cp            Common    Copies a resource to another name or to another container
Enter   et            Common    Specifies an action that allows the user to move into a resource
Exit    ex            Common    Sets the current environment or context to the most recently used context
...

Get-Command 사용하여 명령 찾기

cmdlet은 Get-Command 시스템에 설치된 사용 가능한 모든 명령 목록을 반환합니다. 목록이 클 수 있습니다. 매개 변수 또는 도우미 cmdlet을 사용하여 응답을 필터링하여 반환되는 정보의 양을 제한할 수 있습니다.

이름 필터링

다른 매개 변수를 사용하는 출력을 Get-Command 필터링할 수 있습니다. 필터링을 사용하면 특정 속성이 있는 명령을 찾을 수 있습니다. Name 매개 변수를 사용하면 이름으로 특정 명령을 찾을 수 있습니다.

Get-Command -Name Get-Process
CommandType     Name              Version    Source
-----------     ----              -------    ------
Cmdlet          Get-Process       7.0.0.0    Microsoft.PowerShell.Management

프로세스에서 작동하는 모든 명령을 찾으려면 어떻게 해야 할까요? 와일드카드 * 를 사용하여 다른 형식의 문자열을 일치시킬 수 있습니다. 다음은 그 예입니다.

Get-Command -Name *-Process
CommandType     Name              Version    Source
-----------     ----              -------    ------
Cmdlet          Debug-Process     7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Get-Process       7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Start-Process     7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Stop-Process      7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Wait-Process      7.0.0.0    Microsoft.PowerShell.Management

명사 및 동사 필터링

동사 및 명사 값을 필터링하는 다른 매개 변수가 있습니다. 명령 이름의 동사 부분은 맨 왼쪽 부분입니다. 동사는 cmdlet에서 반환된 Get-Verb 값 중 하나여야 합니다. 명령의 가장 오른쪽 부분은 명사 부분입니다. 명사도 무엇이든 될 수 있습니다.

  • 동사에서 필터링합니다. 명령 Get-Process에서 동사 부분은 .입니다 Get. 동사 부분을 필터링하려면 동사 매개 변수를 사용합니다.

    Get-Command -Verb 'Get'
    

    이 예제에서는 동 Get사를 사용하는 모든 명령을 나열합니다.

  • 명사에서 필터링합니다. 명령 Get-Process에서 명사 부분은 .입니다 Process. 명사에서 필터링하려면 명사 매개 변수를 사용합니다. 다음 예제에서는 문자 U로 시작하는 명사로 시작하는 모든 cmdlet을 반환합니다.

    Get-Command -Noun U*
    

또한 매개 변수를 결합하여 검색 범위를 좁힐 수 있습니다. 예를 들면 다음과 같습니다.

Get-Command -Verb Get -Noun U*
CommandType     Name                         Version    Source
-----------     ----                         -------    ------
Cmdlet          Get-UICulture                7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Get-Unique                   7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Get-Uptime                   7.0.0.0    Microsoft.PowerShell.Utility

도우미 cmdlet을 사용하여 결과 필터링

다른 cmdlet을 사용하여 결과를 필터링할 수도 있습니다.

  • Select-Object; 이 다양한 명령을 사용하면 하나 이상의 개체에서 특정 속성을 선택할 수 있습니다. 다시 가져오는 항목의 수를 제한할 수도 있습니다. 다음은 현재 세션에서 사용할 수 있는 처음 5개 명령에 대한 NameSource 속성 값을 반환하는 예제입니다.

    Get-Command | Select-Object -First 5 -Property Name, Source
    
    Name                      Source
    ----                      ------
    Add-AppPackage            Appx
    Add-AppPackageVolume      Appx
    Add-AppProvisionedPackage Dism
    Add-AssertionOperator     Pester
    Add-ProvisionedAppPackage Dism
    

    자세한 내용은 Select-Object를 참조하세요.

  • Where-Object; 이 cmdlet을 사용하면 속성 값에 따라 반환되는 개체를 필터링할 수 있습니다. 이 명령은 속성 값을 테스트할 수 있는 식을 사용합니다. 다음 예제에서는 .로 p시작하는 모든 프로세스를 ProcessName 반환합니다.

    Get-Process | Where-Object {$_.ProcessName -like "p*"}
    

    cmdlet은 Get-Process 프로세스 개체의 컬렉션을 반환합니다. 응답을 필터링하려면 출력을 .에 파이프 합니다 Where-Object. 파이핑은 두 개 이상의 명령이 파이프 | 문자를 통해 연결됨을 의미합니다. 한 명령의 출력은 다음 명령에 대한 입력으로 전송됩니다. 연산자를 -like 사용하여 문자p로 시작하는 프로세스를 일치시키는 필터 식 Where-Object 입니다.

Get-Member 사용하여 개체 탐색

원하는 cmdlet을 찾으면 생성되는 출력에 대해 자세히 알고 싶습니다. cmdlet은 Get-Member 개체의 형식, 속성 및 메서드를 표시합니다. 검사할 출력을 파이프합니다 Get-Member.

Get-Process | Get-Member

결과는 반환된 형식 TypeName 과 개체의 모든 속성 및 메서드를 표시합니다. 이러한 결과의 발췌는 다음과 같습니다.

TypeName: System.Diagnostics.Process

Name        MemberType     Definition
----        ----------     ----------
Handles     AliasProperty  Handles = Handlecount
Name        AliasProperty  Name = ProcessName
...

MemberType 매개 변수를 사용하여 반환된 정보를 제한할 수 있습니다.

Get-Process | Get-Member -MemberType Method

기본적으로 PowerShell은 몇 가지 속성만 표시합니다. 이전 예제에서는 , MemberType및 멤버를 Name표시했습니다Definition. 보려는 속성을 지정하는 데 사용할 Select-Object 수 있습니다. 예를 들어 다음과 Definition 같은 속성만 Name 표시하려고 합니다.

Get-Process | Get-Member | Select-Object Name, Definition

매개 변수 유형별 검색

Get-Member 프로세스 형식 개체를 반환하는 것을 Get-Process 보여 주었습니다. ParameterType 매개 변수를 Get-Command 사용하여 Process 개체를 입력으로 사용하는 다른 명령을 찾을 수 있습니다.

Get-Command -ParameterType Process
CommandType     Name                         Version    Source
-----------     ----                         -------    ------
Cmdlet          Debug-Process                7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Enter-PSHostProcess          7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Get-Process                  7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Get-PSHostProcessInfo        7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Stop-Process                 7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Wait-Process                 7.0.0.0    Microsoft.PowerShell.Managem…

명령의 출력 형식을 알면 관련 명령에 대한 검색 범위를 좁힐 수 있습니다.

추가 리소스