Windows PowerShell 사용

완료됨

Contoso의 IT 부서 관리자는 GUI 관리 도구가 일반적으로 명령줄 도구보다 사용하기 쉬울 뿐만 아니라 간단한 스크립트나 단일 명령을 사용하여 많은 관리 작업을 더 빠르게 수행하게 해 준다고 생각합니다. 예를 들어 Active Directory 사용자 및 컴퓨터를 사용하여 여러 사용자 계정에 대해 동일한 정보를 업데이트하는 프로세스는 시간이 많이 걸릴 수 있습니다. 그러나 Windows PowerShell의 Active Directory 모듈을 사용하면 관리자가 이 반복적인 작업을 신속하게 수행할 수 있습니다. Windows PowerShell을 사용하여 Contoso에서 서버 인프라를 관리할 때의 영향을 조사하기로 했습니다.

개요

Windows PowerShell은 Windows 운영 체제의 모든 측면을 관리하는 데 사용할 수 있는 명령줄 및 스크립팅 환경입니다. Windows PowerShell은 Restart-Computer와 같은 동사-명사 쌍으로 구성된 cmdlet이라는 특수 명령을 사용합니다.

Windows PowerShell을 사용하여 다른 컴퓨터에 원격으로 연결하고 컴퓨터 목록에 대해 Windows PowerShell cmdlet을 실행할 수도 있으며 이를 통해 단일 명령줄 명령을 사용하여 여러 컴퓨터에 대해 작업을 수행할 수 있습니다.

Windows PowerShell 명령 및 cmdlet

명령은 Windows PowerShell 스크립트 언어를 사용하여 구성하는 컴파일용 블록 수준 요소입니다. 명령은 Windows PowerShell의 주요 기능을 제공합니다. 명령을 사용하여 복잡한 관리 문제에 대한 사용자 지정 솔루션을 만들 수 있습니다.

Cmdlet은 명령의 기본 구성 요소입니다. Windows 운영 체제 및 기타 Microsoft 제품에서 사용할 수 있는 Windows PowerShell cmdlet은 수천 가지가 있습니다. 앞에서 설명한 것처럼 cmdlet은 동사-명사 쌍으로 구성됩니다.

Cmdlet 동사

Cmdlet 이름의 동사 부분은 cmdlet이 수행하는 작업을 나타냅니다. Cmdlet을 생성된 이들이 사용하는 승인된 동사 집합이 있는데, 해당 동사 세트가 cmdlet 이름에 일관성을 갖게 합니다. 공통으로 사용하는 동사는 다음의 표에 설명되어 있습니다.

동사 설명
가져오기 파일이나 사용자와 같은 리소스를 검색합니다.
설정 파일 또는 사용자 속성과 같은 리소스와 연관된 데이터를 변경합니다.
새로 생성 파일이나 사용자와 같은 리소스를 생성합니다.
추가 여러 리소스의 컨테이너에 리소스를 추가합니다.
제거 여러 리소스의 컨테이너에서 리소스를 삭제합니다.

Cmdlet 명사

Cmdlet 이름의 명사 부분은 cmdlet이 영향을 주는 리소스 또는 개체의 종류를 나타냅니다. 동일한 리소스에 대해 작동하는 모든 cmdlet은 동일한 명사를 사용해야 합니다. 예를 들어 서비스 명사는 Windows 서비스에서 작동하는 cmdlet에 사용되고 프로세스 명사는 컴퓨터에서 프로세스를 관리하는 데 사용됩니다.

매개 변수 형식

매개 변수는 cmdlet이 수행하는 동작을 수정합니다. 각 cmdlet은 매개 변수를 가지지 않거나, 하나 또는 많은 매개 변수를 가질 수 있습니다. 매개 변수 이름은 대시(-)로 시작합니다. 공백은 전달하려는 값을 매개 변수 이름에서 구분합니다. 전달하는 값에 공백이 포함된 경우에는 텍스트를 따옴표로 묶어야 합니다. 일부 매개 변수는 쉼표로 구분되고 공백 없이 여러 값을 허용합니다.

예제

다음 예를 통해 Windows PowerShell을 사용하여 일반적인 관리 작업을 수행하는 방법을 결정할 수 있습니다. 다음 명령은 실행 중인 서비스의 목록을 표시합니다.

Get-Service | Where-Object {$_.Status -eq "Running"}

다음 명령은 이름이 “win”으로 시작하고 WinRM이라는 서비스를 제외한 서비스 목록을 표시합니다.

Get-Service -Name "win*" -Exclude "WinRM"

다음 명령은 모든 서비스 목록을 HTML 출력용으로 서식이 지정된 텍스트 파일로 출력합니다.

Get-Service | ConvertTo-Html > File.html

위의 명령을 변형하면 서비스에 대한 선택된 데이터만 출력한 뒤 출력값을 CSV 파일로 내보냅니다.

Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv

다음 명령은 Active Directory 사용자에 대한 지정된 정보(사무실 전화 번호 및 사용자 계정 이름)를 검색합니다.

Get-ADUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName

마지막 예제에서는 AD DS 사용자(마케팅 OU 사용자)의 하위 집합을 검색하고 각 계정에 설명을 추가하여 해당 속성을 수정합니다.

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Marketing,DC=Contoso,DC=Com" | Set-ADUser -Description "Member of the Marketing Department"

Windows PowerShell ISE

ISE는 스크립트 편집기, 디버깅 기능, 대화형 콘솔, 새로운 Windows PowerShell 명령을 검색하고 학습하는 데 도움이 되는 몇 가지 도구를 제공하는 완전한 그래픽 환경입니다. 해당 모듈은 ISE의 작동 방식에 대한 기본적인 지식을 제공합니다.

관리자: Windows PowerShell ISE의 스크린샷 관리자가 명령 미리 보기 창을 활성화했습니다. 관리자가 Get-localuser를 제목 없음 스크립트 창에서 실행했습니다.

ISE는 스크립트 창(또는 스크립트 편집기) 및 콘솔 창이라는 두 가지 주요 창을 제공합니다. 해당 항목을 두 창 레이아웃에 나란히 배치하거나 나란히 세로 정렬할 수 있습니다. 또한, 한 창을 최대화하고 두 창 간에서 전환을 할 수 있습니다. 기본값으로 명령 추가 기능 창 또한 표시되어, 사용 가능한 명령을 검색하거나 찾아보고 선택한 명령의 매개 변수를 검토하고 채워 넣을 수 있습니다. 동일한 기능을 제공하는 고정 해제 명령 창도 있습니다.

뷰 사용자 지정

ISE는 뷰를 사용자 지정하는 여러 가지 방법을 제공합니다. 창의 오른쪽 아래 영역에 있는 슬라이더가 활성 글꼴 크기를 변경합니다. 옵션 대화 상자를 사용하여 키워드 및 문자열 값과 같은 다양한 Windows PowerShell 텍스트 요소에 대한 글꼴 및 색상의 선택을 사용자 지정할 수 있습니다. ISE는 시각적 테마 생성를 지원합니다. 테마는 ISE의 모양을 사용자 지정하기 위해 그룹으로 적용할 수 있는 글꼴 및 색상 설정 모음입니다. 프레젠테이션을 제공하는 등의 목적으로 사용자 지정을 패키지하는 여러 가지 기본 제공 테마가 있습니다. ISE는 사용자 지정 테마를 만드는 옵션도 제공합니다. 다른 ISE 기능은 다음과 같습니다.

  • 일반적으로 사용되는 명령을 저장하는 데 사용할 수 있는, 확장 가능한 기본 제공 코드 조각 라이브러리
  • 추가적인 기능성을 제공하는, Microsoft 또는 타사에서 생성된 추가 기능을 로드하는 기능
  • Windows PowerShell의 디버깅 기능과의 통합

Windows PowerShell 원격 기능

Windows PowerShell 원격 작업의 목적은 원격 컴퓨터에 연결하여 명령을 실행한 다음 결과를 다시 로컬 컴퓨터로 보내는 것입니다. 이렇게 하면 각 컴퓨터에 대한 연결을 만드는 대신 클라이언트 컴퓨터로 네트워크상의 여러 컴퓨터에서 Windows PowerShell 명령을 실행할 수 있습니다.

Windows PowerShell 원격 작업의 핵심 목표는 일괄 처리를 사용하도록 설정하는 것입니다. 이를 통해 원격 컴퓨터 집합에서 명령을 동시에 실행할 수 있습니다. 다음 표에서 설명하는 세 가지 방법 중 하나로 원격 기능을 사용할 수 있습니다.

방법 설명
일대일 원격 작업 일대일 원격 시나리오(대화형 원격이라고도 함)에서는 단일 원격 컴퓨터에 연결하여, 컴퓨터에 로그인하고 Windows PowerShell 창을 열었을 때와 똑같이 Windows PowerShell 명령을 실행합니다.
일대다 원격 작업 일대다 원격 시나리오(팬-아웃 원격이라고도 함)에서는 하나 이상의 원격 컴퓨터에서 병렬로 실행되는 명령을 실행합니다. 각 원격 컴퓨터와 대화형으로 작업하지 않습니다. 대신, 명령의 이슈 및 실행이 일괄 처리되며 결과가 컴퓨터로 반환되어 사용할 수 있습니다.
다대일 원격 작업 다대일 원격 시나리오(팬인 원격이라고도 함)에서는 여러 관리자가 단일 컴퓨터에 원격으로 연결합니다. 일반적으로 해당 관리자는 동일한 원격 컴퓨터에 대해 서로 다른 권한을 가지며 제한된 Windows PowerShell 세션에서 작업할 수 있습니다.

주의

여러 컴퓨터에서 명령을 실행하는 경우 원격 컴퓨터 간의 차이점(예: 운영 체제의 차이점, 파일 시스템 구조, 시스템 레지스트리 등)을 알고 있어야 합니다.

PowerShell Direct

대부분의 관리자는 가상화된 환경에서 일부 서버를 실행합니다. Windows 10 또는 Windows Server를 실행하는 Hyper-V VM을 보다 간단하게 관리할 수 있도록 PowerShell Direct라는 기능을 사용할 수 있습니다.

PowerShell Direct를 사용하면 네트워크, 방화벽, 원격 관리 구성과 관계없이 호스트 운영 체제에서 VM 내에 Windows PowerShell cmdlet 또는 스크립트를 실행할 수 있습니다.