부록 - 검토 질문에 대한 답변

이 부록은 각 장의 끝에 있는 검토 질문에 대한 간결한 답변을 제공합니다. 이를 사용하여 이해의 유효성을 검사하고 주요 개념을 강화할 수 있습니다.

1장 - PowerShell 시작

  1. 자동 변수를 $PSVersionTable 사용합니다.
  2. 로컬 컴퓨터에서 권한 상승이 필요한 작업에 대해 UAC(사용자 계정 컨트롤)를 바이패스해야 하는 경우에만 해당합니다.
  3. Windows 클라이언트 시스템의 기본 실행 정책은 스크립트 실행을 방지하는 Restricted.
  4. 현재 실행 정책을 확인하는 데 사용합니다 Get-ExecutionPolicy .
  5. 사용 Set-ExecutionPolicy (예: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).

2장 - 도움말 시스템

  1. 아니요. DisplayName 매개 변수는 위치가 아니라 이름으로 지정됩니다.
  2. Get-Process 에는 6개의 매개 변수 집합이 있습니다.
  3. Get-Command -Noun EventLog을 사용합니다.
  4. Get-Process -Name powershell을 사용합니다.
  5. Update-Help(Windows PowerShell에서 관리자 권한)를 실행하여 최신 도움말 콘텐츠를 다운로드하고 설치합니다.

3장 - 개체, 속성 및 메서드 검색

  1. Get-ProcessSystem.Diagnostics.Process 개체를 생성합니다.
  2. 명령을 Get-Member에 파이프합니다.
  3. 개체에 작업을 수행하는 메서드가 있는지 확인합니다.
  4. 명령의 PassThru 매개 변수가 있는 경우 사용합니다.
  5. 프로토타이핑하는 동안 많은 양의 출력이 반복적으로 생성되는 것을 방지하기 위해 명령을 한 번 실행하고 결과를 변수에 저장합니다.

4장 - "One-Liners" 및 파이프라인

  1. PowerShell 원라이너는 몇 줄로 나뉘어 있어도 하나의 연속적인 파이프라인입니다.
  2. 파이프(|), 쉼표(,), 여는 대괄호([ ]), 중괄호({ }), 괄호(( ))와 같은 문자에서 자연스러운 줄 바꿈이 발생할 수 있습니다.
  3. 파이프라인을 통해 전달되는 데이터의 양을 줄여 성능과 효율성을 향상시키기 위해 왼쪽으로 필터링해야 합니다.
  4. 명령은 값(형식별) 또는 속성 이름으로 파이프라인 입력을 허용할 수 있습니다.
  5. PowerShell 갤러리 대부분의 콘텐츠는 커뮤니티에 기여하며 심사되지 않을 수 있으므로 사용하기 전에 검토하고 테스트해야 합니다.

5장 - 서식, 별칭, 공급자, 비교

  1. cmdlet 서식 지정은 파이프라인을 중단하고 대부분의 다른 명령에서 사용할 수 없는 형식 개체를 생성하기 때문입니다.
  2. Get-Alias -Name %를 사용하여 실제 cmdlet을 확인하십시오.
  3. 별칭은 가독성과 이식성을 감소시키기 때문에 다른 사용자가 스크립트를 이해하기가 더 어려워집니다.
  4. Get-ChildItem -Path HKLM:\, HKCU:\를 사용하여 두 하이브의 레지스트리 키를 나열합니다.
  5. -replace 연산자는 대/소문자를 구분하지 않는 반면 .Replace() 메서드는 대/소문자를 구분합니다.

6장 - 흐름 제어

  1. ForEach-Object 는 파이프라인(스트리밍)에서 항목을 한 번에 하나씩 처리하고 문은 foreach 이미 메모리에 로드된 컬렉션의 항목을 처리합니다.
  2. 루프는 while 실행하기 전에 해당 조건을 평가하므로 조건이 false이면 한 번 이상 실행되는 것과 달리 do whiledo until전혀 실행되지 않을 수 있습니다.
  3. break 는 루프를 완전히 종료하고 continue 현재 반복을 건너뛰고 다음 반복으로 진행합니다.

7장 - WMI 작업

  1. WMI cmdlet(예: Get-WmiObject)은 이전 버전이며 DCOM을 사용하는 반면 CIM cmdlet(예: Get-CimInstance)은 최신이며 기본적으로 WSMan을 사용합니다.
  2. WSMan(Windows 원격 관리).
  3. CIM 세션을 사용하면 연결을 다시 사용하고, 대체 자격 증명을 지원하고, 성능을 향상시키며, 여러 원격 연결 관리를 간소화할 수 있습니다.
  4. 예를 들어 DCOM을 사용하여 세션 옵션을 New-CimSessionOption만들고 전달 New-CimSession한 다음 해당 세션을 Get-CimInstance사용합니다.
  5. Remove-CimSession을 사용합니다.

8장 - PowerShell 원격 관리

  1. Enable-PSRemoting을 사용합니다.
  2. Enter-PSSession을 사용합니다.
  3. 각 명령을 사용하여 컴퓨터 이름과 자격 증명을 지정하는 대신 영구 세션을 사용할 수 있습니다.
  4. 예, 일대일 대화형 원격 시나리오에서 PowerShell 세션(PSSession)을 사용할 수 있습니다.
  5. 로컬로 실행되는 cmdlet은 메서드를 사용하여 라이브 개체를 반환하고 원격 명령은 메서드 없이 역직렬화된 개체를 반환합니다.

9장 - 함수

  1. Get-Verb을 사용합니다.
  2. 함수에 [CmdletBinding()] 특성을 추가합니다.
  3. 함수가 시스템 상태를 변경하거나 영향을 미칠 수 있는 작업을 수행하는 경우
  4. -ErrorAction Stop을 지정합니다.
  5. 사용자와 다른 사용자가 함수를 쉽게 이해하고 도움말 Get-Help에 액세스할 수 있도록 함수를 사용하는 방법을 문서화하려면 .

10장 - 스크립트 모듈

  1. .psm1 파일을 만들고 함수를 배치합니다.
  2. 승인된 동사를 사용하면 일관성을 보장하고 경고를 방지하며 검색 가능성을 향상시킵니다.
  3. New-ModuleManifest을 사용합니다.
  4. Export-ModuleMember.psm1 파일 내에서 사용하거나 .psd1 파일의 FunctionsToExport 필드에 함수를 지정합니다.
  5. 모듈은 나열된 $env:PSModulePath경로에 있는 모듈과 동일한 폴더에 있어야 하며 적절한 모듈 파일(.psm1 또는 매니페스트)을 포함해야 합니다.

최종 참고 사항

  • 이러한 답변은 주요 개념을 강화하기 위해 의도적으로 간결합니다.
  • 더 깊은 이해를 위해 장을 다시 검토하세요.