산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

2026년 PowerShell 인터뷰:성공을 위한 40가지 전문가 질문 및 답변

PowerShell 인터뷰를 준비하시나요? 예상되는 사항을 이해하면 귀하의 강점과 준비 상태를 명확히 할 수 있으며, 이 PowerShell 인터뷰 가이드는 현장에서 진정으로 중요한 것에 집중하는 데 도움이 됩니다.

PowerShell 기술은 기술 경험과 도메인 전문 지식이 의미 있는 결과를 만들어내는 다양한 역할에 대한 문을 열어줍니다. 현장에서 일하는 전문가들은 강력한 분석 기술, 기술 세트, 일반적인 질문과 답변을 활용하여 신입 사원에서 숙련된 팀 구성원으로 성장하고 선배, 팀 리더 및 관리자가 고급 기술 과제를 해결할 수 있도록 돕습니다.

더 읽어보세요…

👉 무료 PDF 다운로드:PowerShell 인터뷰 질문 및 답변

1) PowerShell이 기존 Windows 명령 프롬프트와 어떻게 다른지, 그리고 이러한 차이점이 제공하는 이점에 대해 설명합니다.

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

예를 들어 Get-Process을 실행할 때 , PowerShell은 .NET 개체를 출력하여 CPU 사용량을 기준으로 정렬하거나 메모리 임계값을 기준으로 필터링하는 등의 작업을 가능하게 합니다. 이러한 구조적 이점은 기업 환경 전반에 걸쳐 신뢰성, 유지 관리 용이성 및 자동화 확장성을 향상시킵니다.

주요 차이점 표

인수 파워셸 CMD 출력 유형객체텍스트스크립팅 언어전체 스크립팅 언어제한된 배치 스크립팅확장성모듈, cmdlet, .NET 클래스최소자동화 수준높음낮음

2) 다양한 유형의 PowerShell cmdlet은 무엇이며 PowerShell 수명 주기에 어떻게 기여하나요?

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

Cmdlet의 주요 유형

예: Get-Service 사용 서비스 상태를 확인하려면 Stop-Service 제어하려면 Set-Service 시작 유형을 구성하는 방법은 수명 주기 흐름을 보여줍니다.

3) PowerShell 파이프라인은 어떻게 작동하며 Bash 또는 CMD의 파이프라인과 다른 특징은 무엇인가요?

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

Bash에서 파이프라인은 텍스트 기반이므로 값을 추출하려면 수동으로 구문 분석하고 형식을 지정해야 합니다. 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를 활용하여 성능을 최적화할 수 있습니다. 또는 워크로드에 따라 배열 기반 루프를 사용할 수도 있습니다.

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

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

6) PowerShell 프로필이란 무엇이며 어떻게 사용자 생산성을 향상합니까?

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

관리자는 서버 연결이나 툴킷 로드 등 자주 실행되는 작업을 위한 기능을 만드는 경우가 많습니다. 예를 들어, 미리 정의된 자격 증명을 사용하여 Azure에 자동으로 연결하는 기능을 추가하면 운영 팀의 온보딩이 더 빨라집니다.

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

7) PowerShell에서 오류를 처리하는 다양한 방법과 각 접근 방식이 가장 적합한 경우를 설명할 수 있나요?

PowerShell의 오류 처리에는 예측 가능한 실행을 보장하기 위한 구조화된 기술이 포함됩니다. 관리자는 종료 오류, 종료되지 않는 오류, try/catch 블록, $ErrorActionPreference 중에서 선택할 수 있습니다. 및 -ErrorAction 매개변수. 적절한 방법은 스크립트의 수명주기와 작업의 중요성에 따라 다릅니다.

방법

예: 데이터베이스 마이그레이션 스크립트는 try/catch를 사용하여 오류를 기록하고 롤백 조치가 취해졌는지 확인해야 합니다.

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

PowerShell 모듈은 배포 및 재사용을 위해 설계된 cmdlet, 함수, 워크플로, DSC 리소스 또는 스크립트가 포함된 패키지입니다. 모듈식 개발을 활성화하고, 스크립트 중복을 줄이고, 버전 제어를 단순화하여 자동화 워크플로를 향상시킵니다. 모듈은 사전 정의된 모듈 경로에서 자동으로 로드될 수 있으며 기업 수준 자동화에 필수적입니다.

장점은 다음과 같습니다:

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

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

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

혜택 표

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

예: DSC 구성을 통해 IIS가 특정 모듈과 함께 설치되도록 할 수 있으며 구성 요소가 변경된 경우 DSC는 해당 구성 요소를 정의된 상태로 되돌립니다.

10) GUI 기반 도구보다 PowerShell을 사용한 스크립팅을 선호해야 하는 경우는 언제입니까? 시나리오와 근거를 제시하세요.

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

시나리오

PowerShell의 장점에는 인적 오류 감소, 추적성 향상, 여러 환경에 대한 스크립트 매개 변수화 기능이 포함됩니다.

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

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

키 저장 방법은 다음과 같습니다:

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

예를 들어 Get-Service | Export-Csv Services.csv Import-Csv를 사용하여 나중에 검색할 수 있습니다. , 일관된 보고 작업흐름을 보장합니다.

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

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

장점

단점

예시표

측면 장점 단점 대화형 사용속도 및 친숙성제한된 이식성스크립팅간단한 구문가독성 감소팀 협업사용자 정의 별칭 세트일관되지 않은 실행

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

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

실행 정책 유형

정책 설명 제한됨스크립트는 허용되지 않습니다. 대화형 명령만 가능합니다.AllSignedOnly 서명된 스크립트는 실행할 수 있습니다.RemoteSignedLocal 스크립트는 자유롭게 실행됩니다. 다운로드한 스크립트는 서명되어야 합니다. 제한 없음모든 스크립트는 실행될 수 있지만 원격 스크립트에 대해서는 확인이 필요합니다. 우회제한 또는 경고가 없습니다.정의되지않음정책이 설정되지 않았습니다.

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

14) PowerShell 공급자란 무엇이며 데이터 저장소에 대한 접근성을 어떻게 향상합니까?

PowerShell 공급자는 데이터 저장소(예:파일 시스템, 레지스트리, 환경 변수 또는 인증서)를 디렉터리처럼 탐색할 수 있는 계층적 네임스페이스로 노출합니다. 이는 PowerShell의 범위를 파일을 넘어 시스템 및 애플리케이션 데이터로 확장합니다.

예시 제공자

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

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

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

차이표

기능 백그라운드 작업 예약된 작업 실행동일 세션에서 비동기정의된 시간 또는 이벤트에서 실행범위세션별시스템 전체지속성세션 종료 후 손실작업 스케줄러에 저장사용 사례임시 또는 임시 작업반복 자동화

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

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

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

일반적인 사용 사례

예:

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

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

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

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

보안 기능

예:

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

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

18) PowerShell 5.1과 PowerShell 7.x의 주요 차이점은 무엇인가요?

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

기능 파워셸 5.1 파워셸 7.x 플랫폼Windows 전용크로스 플랫폼(Windows, Linux, macOS)Framework.NET Framework.NET Core/.NET 6+Cmdlet ParallelismLimitedForEach-Object -Parallel 지원호환성레거시 모듈업데이트되고 현대화된 모듈개발비공개 소스GitHub의 오픈 소스

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

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

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

비교표

측면 가져오기 모듈 도트 소싱 범위모듈 범위현재 범위지속성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의 매개변수를 통해 사용자는 인수를 함수에 동적으로 전달할 수 있어 유연성, 재사용성 및 가독성이 향상됩니다. 매개변수는 사용자 입력을 받아들이고 실행 흐름을 제어하며 데이터 유효성 검사를 시행할 수 있습니다.

매개변수 유형

유형 설명 예 PositionalOrder 기반; 인수 위치가 중요합니다function Test { param($a,$b) } 명시적으로 참조된 NamedArgumentsTest -a 1 -b 2 필수입력이 필요하거나 오류[Parameter(Mandatory)] 발생 선택사항기본값이 정의됨$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 프레임워크를 활용하여 구조화되지 않은 텍스트 대신 구조화된 개체를 조작합니다. 각 명령은 속성과 메서드가 포함된 풍부한 개체를 반환하므로 문자열 조작 없이 복잡한 자동화가 가능합니다.

장점:

예:

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

이는 개체 속성에서 직접 서비스 이름을 검색하므로 텍스트 필터링이 필요하지 않습니다. 이 모델은 자동화 스크립트의 성능, 가독성 및 신뢰성을 향상시킵니다.

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

PowerShell은 Invoke-RestMethod를 사용하여 RESTful API를 사용할 수 있습니다. 또는 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 Management Instrumentation)는 시스템 리소스를 관리하기 위한 프레임워크입니다. CIM은 통신을 위해 DCOM 대신 WS-Man을 사용하는 최신 표준 기반 구현입니다.

CIM과 WMI의 차이점

기능 WMI cmdlet CIM cmdlet 프로토콜DCOMWS-Man성능느림더 빠르고 방화벽 친화적임교차 플랫폼Windows 전용교차 플랫폼 호환CmdletGet-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 루프 사용을 설명합니다.

foreach 구성을 사용하면 개체 컬렉션을 통해 반복을 수행할 수 있으므로 일괄 작업이 단순화됩니다. 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 }

차이점:

둘 중 하나를 선택하는 것은 데이터 크기와 성능 요구 사항에 따라 다릅니다.

28) PowerShell 이벤트 및 이벤트 처리는 어떻게 작동하나요?

PowerShell은 이벤트 중심 프로그래밍을 지원하므로 스크립트가 시스템 변경이나 사용자 정의 트리거에 반응할 수 있습니다.

이벤트 유형:

예:

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

이는 새로운 프로세스를 수신하고 자동으로 작업을 실행하므로 PowerShell을 사전 시스템 모니터링에 적합하게 만듭니다.

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

PowerShell 원하는 상태 구성(DSC) , 구성은 푸시 중 하나에 적용될 수 있습니다. 또는 당기기 모드입니다.

차이표

모드 설명 사용 사례 PushConfiguration은 스크립트를 통해 수동으로 푸시됩니다. 소규모 환경PullNodes는 중앙 서버에서 구성을 검색합니다. 엔터프라이즈 규모 자동화CommunicationAdmin → NodeNode → ServerScalabilityLimited높은 확장성

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

30) PowerShell은 Azure 리소스와 어떻게 상호 작용할 수 있나요?

PowerShell은 Az 모듈을 통해 Azure와 원활하게 통합됩니다. , 클라우드 서비스 관리를 위한 수백 개의 cmdlet을 제공합니다.

일반 Azure PowerShell Cmdlet

액션 cmdlet 예 로그인Connect-AzAccount Azure 구독리소스 관리New-AzResourceGroup에 연결 리소스 그룹 가상 머신Get-AzVM 만들기 VM 세부 정보StorageGet-AzStorageAccount 검색 스토리지 계정 관리

예제 스크립트:

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

PowerShell은 Azure용 코드형 인프라를 활성화하여 자동화, CI/CD 파이프라인 및 다중 지역 배포를 효과적으로 지원합니다.

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

로깅 및 감사는 스크립트 실행 추적, 문제 해결 및 규정 준수 유지에 필수적입니다. PowerShell은 로그를 효율적으로 캡처하는 여러 가지 방법을 제공합니다.

로깅 모범 사례:

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

예:

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

도움말: Splunk 또는 Azure Monitor와 같은 모니터링 도구와의 통합을 위해 구조화된 JSON 로그를 사용하세요.

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

PowerShell의 디버깅에는 논리 오류, 런타임 오류 또는 예상치 못한 출력을 식별하기 위한 도구와 기술이 포함됩니다.

디버깅 방법:

예:

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

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

더 심층적인 디버깅을 위해서는 중단점 및 호출 스택 분석 기능이 있는 VS Code의 통합 PowerShell 확장을 사용하세요.

33) PowerShell 스트림이란 무엇이며 표준 출력과 어떻게 다릅니까?

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

콘솔을 깨끗하게 유지하면서 오류만 리디렉션합니다.

깔끔한 자동화와 정확한 로그 관리를 위해서는 스트림을 이해하는 것이 중요합니다.

34) PowerShell을 Jenkins 또는 Azure DevOps와 같은 CI/CD 파이프라인과 어떻게 통합할 수 있나요?

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

통합 방법:

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

예:

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

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

Azure 리소스를 관리하고 구성을 처리하는 PowerShell의 기능은 DevOps 워크플로의 코드형 인프라에 이상적입니다.

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

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

장점:

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

예:

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

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

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

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

방법:

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

예:

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 – Performance counters.
  • Get-WmiObject win32_LogicalDisk – Disk usage.
  • Get-Service – Service status.

예:

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

You can automate alerts using conditional logic, e.g., trigger an email if CPU usage exceeds 90%.

Integrating this into monitoring pipelines supports continuous health checks.

39) What is PowerShell Transcript, and how does it differ from other logging methods?

The PowerShell transcript records all session activity, including commands and outputs, to a text file for auditing and compliance.

Key Features:

  • Captures console activity automatically.
  • Cannot be modified during recording (adds integrity).
  • Works across local and remote sessions.

예:

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

Difference from logging: Transcripts capture interactive sessions, while logging focuses on specific messages or outputs within scripts.

40) How can PowerShell scripts be secured before sharing or deployment?

Securing scripts prevents unauthorized modifications, tampering, or credential exposure.

Security Measures:

  1. Code Signing: Use digital certificates with Set-AuthenticodeSignature .
  2. Execution Policy Control: Use AllSigned to ensure only verified scripts run.
  3. Obfuscation: Protect sensitive logic using ConvertTo-SecureString and environment variables.
  4. Version Control: Store scripts in Git with restricted access.
  5. Validation: Include checksums or hashes for file integrity.

예:

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

Code signing ensures authenticity and prevents script tampering during distribution.

🔍 Top PowerShell Interview Questions with Real-World Scenarios &Strategic Responses

Below are 10 professionally relevant PowerShell interview questions along with what the interviewer expects and strong sample answers. The questions include knowledge-based , behavioral , and situational styles, all crafted to reflect real hiring practices.

1) What is PowerShell, and how does it differ from the traditional Command Prompt?

Expected from candidate: The interviewer wants to assess understanding of PowerShell’s object-oriented design and its advantages over text-based shells.

Example answer: PowerShell is a task automation and configuration management framework built on .NET. It differs from the traditional Command Prompt because PowerShell outputs structured objects rather than plain text, allowing for more advanced scripting, automation, and integration with system APIs and modules.

2) Can you explain what a cmdlet is in PowerShell?

Expected from candidate: Ability to describe the building blocks of PowerShell commands.

Example answer: A cmdlet is a lightweight PowerShell command built on the .NET framework. Cmdlets follow a Verb-Noun naming convention, such as Get-Process, and they return objects that can be piped into other cmdlets for powerful automation workflows.

3) Describe a challenging automation script you wrote and how you ensured its reliability.

Expected from candidate: Insight into scripting complexity, testing practices, and problem solving.

Example answer: In my previous role, I created a PowerShell script to automate user onboarding across multiple systems. I ensured its reliability through modular functions, extensive error handling, and by running test cases in a staging environment before deployment.

4) How do you handle errors in PowerShell scripts?

Expected from candidate: Understanding of error handling techniques.

Example answer: I handle errors using Try, Catch, Finally blocks. I also use the ErrorAction parameter when calling cmdlets to control how they respond to non-terminating errors. Logging error details helps with diagnosing failures and improving long-term script stability.

5) How would you troubleshoot a script that suddenly starts running slowly in a production environment?

Expected from candidate: A methodical approach to determining root cause.

Example answer: At a previous position, I began by isolating recent changes and checking for resource-intensive loops or excessive API calls. I then used Measure-Command to evaluate performance bottlenecks and applied optimization techniques such as caching results and minimizing redundant queries.

6) What is the pipeline in PowerShell, and why is it useful?

Expected from candidate: Understanding of one of PowerShell’s core strengths.

Example answer: The pipeline allows the output of one cmdlet to be passed as input into another. This is useful because it enables efficient chaining of commands, reduces temporary variables, and supports a clean, object-based flow of data.

7) Describe how you would automate the deployment of software across multiple machines using PowerShell.

Expected from candidate: Familiarity with remote execution and automation best practices.

Example answer: I would leverage PowerShell Remoting with Invoke-Command to execute installation scripts across multiple hosts. I would validate software availability, log installation results, and use parallel processing techniques like PowerShell jobs to speed up deployment.

8) How do you typically collaborate with team members when developing scripts?

Expected from candidate: Communication, documentation, and teamwork skills.

Example answer: At my previous job, I collaborated through version control systems such as Git, conducted script reviews, and followed agreed-upon style guidelines. I also created documentation that explained script usage and dependencies so team members could adopt and maintain them easily.

9) What steps would you take if a script you wrote caused an unexpected outage?

Expected from candidate: Accountability, composure, and structured incident response.

Example answer: I would immediately stop the script, inform relevant stakeholders, and begin reviewing logs to identify what caused the issue. I would implement a fix, validate it in a test environment, and update documentation or safeguards to prevent recurrence.

10) How do you stay updated with new PowerShell features and best practices?

Expected from candidate: Demonstrates continuous learning.

Example answer: In my last role, I stayed updated by following the PowerShell GitHub repository, participating in community forums, and reading official Microsoft documentation. I also attended virtual meetups where professionals shared new techniques and practical use cases.


C 언어

  1. C - 오류 처리
  2. C# 사용
  3. 예제가 있는 C# 해시 테이블
  4. C 구조 및 기능
  5. C# 메서드 오버로딩
  6. C - 프로그램 구조
  7. C# - 루프
  8. C# - 반사
  9. C# 배열
  10. C 파일 처리