초보자를 위한 Powershell 튜토리얼

⚡ 스마트 요약

PowerShell 스크립팅은 .NET 프레임워크를 기반으로 구축된 객체 지향 자동화 엔진입니다. cmdlet, 스크립트 및 스크립팅 언어를 결합하여 IT 관리자가 자동화 작업을 수행할 수 있도록 지원합니다. Windows단일 명령줄에서 서비스를 관리하고 원격 컴퓨터에 연결할 수 있습니다.

  • 🚀 올바른 셸을 실행하세요: 시작 메뉴에서 PowerShell 또는 PowerShell ISE를 열고, 관리자 권한이 필요할 때 관리자 권한으로 실행하십시오.
  • 🧩 텍스트 명령 대신 cmdlet을 사용하십시오. Cmdlet은 동사-명사 명명 패턴을 따르고 .NET 개체를 반환하므로 출력은 파이프라인을 통해 다음 Cmdlet으로 전달될 수 있습니다.
  • 🔐 실행 정책을 신중하게 설정하십시오. .ps1 스크립트를 실행할 때 안전성과 편의성의 균형을 맞추려면 Set-ExecutionPolicy와 RemoteSigned를 함께 사용하십시오.
  • 📁 재사용 가능한 .ps1 스크립트를 작성하세요: cmdlet, 변수 및 파이프라인을 .ps1 확장자를 가진 텍스트 파일에 결합하여 반복적인 관리 작업을 자동화할 수 있습니다.
  • 🤖 PowerShell과 AI를 결합하세요: AI 비서는 일반적인 영어 요청을 바로 실행 가능한 PowerShell 스크립트로 변환하고 익숙하지 않은 cmdlet을 한 줄씩 설명해 줍니다.

초보자를 위한 Powershell 튜토리얼

PowerShell이란 무엇입니까?

Windows PowerShell을 는 객체 지향 자동화 엔진이자 스크립팅 언어입니다. IT 전문가와 시스템 관리자가 시스템 관리를 제어하고 자동화해야 할 때 사용하도록 설계되었습니다. Windows 및 기타 응용 프로그램. PowerShell은 에서 배운 개념을 확장합니다. Windows 명령 프롬프트 및 Windows 새로운 개체, cmdlet 및 강력한 파이프라인을 갖춘 스크립트 호스트입니다.

PowerShell은 스크립팅의 유연성, 명령줄의 속도, 그리고 GUI 관리 도구의 심층적인 기능을 결합한 도구입니다. 관리자는 PowerShell을 사용하여 문제를 효율적으로 해결하고 수작업에 소요되는 시간을 크게 줄일 수 있습니다. 이 튜토리얼에서는 PowerShell을 처음부터 배우는 데 필요한 핵심 내용을 단계별로 안내합니다.

PowerShell을 사용하는 이유는 무엇일까요?

PowerShell을 사용해야 하는 가장 중요한 이유는 다음과 같습니다.

  • 운영 체제에 잘 통합된 명령줄 환경을 제공합니다.
  • .NET 프레임워크의 모든 형식에 대한 완벽한 접근 권한을 제공합니다.
  • 기업 전반의 시스템 관리자들이 신뢰하는 제품입니다.
  • 몇 줄의 코드로 서버 및 워크스테이션 구성 요소를 조작할 수 있습니다.
  • 시스템 관리자를 대상으로 하며, 동사와 명사가 깔끔하게 구성되어 있습니다.
  • 실행하는 것보다 더 안전합니다. Vbscript 또는 기타 기존 스크립팅 언어.

파워셸 기록

PowerShell 1.0은 2006년에 처음 출시되었습니다. 현재 PowerShell은 7.2 버전 이상까지 확장되었습니다. 여러 버전이 출시되면서 기능과 호스팅 환경이 크게 발전했습니다.

PowerShell의 버전별 연혁:

  • PowerShell 1.0 — 지방 행정을 지원함 Windows 서버 2003.
  • PowerShell 2.0 — 통합됨 Windows 7 및 Windows 서버 2008 R2. 원격 접속, 트랜잭션, 백그라운드 작업, 이벤트 및 디버깅 기능이 추가되었습니다.
  • PowerShell 3.0 — 함께 배송됨 Windows 8 및 Windows Server 2012는 다음의 일부입니다. Windows 관리 프레임워크. 예약 작업, 세션 연결 및 자동 모듈 로딩 기능이 추가되었습니다.
  • PowerShell 4.0 — 함께 배송됨 Windows 8.1 및 Windows 서버 2012 R2. 원하는 상태 구성이 추가되었고, 디버깅 및 네트워크 진단 기능이 향상되었습니다.
  • PowerShell 5.0 — 일부 Windows 관리 프레임워크 5. 원격 디버깅, 클래스 정의 및 .NET 열거형이 추가되었습니다.
  • PowerShell 7.2 — .NET 6.0 기반으로 구축되었습니다. 새로운 연산자, 동적 오류 보기 및 자동 버전 알림 기능이 추가되었습니다.

PowerShell의 기능

  • PowerShell 원격 접속: 원격 컴퓨터에서 스크립트와 cmdlet을 실행합니다.
  • 배경 관련 업무: 로컬 머신 또는 여러 원격 머신에서 스크립트나 파이프라인을 비동기적으로 실행합니다.
  • 업무: cmdlet과 개발자가 함께 커밋하거나 롤백할 수 있는 그룹화된 작업을 수행할 수 있도록 합니다.
  • 행사: 관리 및 시스템 이벤트를 수신하고, 전달하고, 조치하십시오.
  • 네트워크 파일 전송: BITS(Background Intelligent Transfer Service)를 통해 기기 간 우선순위 지정, 비동기식, 속도 제한 파일 전송을 기본적으로 지원합니다.

PowerShell을 실행하는 방법

PowerShell은 모든 최신 버전에 사전 설치되어 있습니다. Windows다음과 같이 실행하십시오.

단계 1) PowerShell을 검색하세요. Windows그런 다음 선택하고 클릭하세요.

파워쉘 시작

단계 2) PowerShell 창이 열립니다.

PowerShell 창

cmdlet과 명령

A cmdlet `cmdlet`(발음은 "커맨드릿")은 PowerShell 환경에서 사용되는 간단한 명령입니다. PowerShell은 프롬프트에서 cmdlet을 호출하며, PowerShell API를 사용하여 사용자 지정 cmdlet을 만들 수도 있습니다. cmdlet은 기존 셸 명령과 다음과 같은 점에서 다릅니다.

  • cmdlet은 . NET 프레임 워크 클래스 객체이므로 독립 실행형 실행 파일로 실행할 수 없습니다.
  • Cmdlet은 단 12줄 정도의 코드로 작성할 수 있습니다.
  • 구문 분석, 출력 형식 지정 및 오류 표시는 cmdlet 자체가 아니라 런타임에서 처리합니다.
  • Cmdlet은 객체와 함께 작동하므로 텍스트 스트림과 객체 모두 파이프라인을 통해 흐를 수 있습니다.
  • Cmdlet은 레코드 기반이며 한 번에 하나의 객체만 처리합니다.

대부분의 PowerShell 기능은 cmdlet을 통해 제공되며, cmdlet은 항상 동사-명사 명명 패턴(항상 단수)을 사용합니다. cmdlet은 텍스트가 아닌 객체를 반환합니다. 스크립트 cmdlet과는 구별되는 것으로, 텍스트 파일에 저장된 일련의 명령입니다. .ps1 확대.

PowerShell을 배우면서 사용하게 될 일반적인 동사는 다음과 같습니다.

  • 돈을 받아가세요 — 무언가를 가져오세요.
  • 스타트 — 뭔가를 실행해 보세요.
  • 아웃 — 무언가를 출력합니다.
  • 중지 — 실행 중인 것을 중지합니다.
  • 세트 — 무언가를 정의하세요.
  • New — 무언가를 만들어 보세요.

중요한 PowerShell 명령

도움말 얻기: PowerShell 명령 및 항목에 대한 도움말을 보려면 여기를 클릭하십시오.

예시: 도움말 표시 Format-Table 명령.

Get-Help Format-Table

Get-Help cmdlet

Get-명령: 호출 가능한 모든 것에 대한 정보를 얻으세요.

예시: 컴퓨터에 설치된 cmdlet 및 함수 목록을 생성합니다.

Get-Command

Get-Command cmdlet

서비스 받기: 해당 기기의 모든 서비스를 찾습니다.

예시: 이름이 "vm"으로 시작하는 모든 서비스를 가져옵니다.

Get-Service "vm*"

Get-Service cmdlet

멤버십 얻기: 어떤 물건으로 무엇을 할 수 있는지 보여주세요.

예시: Get-Service에서 반환된 VM 서비스 멤버 목록을 표시합니다.

Get-Service "vm*" | Get-Member

Get-Member cmdlet

기타 유용한 cmdlet:

  • Get-Module — 설치된 명령어 패키지를 표시합니다.
  • Get-Content — 파일을 읽고 그 내용을 처리합니다.
  • Get-* 와일드카드 — "Get-"으로 시작하는 모든 cmdlet을 나열합니다.

예시: 폴더를 생성합니다.

New-Item -Path 'X:\Guru99' -ItemType Directory

출력:

새 항목 출력

PowerShell 데이터 형식

PowerShell은 표준 .NET 데이터 형식을 지원하므로 모든 값을 변수에 깔끔하게 저장할 수 있습니다.

PowerShell 데이터 형식

특수 변수

PowerShell은 여러 가지 내장 특수 변수를 제공합니다. 가장 유용한 변수들은 아래에 나열되어 있습니다.

특수변수 기술설명
$오류 최근 오류를 나타내는 오류 객체 배열입니다.
$호스트 현재 호스팅 애플리케이션의 이름을 표시합니다.
$Profile 기본 셸에 대한 사용자 프로필의 전체 경로를 저장합니다.
$PID 프로세스 식별자를 저장합니다.
$PSUICulture 현재 UI 문화의 명칭을 가지고 있습니다.
$NULL 빈 값 또는 null 값을 포함합니다.
$False 부울 값 FALSE를 포함합니다.
$True 부울 값인 TRUE를 포함합니다.

PowerShell 스크립트

PowerShell 스크립트는 다음 위치에 저장됩니다. .ps1 파일입니다. 기본적으로 스크립트를 두 번 클릭해도 실행할 수 없습니다. 이는 시스템이 실수로 손상되는 것을 방지하기 위한 안전 장치입니다. 스크립트를 실행하려면 스크립트를 마우스 오른쪽 버튼으로 클릭하고 실행을 선택하십시오. "PowerShell로 실행".

PowerShell로 실행

실행 정책은 실행이 허용되는 스크립트를 제어합니다. 현재 정책은 다음을 통해 확인할 수 있습니다. Get-ExecutionPolicy가능한 값은 다음과 같습니다.

  • 한정된 — 스크립트는 허용되지 않습니다. 이것이 기본 설정입니다.
  • 모두 서명 됨 — 신뢰할 수 있는 개발자가 서명한 스크립트만 실행되며, 각 스크립트 실행 시 확인 절차가 필요합니다.
  • RemoteSigned — 사용자가 작성한 스크립트와 신뢰할 수 있는 출처에서 제공하는 서명된 스크립트가 모두 실행됩니다.
  • 제한 없음 — 모든 스크립트를 실행할 수 있습니다(단, 신중하게 사용하십시오).

실행 정책 변경 단계:

단계 1) PowerShell을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 PowerShell 프롬프트를 엽니다. 관리자 권한으로 실행.

PowerShell을 관리자 권한으로 실행하세요

단계 2) 아래 명령어를 실행하세요.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. 엔터 버튼 Y 확인 메시지가 나타나면.
  4. Get-ExecutionPolicy

실행 정책 변경

첫 번째 PowerShell 스크립트

메모장을 열고 다음을 입력하세요.

Write-Host "Hello, Guru99!"

파일을 다음과 같이 저장하세요 .ps1 확장 — 예를 들면, FirstScript.ps1.

FirstScript.ps1을 저장하세요

PowerShell에서 다음 명령으로 스크립트를 실행하세요.

& "X:\FirstScript.ps1"

FirstScript.ps1을 실행하세요

PowerShell ISE란 무엇입니까?

The Windows PowerShell 통합 스크립팅 환경(ISE) ISE는 PowerShell의 기본 편집기입니다. ISE를 사용하면 그래픽 기반 창 환경에서 명령을 실행하고, 테스트를 작성하고, 스크립트를 디버깅할 수 있습니다. 여러 줄 편집, 구문 강조 표시, 탭 자동 완성, 선택적 실행 등 다양한 기능을 지원합니다.

PowerShell ISE는 명령을 직접 실행할 수 있는 콘솔 창을 제공하며, 측면 창에는 스크립트 소스와 ISE에 연결된 도구가 표시됩니다. 여러 스크립트 창을 동시에 열 수 있어 다른 스크립트나 모듈에 정의된 함수에 의존하는 스크립트를 디버깅할 때 유용합니다.

파워쉘 ISE

ISE에서 이전 스크립트를 다시 생성하세요.

  1. 코드를 편집기에 붙여넣으세요.
  2. 스크립트를 저장하세요.
  3. F5 키를 눌러 실행하세요.
  4. 콘솔 창에 출력되는 내용을 확인하십시오.

ISE에서 스크립트 실행

샘플 2 : 다음 스크립트는 무료를 표시합니다. 가상 메모리 기계에서.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

무료 가상 메모리 스크립트

PowerShell을 Concepts

다음 개념들은 일상적인 PowerShell 작업에서 사용되는 어휘를 구성합니다.

Concept 기술설명
cmdlet VB 또는 C#과 같은 .NET 언어로 작성된 내장 명령입니다. 개발자는 PowerShell 스냅인을 로드하거나 작성하여 이러한 명령 세트를 확장할 수 있습니다.
기능 IDE(통합 개발 환경) 없이 PowerShell 언어 자체로 명령어를 작성할 수 있습니다. 비주얼 스튜디오.
스크립트 디스크에 있는 텍스트 파일 .ps1 확대.
어플리케이션 현존하는 Windows 셸에서 호출되는 프로그램.
만약 cmdlet에게 실행하지 않도록 지시하지만, 실행될 경우 발생할 수 있는 상황을 설명합니다.
확인하기 cmdlet이 실행하기 전에 프롬프트를 표시하도록 지시합니다.
말 수가 많은 보다 상세한 운영 정보를 제공합니다.
디버그 cmdlet에게 디버깅 정보를 출력하도록 지시합니다.
오류 작업 cmdlet이 오류 발생 시 수행할 작업을 정의합니다. 허용되는 값: continue, stop, silentlycontinue, inquire.
오류변수 오류 정보를 저장하는 변수의 이름을 지정합니다.
아웃변수 cmdlet에게 출력을 특정 변수에 저장하도록 지시합니다.
아웃Buffer 파이프라인으로 보내기 전에 특정 개수의 객체를 보유합니다.

PowerShell 스크립트 사용의 장점

  • PowerShell 스크립트는 강력하면서도 간결합니다. 단 몇 줄의 코드로도 많은 작업을 수행할 수 있습니다.
  • 변수는 다음과 같이 선언됩니다. $<variable> 통사론.
  • 변수는 명령 출력, 객체 및 기본 값을 저장할 수 있습니다.
  • 변수 유형을 명시적으로 지정할 필요는 없습니다.

PowerShell과 명령 프롬프트 비교

PowerShell을 명령 프롬프트
깊이 통합됨 Windows대화형 명령줄과 완전한 스크립팅 언어를 제공합니다. 기본 명령줄 인터페이스는 다음과 같습니다. Microsoft다른 Win32 객체와 통신하는 간단한 Win32 애플리케이션입니다.
대화형으로 또는 자동화 스크립트를 통해 호출할 수 있는 cmdlet을 사용합니다. cmdlet이 없습니다.
출력을 객체로 처리하여 파이프라인을 통해 다른 cmdlet으로 전달할 수 있도록 합니다. 출력은 객체가 아닌 일반 텍스트 스트림입니다.
기능, 성능 및 내부 아키텍처 면에서 발전했습니다. 기본 셸로, 기존 배치 작업에 적합합니다.

PowerShell의 응용 프로그램

PowerShell은 대규모 기업 네트워크에서 작업량을 획기적으로 줄여주기 때문에 IT 관리자에게 표준적인 선택지가 되었습니다. 400대가 넘는 서버를 관리하고 각 호스트에서 실행되는 특정 서비스에 의존하는 새로운 보안 솔루션을 배포한다고 상상해 보세요.

각 서버에 수동으로 로그인하는 것은 속도가 느리고 오류 발생 가능성이 높습니다. 단 하나의 PowerShell 스크립트를 사용하면 몇 분 만에 모든 서버를 조사하고, 이미 서비스가 실행 중인 호스트를 보고하고, 나머지 호스트에서도 서비스를 활성화할 수 있습니다. 이 스크립트는 한 번만 의도를 파악하여 전체 서버에 안정적으로 적용합니다.

자주 묻는 질문

PowerShell은 자동화합니다 Windows 시스템 관리 — 서비스, 파일, 사용자 및 서버 관리 — .NET 프레임워크 기반의 객체 지향 명령줄 및 스크립팅 언어를 통해 수행됩니다.

cmdlet은 동사-명사 이름을 사용하고 객체를 반환하는 경량 .NET 클래스 객체입니다. 다른 셸에서 사용하는 기존 명령은 일반 텍스트를 출력하고 자체적으로 구문 분석 및 서식을 처리합니다.

PowerShell은 객체를 다루며 cmdlet, 스크립팅 및 심층적인 .NET 통합을 지원합니다. 명령 프롬프트는 기본적인 텍스트 기반 셸로, 명령은 객체가 아닌 일반 텍스트를 출력합니다.

.ps1 파일은 PowerShell 스크립트, 즉 하나 이상의 PowerShell 명령이 포함된 텍스트 파일입니다. 기본적으로 이 파일은 두 번 클릭하여 실행할 수 없으며, 콘솔에서 실행하거나 "PowerShell로 실행"을 사용하여 실행해야 합니다.

관리자 권한으로 PowerShell을 열고 `Set-ExecutionPolicy` 명령을 실행한 다음, `RemoteSigned` 또는 `Unrestricted`와 같은 값을 입력하고 확인합니다. 현재 설정을 확인하려면 `Get-ExecutionPolicy` 명령을 사용하십시오.

ISE(통합 스크립팅 환경)는 PowerShell에 내장된 GUI 편집기로, 구문 강조 표시, 탭 자동 완성 및 여러 스크립트 탭 기능을 통해 스크립트를 작성, 실행, 테스트 및 디버깅할 수 있습니다.

AI 어시스턴트는 사용자가 입력하는 동안 cmdlet을 제안하고, 스크립트 동작을 설명하며, 오류를 감지합니다. 이를 통해 관리자는 작업을 더 빠르게 자동화하고, 일반적인 영어 요청을 작동하는 PowerShell 명령으로 변환할 수 있습니다.

예. AI 코드 도우미는 "중지된 모든 서비스를 나열하고 다시 시작하세요"와 같은 일반적인 설명에서 완전한 PowerShell 스크립트를 생성하고 각 cmdlet에 대한 설명을 제공하므로 실행하기 전에 검토할 수 있습니다.

이 게시물을 요약하면 다음과 같습니다.