이 부록은 각 장의 끝에 있는 검토 질문에 대한 간결한 답변을 제공합니다. 이를 사용하여 이해의 유효성을 검사하고 주요 개념을 강화할 수 있습니다.
1장 - PowerShell 시작
- 자동 변수를
$PSVersionTable사용합니다. - 로컬 컴퓨터에서 권한 상승이 필요한 작업에 대해 UAC(사용자 계정 컨트롤)를 바이패스해야 하는 경우에만 해당합니다.
- Windows 클라이언트 시스템의 기본 실행 정책은 스크립트 실행을 방지하는
Restricted. - 현재 실행 정책을 확인하는 데 사용합니다
Get-ExecutionPolicy. - 사용
Set-ExecutionPolicy(예:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).
2장 - 도움말 시스템
- 아니요. DisplayName 매개 변수는 위치가 아니라 이름으로 지정됩니다.
-
Get-Process에는 6개의 매개 변수 집합이 있습니다. -
Get-Command -Noun EventLog을 사용합니다. -
Get-Process -Name powershell을 사용합니다. -
Update-Help(Windows PowerShell에서 관리자 권한)를 실행하여 최신 도움말 콘텐츠를 다운로드하고 설치합니다.
3장 - 개체, 속성 및 메서드 검색
-
Get-Process이System.Diagnostics.Process개체를 생성합니다. - 명령을
Get-Member에 파이프합니다. - 개체에 작업을 수행하는 메서드가 있는지 확인합니다.
- 명령의
PassThru매개 변수가 있는 경우 사용합니다. - 프로토타이핑하는 동안 많은 양의 출력이 반복적으로 생성되는 것을 방지하기 위해 명령을 한 번 실행하고 결과를 변수에 저장합니다.
4장 - "One-Liners" 및 파이프라인
- PowerShell 원라이너는 몇 줄로 나뉘어 있어도 하나의 연속적인 파이프라인입니다.
- 파이프(
|), 쉼표(,), 여는 대괄호([ ]), 중괄호({ }), 괄호(( ))와 같은 문자에서 자연스러운 줄 바꿈이 발생할 수 있습니다. - 파이프라인을 통해 전달되는 데이터의 양을 줄여 성능과 효율성을 향상시키기 위해 왼쪽으로 필터링해야 합니다.
- 명령은 값(형식별) 또는 속성 이름으로 파이프라인 입력을 허용할 수 있습니다.
- PowerShell 갤러리 대부분의 콘텐츠는 커뮤니티에 기여하며 심사되지 않을 수 있으므로 사용하기 전에 검토하고 테스트해야 합니다.
5장 - 서식, 별칭, 공급자, 비교
- cmdlet 서식 지정은 파이프라인을 중단하고 대부분의 다른 명령에서 사용할 수 없는 형식 개체를 생성하기 때문입니다.
-
Get-Alias -Name %를 사용하여 실제 cmdlet을 확인하십시오. - 별칭은 가독성과 이식성을 감소시키기 때문에 다른 사용자가 스크립트를 이해하기가 더 어려워집니다.
-
Get-ChildItem -Path HKLM:\, HKCU:\를 사용하여 두 하이브의 레지스트리 키를 나열합니다. -
-replace연산자는 대/소문자를 구분하지 않는 반면.Replace()메서드는 대/소문자를 구분합니다.
6장 - 흐름 제어
-
ForEach-Object는 파이프라인(스트리밍)에서 항목을 한 번에 하나씩 처리하고 문은foreach이미 메모리에 로드된 컬렉션의 항목을 처리합니다. - 루프는
while실행하기 전에 해당 조건을 평가하므로 조건이 false이면 한 번 이상 실행되는 것과 달리do whiledo until전혀 실행되지 않을 수 있습니다. -
break는 루프를 완전히 종료하고continue현재 반복을 건너뛰고 다음 반복으로 진행합니다.
7장 - WMI 작업
- WMI cmdlet(예:
Get-WmiObject)은 이전 버전이며 DCOM을 사용하는 반면 CIM cmdlet(예:Get-CimInstance)은 최신이며 기본적으로 WSMan을 사용합니다. - WSMan(Windows 원격 관리).
- CIM 세션을 사용하면 연결을 다시 사용하고, 대체 자격 증명을 지원하고, 성능을 향상시키며, 여러 원격 연결 관리를 간소화할 수 있습니다.
- 예를 들어 DCOM을 사용하여 세션 옵션을
New-CimSessionOption만들고 전달New-CimSession한 다음 해당 세션을Get-CimInstance사용합니다. -
Remove-CimSession을 사용합니다.
8장 - PowerShell 원격 관리
-
Enable-PSRemoting을 사용합니다. -
Enter-PSSession을 사용합니다. - 각 명령을 사용하여 컴퓨터 이름과 자격 증명을 지정하는 대신 영구 세션을 사용할 수 있습니다.
- 예, 일대일 대화형 원격 시나리오에서 PowerShell 세션(PSSession)을 사용할 수 있습니다.
- 로컬로 실행되는 cmdlet은 메서드를 사용하여 라이브 개체를 반환하고 원격 명령은 메서드 없이 역직렬화된 개체를 반환합니다.
9장 - 함수
-
Get-Verb을 사용합니다. - 함수에
[CmdletBinding()]특성을 추가합니다. - 함수가 시스템 상태를 변경하거나 영향을 미칠 수 있는 작업을 수행하는 경우
-
-ErrorAction Stop을 지정합니다. - 사용자와 다른 사용자가 함수를 쉽게 이해하고 도움말
Get-Help에 액세스할 수 있도록 함수를 사용하는 방법을 문서화하려면 .
10장 - 스크립트 모듈
-
.psm1파일을 만들고 함수를 배치합니다. - 승인된 동사를 사용하면 일관성을 보장하고 경고를 방지하며 검색 가능성을 향상시킵니다.
-
New-ModuleManifest을 사용합니다. -
Export-ModuleMember를.psm1파일 내에서 사용하거나.psd1파일의FunctionsToExport필드에 함수를 지정합니다. - 모듈은 나열된
$env:PSModulePath경로에 있는 모듈과 동일한 폴더에 있어야 하며 적절한 모듈 파일(.psm1또는 매니페스트)을 포함해야 합니다.
최종 참고 사항
- 이러한 답변은 주요 개념을 강화하기 위해 의도적으로 간결합니다.
- 더 깊은 이해를 위해 장을 다시 검토하세요.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
PowerShell