2026년 PowerShell 면접 질문과 답변 상위 40개

PowerShell 면접 질문 및 답변 가이드

PowerShell 면접을 준비하고 계신가요? 어떤 면접이 예상되는지 파악하면 자신의 강점과 준비 상태를 명확히 파악할 수 있으며, 이 PowerShell 면접 가이드는 해당 분야에서 진정으로 중요한 것에 집중할 수 있도록 도와줍니다.

PowerShell 기술은 기술적 경험과 도메인 전문 지식을 통해 의미 있는 결과를 만들어낼 수 있는 다양한 직무의 문을 열어줍니다. 해당 분야의 전문가들은 강력한 분석 능력, 기술 역량, 그리고 일반적인 질문과 답변에 의존하여 신입에서 숙련된 팀원으로 성장합니다.ping 선임, 팀 리더 및 관리자가 고급 기술 문제를 해결합니다.
자세히보기 ...

👉 무료 PDF 다운로드: PowerShell 면접 질문 및 답변

PowerShell 면접에서 자주 묻는 질문과 답변

1) PowerShell이 ​​기존 PowerShell과 어떻게 다른지 설명하세요. Windows 명령 프롬프트와 이 차이점이 제공하는 이점은 무엇입니까?

PowerShell은 기존의 PowerShell과 근본적으로 다릅니다. Windows 명령 프롬프트는 다음과 같습니다. 작업 자동화 및 구성 프레임워크 .NET 플랫폼 기반으로 구축된 반면 CMD는 텍스트 기반 명령 인터프리터입니다. PowerShell 프로세스 사물일반 텍스트가 아닌, 스크립팅 기능, 오류 처리 및 파이프라인 작업을 크게 향상시킵니다. 이 객체 지향 파이프라인은 텍스트를 수동으로 구문 분석하지 않고도 조작할 수 있는 구조화된 데이터를 생성합니다.

예를 들어, 실행할 때 Get-ProcessPowerShell은 .NET 객체를 출력하여 CPU 사용량 기준 정렬이나 메모리 임계값 기준 필터링과 같은 작업을 수행할 수 있도록 합니다. 이러한 구조적 이점은 엔터프라이즈 환경 전반에서 안정성, 유지 관리성 및 자동화 확장성을 향상시킵니다.

주요 차이점 표

요인 PowerShell을 CMD
출력 유형 사물 본문
스크립팅 언어 전체 스크립팅 언어 제한된 배치 스크립팅
확장 성 모듈, cmdlet, .NET 클래스 최소의
자동화 수준 높음 높음

2) PowerShell cmdlet에는 어떤 유형이 있으며, PowerShell 수명 주기에 어떻게 기여합니까?

PowerShell cmdlet은 여러 범주로 나뉘며, 각 범주는 검색, 실행, 자동화 및 보고의 명령 수명 주기에 기여합니다. 이러한 cmdlet은 일반적으로 동사-명사 명명 규칙을 통해 가독성과 예측 가능성을 높입니다. 이러한 유형을 이해하면 관리자가 시스템 관리 수명 주기 전반에 걸쳐 PowerShell을 더욱 효율적으로 사용할 수 있습니다.

Cmdlet의 주요 유형

  • Get- cmdlet (검색): 서비스, 프로세스, 로그 또는 구성 값과 같은 시스템 정보를 검색합니다.
  • Set- cmdlets (구성): 레지스트리 항목이나 파일 속성과 같은 시스템 설정을 수정합니다.
  • New-/Remove- cmdlet (프로비저닝): 사용자, 파일 등의 리소스를 생성하거나 삭제합니다. Azure 자원.
  • 시작/중지 cmdlet (제어): 서비스 시작이나 작업 종료와 같은 시스템 작업을 관리합니다.

예: 사용 Get-Service 서비스 상태를 알아보려면 Stop-Service 그것을 제어하고, Set-Service 시작 유형을 구성하면 수명 주기 흐름이 표시됩니다.


3) PowerShell 파이프라인은 어떻게 작동하며, Bash나 CMD의 파이프라인과 어떤 특징이 다릅니까?

PowerShell 파이프라인은 다음을 전송하여 작동합니다. 사물한 명령에서 다른 명령으로 문자열이 아닌 .NET 객체를 전달합니다. 파이프라인의 각 단계는 속성과 메서드로 조작할 수 있는 구조화된 .NET 객체를 받습니다. 이러한 특성 덕분에 PowerShell 파이프라인은 Bash나 CMD 파이프라인보다 더욱 강력하고 오류 발생률이 낮으며 유지 관리가 더 쉽습니다.

Bash에서 파이프라인은 텍스트 기반이므로 실행하려면 수동으로 구문 분석하고 형식을 지정해야 합니다.tract 값. PowerShell에서 객체를 전달하면 다음과 같은 명령을 실행할 수 있습니다.

Get-Process | Where-Object {$_.CPU -gt 100} | Select-Object Name, CPU

각 명령이 개체 속성을 기반으로 작동하므로 텍스트 구문 분석이 필요하지 않습니다. PowerShell과 기존 셸의 이러한 차이점 덕분에 자동화가 더욱 명확해지고 데이터 처리가 더욱 정확해집니다.


4) PowerShell에서 함수, 필터, 워크플로의 차이점은 무엇인가요? 예를 들어 설명해 보세요.

함수, 필터, 워크플로는 PowerShell에서 논리를 캡슐화하는 다양한 방법을 나타내며, 각각 실행 요구 사항에 따라 고유한 이점을 제공합니다.

  • 기능 재사용을 위해 설계된 모듈식 코드 블록입니다. 매개변수, 반환 값, 그리고 유효성 검사 속성과 같은 고급 기능을 지원합니다.
  • 필터 파이프라인 작업에 최적화된 특수 함수로, 한 번에 하나의 객체씩 입력을 처리합니다.
  • 워크플로우 장기 실행, 병렬 또는 체크포인트 작업을 지원하며 종종 여러 시스템에서 복잡한 자동화를 조율하는 데 사용됩니다.

예제 테이블

타입 형질 예시 시나리오
함수 매개변수 지원, 모듈형 디자인 사용자 정의 자동화 로직 생성
필터 파이프라인 입력을 효율적으로 처리합니다. 로그 항목 필터링
워크플로우 병렬 처리, 지속성 다중 서버 패치

필터 예시:

filter Get-LargeFiles { if ($_.Length -gt 1GB) { $_ } }

5) PowerShell 성능에 영향을 미치는 요소는 무엇이며, 관리자는 어떻게 실행 효율성을 개선할 수 있습니까?

PowerShell 성능은 처리 방식, 개체 크기, 반복 전략, 모듈 오버헤드 및 스크립트 설계에 따라 달라집니다. 관리자는 불필요한 파이프라인 작업을 최소화하고, 적절한 경우 네이티브 .NET 메서드를 사용하고, ForEach-Object -Parallel 또는 작업 부하에 따라 배열 기반 루프를 사용합니다.

주요 개선 사항은 다음과 같습니다.

  • 과도한 파이프라인을 피하세요 매우 큰 데이터 세트를 다룰 때.
  • 강력한 유형의 변수를 선호합니다 전환 오버헤드를 줄이기 위해.
  • .NET 클래스 또는 API 사용 더 높은 성능이 요구되는 계산 작업에 적합합니다.
  • 자주 사용되는 모듈 가져오기 캐시 초기화 시간을 줄이려면.

예: 교체 Get-Content file.txt | ForEach-Object {}[IO.File]::ReadAllLines() 특히 대용량 파일의 경우 파일 읽기 성능이 획기적으로 향상됩니다.


6) PowerShell 프로필이란 무엇이며, 어떻게 사용자 생산성을 향상시키나요?

PowerShell 프로필은 새 PowerShell 세션이 시작될 때마다 자동으로 실행되는 스크립트입니다. 프로필을 통해 사용자는 사용자 지정 함수, 별칭, 환경 변수, 모듈 가져오기 또는 UI 사용자 지정을 정의할 수 있습니다. 이를 통해 일관된 작업 환경을 제공하고 반복적인 작업을 줄여 생산성을 크게 향상시킬 수 있습니다.

관리자는 서버 연결이나 툴킷 로딩과 같이 자주 실행되는 작업을 위한 함수를 만드는 경우가 많습니다. 예를 들어, Azure 사전 정의된 자격 증명을 자동으로 사용하면 운영팀의 온보딩 속도가 빨라집니다.

PowerShell 지원 네 가지 프로필 유형호스트와 범위에 따라 사용자와 시스템 전체 자동화 시나리오에 맞게 맞춤형 구성이 가능합니다.


7) PowerShell에서 오류를 처리하는 다양한 방법을 설명해 주시겠습니까? 그리고 각 접근 방식이 가장 적합한 경우는 언제인가요?

PowerShell의 오류 처리에는 예측 가능한 실행을 보장하기 위한 체계적인 기법이 사용됩니다. 관리자는 종료 오류, 종료되지 않는 오류, try/catch 블록 중에서 선택할 수 있습니다. $ErrorActionPreference-ErrorAction 매개변수. 적절한 메서드는 스크립트의 수명 주기와 작업의 중요도에 따라 달라집니다.

행동 양식

  • 시도하다/잡다/드디어: 특정 복구 단계가 필요한 자동화 스크립트의 구조화된 처리에 가장 적합합니다.
  • -ErrorAction 중지: 종료되지 않는 오류를 종료되는 오류로 변환하여 예외 처리를 더 쉽게 합니다.
  • $ErrorAction선호도: 글로벌 동작을 정의하지만 신중하게 사용해야 합니다.
  • 함정 진술: 특정 사례에 대한 기존 접근 방식.

예: 데이터베이스 마이그레이션 스크립트는 try/catch를 사용하여 오류를 기록하고 롤백 작업이 수행되도록 해야 합니다.


8) PowerShell의 모듈은 무엇이며, 자동화 환경에서 어떤 이점을 제공합니까?

PowerShell 모듈은 배포 및 재사용을 위해 설계된 cmdlet, 함수, 워크플로, DSC 리소스 또는 스크립트를 포함하는 패키지입니다. 모듈식 개발을 지원하고, 스크립트 중복을 줄이며, 버전 관리를 간소화하여 자동화 워크플로를 향상시킵니다. 모듈은 미리 정의된 모듈 경로에서 자동으로 로드될 수 있으며, 엔터프라이즈급 자동화에 필수적입니다.

장점은 다음과 같습니다.

  • 재사용 성: 여러 팀에서 공유할 수 있는 논리를 캡슐화합니다.
  • 유지 보수성: 업데이트와 버그 수정을 중앙에서 관리합니다.
  • 확장성: 대규모 스크립트 배포를 지원합니다.
  • 회사조직: 관련 명령을 논리적으로 그룹화하는 데 도움이 됩니다.

예: The Azure PowerShell 모듈은 클라우드 리소스를 효율적으로 관리하기 위한 수백 개의 cmdlet을 제공합니다.


9) PowerShell DSC(Desired State Configuration)는 어떻게 작동하며, 인프라 관리에 어떤 이점을 제공합니까?

PowerShell DSC는 시스템 상태를 선언적으로 정의하고 유지 관리하는 구성 관리 프레임워크입니다. 관리자는 설치된 기능, 서비스, 파일 또는 레지스트리 항목과 같은 원하는 설정을 지정하는 구성 스크립트를 작성합니다. DSC 엔진은 이러한 구성을 자동으로 적용하여 일관된 시스템 동작을 보장합니다.

혜택표

혜택 기술설명
일관성 시스템이 의도한 상태로 유지되도록 보장합니다.
규정 준수 정책 기반 구성을 적용합니다.
자동화 수동 구성 드리프트를 줄입니다.
확장성 대규모 기업 환경에 이상적입니다

예: DSC 구성을 사용하면 IIS가 특정 모듈과 함께 설치되고, 구성 요소가 변경되면 DSC가 해당 구성 요소를 정의된 상태로 되돌릴 수 있습니다.


10) GUI 기반 도구보다 PowerShell 스크립팅을 선호하는 경우는 언제인가요? 시나리오와 그 이유를 제시하세요.

자동화, 반복성, 일괄 처리 또는 확장성이 필요할 때는 PowerShell을 사용하는 것이 좋습니다. GUI 도구는 단일 작업에 적합하지만 반복적이거나 대량 작업에는 비효율적입니다. PowerShell은 일관된 실행, 로깅, 버전 제어 및 CI/CD 또는 구성 관리 시스템과의 통합을 지원합니다.

시나리오

  • 일관된 특성을 가진 Active Directory에 500개의 사용자 계정을 만듭니다.
  • 수백 대의 서버에 보안 정책을 적용합니다.
  • 배포 Azure 인프라를 통한 리소스Code.
  • 수동 작업 없이 예정된 유지 관리를 수행합니다.

PowerShell의 장점으로는 인적 오류 감소, 성능 향상 등이 있습니다. trac실행 가능성, 그리고 여러 환경에 맞게 스크립트를 매개변수화할 수 있는 기능.


11) PowerShell에서 데이터를 저장하고 검색하는 다양한 방법은 무엇입니까?

PowerShell은 다양한 데이터 저장 메커니즘을 지원하여 사용자가 지속성, 복잡성 및 규모에 따라 선택할 수 있도록 합니다. 데이터는 변수, 배열 또는 해시 테이블에 임시로 저장되거나 파일, 레지스트리 또는 데이터베이스에 영구적으로 저장될 수 있습니다.

주요 저장 방법은 다음과 같습니다.

  1. 변수: $name = "Guru99" – 가장 간단한 세션 기반 저장소.
  2. 어레이: $arr = @(1,2,3,4) – 주문형 컬렉션의 경우.
  3. 해시 테이블: @{Key="Value"} – 키/값 쌍의 경우.
  4. CSV 및 JSON 파일: 사용 Export-Csv or ConvertTo-Json 체계적인 지속성을 위해.
  5. 레지스트리 및 데이터베이스: 활용 Set-ItemProperty 또는 기업 데이터를 위한 외부 커넥터.

예를 들어, Get-Service | Export-Csv Services.csv 나중에 검색을 허용합니다. Import-Csv일관된 보고 워크플로를 보장합니다.


12) PowerShell 별칭은 어떻게 작동하며, 장점과 단점은 무엇입니까?

별칭은 명령 사용을 간소화하고 생산성을 높이기 위해 설계된 cmdlet, 함수 또는 스크립트의 대체 이름 또는 바로가기입니다. 예를 들어, ls 에 대한 별칭입니다 Get-ChildItem.

장점

  • 더 빠른 명령 입력.
  • Unix 또는 CMD 환경에서 온 사용자에게 더 쉬운 전환이 가능합니다.
  • 짧은 관리 스크립트의 가독성이 향상되었습니다.

단점

  • 별칭이 환경에 따라 다를 수 있으므로 스크립트 이식성이 떨어질 수 있습니다.
  • 대화형이 아닌 사용자의 스크립트 명확성을 낮춥니다.
  • 신뢰성을 보장하기 위해 생산 자동화에서는 피해야 합니다.

예제 테이블

아래 장점 불리
대화형 사용 속도와 친숙함 제한된 이식성
스크립팅 간결한 구문 가독성 감소
팀 공동 작업 사용자 정의 별칭 세트 일관성 없는 실행

13) PowerShell 실행 정책과 사용 가능한 다양한 유형을 설명하세요.

실행 정책은 PowerShell이 ​​구성 파일과 스크립트를 로드하는 방식을 정의하여 무단 실행을 방지하는 보호 장치 역할을 합니다. 이는 보안 경계가 아니라 안전 제어입니다.

실행 정책 유형

정책 기술설명
한정된 스크립트는 허용되지 않습니다. 대화형 명령만 허용됩니다.
모두 서명 됨 서명된 스크립트만 실행할 수 있습니다.
RemoteSigned 로컬 스크립트는 자유롭게 실행되지만, 다운로드한 스크립트는 서명이 필요합니다.
제한 없음 모든 스크립트를 실행할 수 있지만 원격 스크립트의 경우 확인이 필요합니다.
우회로 제한이나 경고가 없습니다.
정의되지 않음 정책이 설정되지 않았습니다.

관리자는 다음을 사용하여 정책을 변경할 수 있습니다. Set-ExecutionPolicy RemoteSigned 균형 잡힌 보안과 유연성을 위해.


14) PowerShell 공급자란 무엇이며, 데이터 저장소에 대한 접근성을 어떻게 향상시키나요?

PowerShell 공급자는 파일 시스템, 레지스트리, 환경 변수 또는 인증서와 같은 데이터 저장소를 디렉터리처럼 탐색할 수 있는 계층적 네임스페이스로 제공합니다. PowerShell의 적용 범위를 파일뿐 아니라 시스템 및 애플리케이션 데이터까지 확장합니다.

예제 공급자

  • FileSystem → 다음과 같이 운전합니다 C:\
  • RegistryHKLM: HKCU:
  • EnvironmentEnv:
  • CertificateCert:
  • AliasAlias:

예를 들어, typing Set-Location HKLM:\Software 파일 시스템 탐색과 동일한 레지스트리 탐색을 허용하여 다양한 리소스에 걸쳐 관리 패러다임을 통합합니다.


15) PowerShell은 백그라운드 작업을 어떻게 처리하며, 작업과 예약된 작업의 차이점은 무엇입니까?

백그라운드 작업은 현재 세션을 차단하지 않고 비동기 작업을 실행할 수 있도록 합니다. 다른 작업을 계속 진행하면서 긴 프로세스를 실행하는 데 유용합니다.

  • 시작 작업: 백그라운드 작업을 생성합니다.
  • Get-Job / Receive-Job: 작업 결과를 모니터링하고 검색합니다.
  • 작업 제거: 완료된 작업을 삭제합니다.

차이표

제품 특장점 백그라운드 작업 예정된 작업
실행 동일한 세션에서 비동기 정의된 시간 또는 이벤트에서 실행됩니다.
범위 세션별 시스템 전체
고집 세션 종료 후 손실됨 작업 스케줄러에 저장됨
적용 사례 임시 또는 일시적 작업 반복적인 자동화

예: Start-Job -ScriptBlock { Get-Process } 비동기적으로 프로세스 목록을 실행합니다.


16) PowerShell의 스크립트 블록은 무엇이며, 일반적으로 어디에서 사용됩니까?

스크립트 블록은 {} 중괄호로 묶인 재사용 가능한 PowerShell 코드 단위입니다. 익명 함수나 코드 템플릿처럼 작동하며, 실행하거나 인수로 전달하거나 나중에 호출하기 위해 저장할 수 있습니다.

일반적인 사용 사례

  • cmdlet에서 동적 논리 정의(ForEach-Object {} 블록).
  • 재사용 가능한 매개변수화된 함수를 만듭니다.
  • 지연된 실행을 위한 구성 논리를 저장합니다.
  • 보안 컨텍스트(예: 원격 실행) Invoke-Command).

예:

$scriptBlock = { param($x) $x * 5 }
Invoke-Command -ScriptBlock $scriptBlock -ArgumentList 10

이는 지연되고 재사용 가능한 코드 실행을 보여주는 50을 반환합니다.


17) PowerShell 원격 기능이 작동하는 방식과 보안에 미치는 영향을 설명하세요.

PowerShell Remoting을 사용하면 관리자가 WS-Management(WS-Man) 또는 SSH 프로토콜을 사용하여 원격 시스템에서 명령을 실행할 수 있습니다. PowerShell Remoting은 다음을 통한 일대일 및 일대다 통신을 모두 지원합니다. Invoke-Command Enter-PSSession.

보안 기능

  • 도메인 인증을 위해 Kerberos를 사용합니다.
  • 암호화된 세션에 HTTPS를 지원합니다.
  • 역할 기반 액세스를 위해 JEA(Just-Enough-Administration)를 허용합니다.

예:

Invoke-Command -ComputerName Server01 -ScriptBlock { Get-Service }

직접 로그인 없이 서비스를 안전하게 검색할 수 있습니다. 보안 강화에는 필요한 엔드포인트만 활성화하고 제한된 실행 공간을 통해 권한을 제한하는 것이 포함됩니다.


18) PowerShell 5.1과 PowerShell 7.x의 주요 차이점은 무엇입니까?

PowerShell 7.x(PowerShell Core라고도 함)는 크로스 플랫폼이며 오픈 소스인 반면 PowerShell 5.1은 Windows-only. 최신 버전에는 성능 향상, 파이프라인 병렬화 및 최신 모듈 호환성이 포함되어 있습니다.

제품 특장점 PowerShell 5.1 파워셸 7.x
플랫폼 Windows 만 크로스 플랫폼(Windows, 리눅스, macOS)
뼈대 . NET 프레임 워크 .NET 코어 / .NET 6+
Cmdlet 병렬 처리 제한된 ForEach-Object -Parallel SUPPORT
호환성 레거시 모듈 업데이트되고 현대화된 모듈
개발 비공개 소스 GitHub에서 오픈 소스로 공개

PowerShell 7.x는 다중 OS 자동화가 필요한 클라우드 및 DevOps 환경에 이상적입니다.


19) Import-Module과 PowerShell의 Dot Sourcing 방법을 사용하는 것의 차이점은 무엇입니까?

두 방법 모두 스크립트나 함수를 현재 세션에 로드하지만, 범위와 지속성 면에서 동작이 다릅니다.

  • 가져 오기 모듈 모듈 경로에서 미리 정의된 모듈을 로드하여 자동 로드 기능을 갖춘 구조화되고 버전이 지정된 콘텐츠를 제공합니다.
  • 도트 소싱 (. .\script.ps1)은 현재 범위에서 스크립트를 실행하여 해당 변수와 함수를 즉시 사용할 수 있도록 합니다.

비교표

아래 가져 오기 모듈 도트 소싱
범위 모듈 범위 현재 범위
고집 PowerShell에서 관리됨 일시적인
적용 사례 재사용 가능한 모듈 라이브러리 로컬 사용자 정의 함수
예시 Import-Module ActiveDirectory . .\MyFunctions.ps1

도트 소싱은 개발 중에 유용합니다. Import-Module 생산 자동화에 더 좋습니다.


20) PowerShell 스크립트에서 비밀번호와 같은 중요한 정보를 어떻게 보호할 수 있나요?

자동화에서는 자격 증명 보안이 매우 중요합니다. PowerShell은 비밀번호를 저장하고 처리하는 여러 가지 안전한 방법을 제공합니다.

보안 기술

  1. 보안 문자열:
    Read-Host -AsSecureString 일반 텍스트 입력을 방지합니다.
  2. 자격 증명 개체:
    Get-Credential 인증을 위해 PSCredential 객체를 생성합니다.
  3. 암호화된 파일:
    Export-Clixml Import-Clixml 사용자/머신 컨텍스트에 바인딩된 암호화된 자격 증명을 저장합니다.
  4. 비밀 관리 모듈:
    기업 비밀을 위한 중앙 집중식 금고 통합.

예:

$cred = Get-Credential
Invoke-Command -ComputerName Server01 -Credential $cred -ScriptBlock { Get-Service }

이를 통해 자격 증명이 일반 텍스트로 나타나지 않아 규정 준수와 운영 보안이 유지됩니다.


21) PowerShell 함수의 매개변수는 무엇이며, 어떤 유형의 매개변수를 정의할 수 있습니까?

PowerShell의 매개변수를 사용하면 사용자가 함수에 동적으로 인수를 전달하여 유연성, 재사용성 및 가독성을 향상시킬 수 있습니다. 매개변수는 사용자 입력을 받고, 실행 흐름을 제어하고, 데이터 유효성 검사를 적용할 수 있습니다.

매개변수 유형

타입 기술설명 예시
위치 순서 기반; 인수 위치가 중요합니다 function Test { param($a,$b) }
이름 명시적으로 참조된 인수 Test -a 1 -b 2
필수 입력이 필요하거나 오류가 발생합니다. [Parameter(Mandatory)]
Optional 기본값 정의됨 $param = "Default"
파이프라인 입력 파이프라인을 통해 입력을 수락합니다 [Parameter(ValueFromPipeline)]
동적 런타임에 추가됨 고급 cmdlet에서 사용됨

예제 함수:

function Get-UserInfo {
    param(
        [Parameter(Mandatory)][string]$Username,
        [int]$Age = 25
    )
    Write-Output "User: $Username, Age: $Age"
}

이는 향상된 유연성을 위해 필수 및 선택적 매개변수 유형을 모두 보여줍니다.


22) PowerShell의 객체 지향 아키텍처와 그 장점을 설명하세요.

PowerShell의 아키텍처는 객체 지향적이며, .NET 프레임워크를 활용하여 비정형 텍스트 대신 구조화된 객체를 조작합니다. 각 명령은 속성과 메서드를 포함하는 풍부한 객체를 반환하므로 문자열 조작 없이도 복잡한 자동화를 구현할 수 있습니다.

장점:

  • Data Integrity: 텍스트 출력을 구문 분석할 필요가 없습니다.
  • 유연성: 점 표기법을 사용하여 객체 멤버에 직접 액세스합니다($obj.Property).
  • 상호 운용성 : .NET 클래스에 대한 전체 액세스.
  • 일관성 : 시스템 전반에 걸쳐 체계적인 자동화를 구현합니다.

예:

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

이 모델은 텍스트 필터링 없이 객체 속성에서 서비스 이름을 직접 검색합니다. 이 모델은 자동화 스크립트의 성능, 가독성 및 안정성을 향상시킵니다.


23) PowerShell을 REST API와 어떻게 통합할 수 있나요? 예를 들어 설명해 주세요.

PowerShell은 다음을 사용하여 RESTful API를 사용할 수 있습니다. Invoke-RestMethod or Invoke-WebRequest최신 웹 서비스와 직접 상호 작용할 수 있으며, JSON, XML 또는 원시 데이터 페이로드를 효율적으로 처리합니다.

통합 단계:

  1. API 엔드포인트와 인증 방법을 식별합니다.
  2. Invoke-RestMethod GET/POST 요청을 보냅니다.
  3. JSON/XML 응답을 구문 분석합니다.
  4. 이후 자동화에는 PowerShell 객체를 사용합니다.

예:

$response = Invoke-RestMethod -Uri "https://api.github.com/users/microsoft/repos"
$response | Select-Object name, html_url

GitHub 저장소를 객체 형태로 검색합니다. API와의 통합을 통해 클라우드 자동화, DevOps 파이프라인 및 데이터 기반 워크플로를 구현할 수 있습니다.


24) PowerShell 클래스란 무엇이고, 함수와 어떻게 다릅니까?

PowerShell 클래스는 버전 5.0에서 도입되어 캡슐화, 상속, 다형성을 갖춘 진정한 객체 지향 프로그래밍을 가능하게 했습니다.

주요 차이점:

아래 클래스 기능
정의 객체를 생성하기 위한 청사진 재사용 가능한 코드 블록
주 정부 속성 유지 상태 없음(전역 변수를 사용하지 않는 경우)
계승 지원 지원되지 않음
적용 사례 복잡한 자동화 모듈 간단한 재사용 가능한 작업

예:

class Employee {
    [string]$Name
    [int]$ID
    Employee([string]$n,[int]$i){ $this.Name=$n; $this.ID=$i }
}
$emp = [Employee]::new("Alice",101)
$emp.Name

클래스를 통해 대규모 자동화 프로젝트에서 코드 구성이 개선됩니다.


25) PowerShell의 CIM은 무엇이며 WMI와 어떻게 다릅니까?

CIM(Common Information Model) 및 WMI(Windows CIM(Management Instrumentation)은 시스템 리소스를 관리하기 위한 프레임워크입니다. CIM은 DCOM 대신 WS-Man을 사용하여 통신하는 최신 표준 기반 구현입니다.

CIM과 WMI의 차이점

제품 특장점 WMI Cmdlet CIM Cmdlet
프로토콜 DCOM WS-맨
성능 느린 더 빠르고 방화벽 친화적
교차 플랫폼 Windows-뿐 크로스 플랫폼 호환
cmdlet Get-WmiObject Get-CimInstance
입/출력 라인 레거시 RPC 최신 HTTPS

예:

Get-CimInstance -ClassName Win32_OperatingSystem

CIM은 표준화된 통신 모델로 인해 원격 관리 및 클라우드 통합을 위해 최신 PowerShell에서 선호됩니다.


26) PowerShell 명령을 사용하여 파일과 디렉토리를 어떻게 관리할 수 있나요?

PowerShell은 포괄적인 파일 시스템 관리를 위한 cmdlet을 제공합니다. 이러한 cmdlet은 UNIX 스타일 명령을 모방하지만 Windows 사물.

일반적인 파일 관리 Cmdlet

동작 Cmdlet 예시
파일 만들기 New-Item New-Item test.txt -ItemType File
파일 복사 Copy-Item Copy-Item file1.txt C:\Backup
파일 이동 Move-Item Move-Item data.txt C:\Data
파일 삭제 Remove-Item Remove-Item old.txt
검색 파일 Get-ChildItem Get-ChildItem *.log -Recurse

30일 이상 된 로그 파일을 제거하는 스크립트 예:

Get-ChildItem C:\Logs -Recurse | 
Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | 
Remove-Item

이를 통해 유지관리 작업이 효율적으로 자동화됩니다.


27) PowerShell에서 Foreach 루프를 사용하는 방법을 예를 들어 설명하세요.

The foreach construct는 객체 컬렉션을 반복하여 일괄 작업을 간소화합니다. PowerShell은 두 가지 주요 변형을 지원합니다. foreach 진술 및 ForEach-Object cmdlet.

foreach 문을 사용한 예:

$names = @("Alice", "Bob", "Carol")
foreach ($n in $names) { Write-Output "Hello, $n" }

ForEach-Object를 사용한 예:

Get-Process | ForEach-Object { $_.Name }

차:

  • The foreach 이 명령문은 모든 항목을 메모리에 로드합니다(작은 세트일수록 더 빠름).
  • ForEach-Object 한 번에 하나씩 항목을 처리합니다(대규모 파이프라인의 경우 메모리 효율성이 높음).

두 가지 중 어떤 것을 선택할지는 데이터 크기와 성능 요구 사항에 따라 달라집니다.


28) PowerShell 이벤트와 이벤트 처리는 어떻게 작동합니까?

PowerShell은 이벤트 기반 프로그래밍을 지원하여 스크립트가 시스템 변경 사항이나 사용자 정의 트리거에 반응할 수 있도록 합니다.

이벤트 유형:

  • WMI 이벤트: 시스템 변경(예: 새로운 프로세스 생성)으로 인해 발생합니다.
  • .NET 이벤트: 타이머와 같은 .NET 객체에서 처리됩니다.
  • 맞춤 이벤트: 를 사용하여 정의됨 New-Event.

예:

Register-WmiEvent -Query "SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Process'" -Action {
    Write-Output "New process detected!"
}

이 기능은 새로운 프로세스를 수신하고 자동으로 작업을 실행하므로 PowerShell은 사전 예방적 시스템 모니터링에 적합합니다.


29) PowerShell DSC 풀 서버란 무엇이며 푸시 모드와 어떻게 다릅니까?

In PowerShell 원하는 상태 구성(DSC), 구성은 다음 중 하나에 적용될 수 있습니다. 푸시 or 당기세요 방법.

차이표

모드 기술설명 적용 사례
푸시 스크립트를 통해 수동으로 푸시된 구성 작은 환경
당기세요 노드는 중앙 서버에서 구성을 검색합니다. 기업 규모 자동화
의사 소통 관리자 → 노드 노드 → 서버
확장성 제한된 확장 성이 뛰어난

예: 풀 모드에서는 구성이 HTTP/SMB 서버에 저장되고, 노드는 주기적으로 체크인하여 자동으로 업데이트를 가져옵니다. 풀 모드는 수동 개입 없이 수백 대의 서버에서 규정 준수를 유지하는 데 이상적입니다.


30) PowerShell은 어떻게 상호 작용할 수 있습니까? Azure 자원?

PowerShell은 다음과 완벽하게 통합됩니다. Azure 를 통해 Az 모듈클라우드 서비스를 관리하기 위한 수백 개의 cmdlet을 제공합니다.

공통의 Azure PowerShell cmdlet

동작 Cmdlet 예시
로그인 Connect-AzAccount 연결 대상 Azure 신청
자원 관리 New-AzResourceGroup 리소스 그룹 생성
가상 머신 Get-AzVM VM 세부 정보 검색
스토리지 Get-AzStorageAccount 저장소 계정 관리

예제 스크립트:

Connect-AzAccount
New-AzResourceGroup -Name "TestRG" -Location "EastUS"
Get-AzVM

PowerShell은 인프라스트럭처(IaaS)를 활성화합니다.Code 을 통한 Azure자동화, CI/CD 파이프라인, 다중 지역 배포를 효과적으로 지원합니다.


31) PowerShell 스크립트에서 로깅과 감사를 어떻게 구현할 수 있나요?

로깅 및 감사는 필수적입니다. trac스크립트 실행, 문제 해결 및 규정 준수 유지 관리에 있어 PowerShell은 효율적인 로그 캡처를 위한 다양한 방법을 제공합니다.

최고의 로깅 사례:

  1. 시작-대본/중지-대본 사용: 모든 콘솔 활동을 캡처합니다.
  2. Write-Output 또는 Write-Verbose: 구조화된 데이터를 로그 파일에 출력합니다.
  3. 사용자 정의 로깅 기능: 다음을 사용하여 중앙화된 로그 핸들러를 만듭니다. Out-File or Add-Content.
  4. 이벤트 로그: 에 쓰기 Windows 이벤트 뷰어 사용 Write-EventLog.

예:

Start-Transcript -Path "C:\Logs\ScriptLog.txt"
Write-Output "Script started at $(Get-Date)"
# Your code here
Stop-Transcript

Tip Splunk와 같은 모니터링 도구와 통합하기 위해 구조화된 JSON 로그를 사용하세요. Azure 모니터링합니다.


32) PowerShell 스크립트를 효과적으로 디버깅하는 방법을 설명하세요.

PowerShell에서 디버깅하려면 논리 오류, 런타임 오류 또는 예기치 않은 출력을 식별하기 위한 도구와 기술이 필요합니다.

디버깅 방법:

  • PSBreakpoint 설정: 특정 라인이나 변수 액세스 지점에서 실행을 중지합니다.
  • ISE 및 VS Code 디버거: 단계별 기능과 다양한 검사를 제공합니다.
  • Write-Debug 및 Write-Verbose: 진단 메시지를 포함합니다.
  • ErrorAction을 사용한 Try/Catch: 예외를 포착하고 분석합니다.

예:

Set-PSBreakpoint -Script .\MyScript.ps1 -Line 12

이렇게 하면 검사를 위해 12번째 줄에서 실행이 일시 중지됩니다.

더 심층적인 디버깅을 위해 다음을 사용하세요. VS Code중단점과 호출 스택 분석 기능이 통합된 PowerShell 확장 프로그램입니다.


33) PowerShell Streams는 무엇이며 표준 출력과 어떻게 다릅니까?

PowerShell에는 6개의 서로 다른 출력 스트림각각은 실행 중에 데이터와 메시지를 분리하는 고유한 목적을 갖습니다.

흐름 기술설명 예제 Cmdlet
1 산출 Write-Output
2 오류 Write-Error
3 경고 Write-Warning
4 말 수가 많은 Write-Verbose
5 디버그 Write-Debug
6 정보 Write-Information

이 구조를 사용하면 특정 메시지 유형을 리디렉션할 수 있습니다.

예:

Get-ChildItem "C:\Invalid" 2> error.log

리디렉션은 오류만 발생시킵니다.ping 콘솔을 깨끗하게 청소하세요.

스트림을 이해하는 것은 효율적인 자동화와 정확한 로그 관리에 필수적입니다.


34) PowerShell을 CI/CD 파이프라인(예: ...)과 통합하는 방법은 무엇입니까? Jenkins or Azure 데브옵스?

PowerShell은 CI/CD 환경에 원활하게 통합되어 테스트, 배포 및 구성을 자동화합니다.

통합 방법:

  1. Jenkins: "실행"을 통해 빌드 단계에서 PowerShell 스크립트를 사용합니다. Windows PowerShell” 단계.
  2. Azure DevOps : 프로비저닝 및 배포를 위해 파이프라인 내에 PowerShell 작업을 추가합니다.
  3. GitHub 작업: 달리기 .ps1 크로스 플랫폼 자동화를 위한 스크립트.

예:

- task: PowerShell@2
  inputs:
    filePath: 'scripts/Deploy.ps1'
    arguments: '-Environment Prod'

이 스니펫은 PowerShell 스크립트를 실행합니다. Azure DevOps 파이프라인.

PowerShell의 관리 기능 Azure 리소스 및 핸들링 구성 덕분에 인프라스트럭처(IaaS)에 이상적입니다.Code DevOps 워크플로에서.


35) PowerShell의 Runspace란 무엇이며, 어떻게 성능을 향상시키나요?

Runspace는 다음을 가능하게 하는 가벼운 실행 컨텍스트입니다. 병렬 처리 PowerShell 내에서 실행됩니다. 동일한 호스트 환경을 공유하기 때문에 여러 PowerShell 프로세스를 실행하는 것보다 효율적입니다.

장점:

  • 작업이나 별도의 프로세스를 사용하는 것보다 빠릅니다.
  • 메모리 오버헤드 감소
  • 대용량 데이터 작업에 적합합니다.

예:

$pool = [runspacefactory]::CreateRunspacePool(1,5)
$pool.Open()

런스페이스는 특히 수천 개의 객체나 원격 엔드포인트를 처리하는 스크립트에서 고급 멀티스레딩 시나리오를 지원합니다.


36) 자동화를 위해 반복되는 PowerShell 스크립트를 어떻게 예약할 수 있나요?

PowerShell 스크립트는 다음을 사용하여 예약할 수 있습니다. 작업 스케줄러, 예약된 작업, 또는 통해 Azure 자동화 클라우드 환경을 위해.

행동 양식:

  1. Windows 작업 스케줄러:
    GUI를 사용하여 작업 만들기 또는 schtasks.exe.
  2. 예약된 작업:
    Register-ScheduledJob 반복 실행을 정의합니다.
  3. Azure 자동화 :
    클라우드 기반 PowerShell 런북을 예약합니다.

예:

Register-ScheduledJob -Name "DailyBackup" -ScriptBlock {Backup-Database} -Trigger (New-JobTrigger -Daily -At 3AM)

이렇게 하면 매일 오전 3시에 백업 작업이 자동화됩니다.

스케줄링을 통해 수동 개입 없이도 운영 연속성이 향상됩니다.


37) PowerShell 스크립트의 주요 성능 튜닝 기술은 무엇입니까?

성능 튜닝을 통해 스크립트가 더 빠르게 실행되고 리소스 소모가 줄어듭니다.

기법:

  • 불필요한 파이프라인 작업을 피하세요.
  • 강력한 형식의 변수를 사용하세요 암묵적 변환을 방지합니다.
  • 네이티브 .NET 메서드 활용 무거운 계산을 위해.
  • 디스크 I/O 감소 메모리 내 작업을 사용하여.
  • 병렬화 활용 (ForEach-Object -Parallel 또는 런스페이스).

예: 대신에:

Get-Content largefile.txt | ForEach-Object {$_}

사용

[System.IO.File]::ReadAllLines("largefile.txt")

이 방법은 .NET 클래스를 통해 파일에 직접 액세스하여 속도를 향상시킵니다.


38) PowerShell을 사용하여 시스템 성능과 리소스를 모니터링하려면 어떻게 해야 합니까?

PowerShell은 시스템 메트릭을 모니터링하기 위한 cmdlet과 WMI/CIM 인터페이스를 제공하므로 사전 예방적 리소스 관리에 적합합니다.

유용한 Cmdlet:

  • Get-Process – CPU/메모리 활용도.
  • Get-Counter – 성능 카운터.
  • Get-WmiObject win32_LogicalDisk – 디스크 사용량.
  • Get-Service – 서비스 상태.

예:

Get-Counter -Counter "\Processor(_Total)\% Processor Time"

조건부 논리를 사용하여 알림을 자동화할 수 있습니다. 예를 들어 CPU 사용률이 90%를 초과하면 이메일을 트리거할 수 있습니다.

이를 모니터링 파이프라인에 통합하면 지속적인 상태 점검이 지원됩니다.


39) PowerShell Transcript란 무엇이며 다른 로깅 방법과 어떻게 다릅니까?

PowerShell 스크립트는 명령과 출력을 포함한 모든 세션 활동을 감사 및 규정 준수를 위해 텍스트 파일에 기록합니다.

주요 특징:

  • 콘솔 활동을 자동으로 캡처합니다.
  • 녹음 중에는 수정할 수 없습니다(무결성 추가).
  • 로컬 및 원격 세션에서 작동합니다.

예:

Start-Transcript -Path "C:\Logs\AdminSession.txt"
# Commands executed here
Stop-Transcript

로깅과의 차이점: 대본은 대화형 세션을 캡처하는 반면, 로깅은 스크립트 내의 특정 메시지나 출력에 초점을 맞춥니다.


40) PowerShell 스크립트를 공유 또는 배포하기 전에 어떻게 보호할 수 있나요?

스크립트를 보안하면 승인되지 않은 수정, 변조 또는 자격 증명 노출을 방지할 수 있습니다.

보안 조치:

  1. Code 서명: 디지털 인증서를 사용하세요 Set-AuthenticodeSignature.
  2. 실행 정책 제어: AllSigned 검증된 스크립트만 실행되도록 합니다.
  3. 난처: 민감한 논리를 보호하세요 ConvertTo-SecureString 및 환경 변수.
  4. 버전 관리 : 제한된 액세스로 Git에 스크립트를 저장합니다.
  5. 확인: 파일 무결성을 위해 체크섬이나 해시를 포함합니다.

예:

Set-AuthenticodeSignature .\Deploy.ps1 @(Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)

Code 서명은 진위성을 보장하고 배포 중 스크립트 변조를 방지합니다.


🔍 실제 시나리오와 전략적 대응을 포함한 주요 PowerShell 면접 질문

다음과 같습니다 전문적으로 관련된 PowerShell 면접 질문 10가지 면접관이 기대하는 바와 강력한 샘플 답변이 포함됩니다. 질문은 다음과 같습니다. 지식 기반, 행동 적예산 및 상황에 따른 모든 스타일은 실제 채용 관행을 반영하도록 만들어졌습니다.

1) PowerShell이란 무엇이고, 기존 명령 프롬프트와 어떻게 다릅니까?

후보자에게 기대하는 것: 면접관은 PowerShell의 객체 지향 설계에 대한 이해도와 텍스트 기반 셸에 비해 어떤 장점이 있는지 평가하고자 합니다.

예시 답변: PowerShell은 .NET 기반으로 구축된 작업 자동화 및 구성 관리 프레임워크입니다. PowerShell은 일반 텍스트가 아닌 구조화된 객체를 출력하기 때문에 기존 명령 프롬프트와 달리 더욱 고급 스크립팅, 자동화 및 시스템 API 및 모듈과의 통합이 가능합니다.


2) PowerShell에서 cmdlet이 무엇인지 설명해 주시겠습니까?

후보자에게 기대하는 것: PowerShell 명령의 구성 요소를 설명할 수 있는 능력.

예시 답변: cmdlet은 .NET 프레임워크 기반으로 구축된 가벼운 PowerShell 명령입니다. cmdlet은 Get-Process와 같은 동사-명사 명명 규칙을 따르며, 강력한 자동화 워크플로를 위해 다른 cmdlet으로 파이프할 수 있는 객체를 반환합니다.


3) 귀하가 작성한 까다로운 자동화 스크립트에 대해 설명하고 해당 스크립트의 안정성을 어떻게 보장했는지 설명하세요.

후보자에게 기대하는 것: 스크립팅 복잡성, 테스트 관행 및 문제 해결에 대한 통찰력.

예시 답변: 이전 업무에서는 여러 시스템에서 사용자 온보딩을 자동화하는 PowerShell 스크립트를 만들었습니다. 모듈식 기능, 광범위한 오류 처리, 그리고 배포 전 스테이징 환경에서 테스트 케이스를 실행하여 스크립트의 안정성을 확보했습니다.


4) PowerShell 스크립트의 오류는 어떻게 처리하나요?

후보자에게 기대하는 것: 오류 처리 기술에 대한 이해.

예시 답변: Try, Catch, Finally 블록을 사용하여 오류를 처리합니다. 또한 cmdlet을 호출할 때 ErrorAction 매개변수를 사용하여 종료되지 않는 오류에 대한 응답 방식을 제어합니다. 오류 세부 정보를 로깅하면 오류를 진단하고 장기적인 스크립트 안정성을 향상시키는 데 도움이 됩니다.


5) 프로덕션 환경에서 스크립트가 갑자기 느리게 실행되면 어떻게 문제를 해결하시겠습니까?

후보자에게 기대하는 것: 근본 원인을 파악하기 위한 체계적인 접근 방식.

예시 답변: 이전 직책에서는 최근 변경 사항을 분리하고 리소스를 많이 소모하는 루프나 과도한 API 호출을 확인하는 작업부터 시작했습니다. 그런 다음 Measure-Command를 사용하여 성능 병목 현상을 평가하고 결과 캐싱 및 중복 쿼리 최소화와 같은 최적화 기법을 적용했습니다.


6) PowerShell의 파이프라인은 무엇이고, 왜 유용한가요?

후보자에게 기대하는 것: PowerShell의 핵심 강점 중 하나를 이해합니다.

예시 답변: 파이프라인을 사용하면 한 cmdlet의 출력을 다른 cmdlet의 입력으로 전달할 수 있습니다. 이는 효율적인 명령 체인을 지원하고, 임시 변수를 줄이며, 객체 기반의 깔끔한 데이터 흐름을 지원하기 때문에 유용합니다.


7) PowerShell을 사용하여 여러 컴퓨터에 소프트웨어 배포를 자동화하는 방법을 설명하세요.

후보자에게 기대하는 것: 원격 실행 및 자동화 모범 사례에 대한 지식이 필요합니다.

예시 답변: Invoke-Command와 함께 PowerShell Remoting을 활용하여 여러 호스트에서 설치 스크립트를 실행할 것입니다. 소프트웨어 가용성을 검증하고, 설치 결과를 기록하고, PowerShell 작업과 같은 병렬 처리 기술을 사용하여 배포 속도를 높일 것입니다.


8) 개발 시 팀원들과 일반적으로 어떻게 협업하시나요?ping 스크립트?

후보자에게 기대하는 것: 의사소통, 문서화, 팀워크 기술.

예시 답변: 이전 직장에서는 Git과 같은 버전 관리 시스템을 활용하여 협업하고, 스크립트 검토를 진행하고, 합의된 스타일 가이드라인을 따랐습니다. 또한, 팀원들이 쉽게 채택하고 관리할 수 있도록 스크립트 사용 및 종속성을 설명하는 문서를 작성했습니다.


9) 자신이 작성한 스크립트로 인해 예상치 못한 중단이 발생하면 어떤 조치를 취하시겠습니까?

후보자에게 기대하는 것: 책임감, 평정심, 체계적인 사고 대응.

예시 답변: 스크립트를 즉시 중단하고 관련 이해관계자들에게 알리고, 문제의 원인을 파악하기 위해 로그를 검토할 것입니다. 수정 사항을 구현하고 테스트 환경에서 검증한 후, 재발 방지를 위해 문서나 안전 조치를 업데이트할 것입니다.


10) 새로운 PowerShell 기능과 모범 사례에 대한 최신 정보를 어떻게 얻으시나요?

후보자에게 기대하는 것: 지속적인 학습을 보여줍니다.

예시 답변: 마지막 역할에서는 PowerShell GitHub 저장소를 팔로우하고 커뮤니티 포럼에 참여하고 공식 문서를 읽어 최신 정보를 얻었습니다. Microsoft 문서화. 또한 전문가들이 새로운 기술과 실제 사용 사례를 공유하는 가상 미팅에도 참석했습니다.

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