WhatIf, Confirm 및 ValidateOnly 스위치

적용 대상: Exchange Server 2013

숙련된 관리자와 스크립트 작성자, Exchange 및 스크립팅을 접하는 관리자는 모두 WhatIf, ConfirmValidateOnly 스위치를 사용하면 이점을 얻을 수 있습니다. 이러한 스위치를 사용하면 명령이 실행되는 방식을 제어할 수 있고 명령이 데이터에 영향을 미치기 전에 수행하는 작업을 정확하게 표시할 수 있습니다. 이 기능은 테스트 환경에서 프로덕션 환경으로 전환할 때와 새 스크립트 또는 명령을 새로 선보일 때 매우 유용합니다.

WhatIf, ConfirmValidateOnly 스위치는 필터를 사용하거나 파이프라인에서 Get 명령을 사용하여 반환되는 개체를 수정하는 명령과 함께 사용할 때 특히 유용합니다. 이 항목에서는 각 스위치에 대해 설명하고 각 스위치에 대한 명령 예를 제공합니다.

중요

WhatIf, ConfirmValidateOnly 스위치를 스크립트의 명령으로 사용하려면 스크립트를 호출하는 명령줄이 아니라 스크립트의 각 명령에 적절한 스위치를 추가해야 합니다.

참고

WhatIf, ConfirmValidateOnly 를 스위치 매개 변수라고 합니다. 스위치 매개 변수에 대한 자세한 내용은 Parameters를 참조하십시오.

WhatIf 스위치

WhatIf 스위치는 명령을 실행하기 위해 적용되는 명령을 지시하지만 명령을 실행하여 영향을 받는 개체와 해당 개체에 대한 변경 내용만 표시하도록 지시합니다. 스위치는 실제로 이러한 개체를 변경하지 않습니다. WhatIf 스위치를 사용하는 경우 해당 개체를 수정할 걱정 없이 해당 개체에 대한 변경 내용이 예상과 일치하는지 확인할 수 있습니다.

WhatIf 스위치와 함께 명령을 실행하면 다음 예제와 같이 WhatIf 스위치를 명령 끝에 배치합니다.

New-AcceptedDomain -Name "Contoso Domain" -DomainName "contoso.com" -WhatIf

이 명령 예를 실행하면 셸에서 다음 텍스트가 반환됩니다.

What if: Creating Accepted Domain "Contoso Domain" with domain name "contoso.com".

Confirm 스위치

Confirm 스위치는 변경하기 전에 처리를 중지하도록 적용되는 명령을 지시합니다. 그러면 해당 명령은 계속하기 전에 각 동작에 대한 확인 메시지를 표시합니다. Confirm 스위치를 사용하는 경우 개체에 대한 변경 내용을 단계별로 진행하여 변경하려는 특정 개체만 변경하도록 할 수 있습니다. 이 기능은 많은 개체에 변경 사항을 적용할 때와 셸 작업 전체를 정밀하게 제어하려는 경우 유용합니다. 셸에서 개체를 수정하기 전에 각 개체에 대해 확인 메시지가 표시됩니다.

기본적으로 셸은 다음 동사가 있는 cmdlet에 Confirm 스위치를 자동으로 적용합니다.

  • Clear
  • Disable
  • Dismount
  • Move
  • Remove
  • Stop
  • Suspend
  • Uninstall

이러한 동사가 있는 cmdlet이 실행되면 셸은 자동으로 명령을 중지하고 승인을 기다린 후 계속 처리합니다.

확인 스위치를 명령에 수동으로 적용하려면 다음 예제와 같이 명령 끝에 확인 스위치를 포함합니다.

Get-JournalRule | Enable-JournalRule -Confirm

이 명령 예를 실행하면 셸에서 다음 확인 메시지가 반환됩니다.

Confirm
Are you sure you want to perform this action?
Enabling journal rule "Litigation Journal Rule".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

확인 메시지를 통해 다음을 선택할 수 있습니다.

  • [Y] 예: Y 를 입력하여 명령을 계속하도록 지시합니다. 다음 작업에서 확인 메시지가 다시 표시됩니다. 기본값은 [Y] Yes입니다.

  • [A] 모두에 예: A 를 입력하여 명령에 작업 및 모든 후속 작업을 계속하도록 지시합니다. 이 명령의 기간 동안 추가 확인 메시지가 표시되지 않습니다.

  • [N] 아니요: N 을 입력하여 명령에 이 작업을 건너뛰고 다음 작업을 계속하도록 지시합니다. 다음 작업에서 확인 메시지가 다시 표시됩니다.

  • [L] 모두에 아니요: L 을 입력하여 명령에 이 작업 및 모든 후속 작업을 건너뛰도록 지시합니다.

  • [S] 일시 중단: S 를 입력하여 현재 파이프라인을 일시 중지하고 명령줄로 돌아갑니다. 파이프라인을 다시 시작하려면 Exit를 입력합니다.

  • [?] 도움말: 명령줄에 확인 프롬프트 도움말을 표시하려면 ? 을 입력합니다.

셸의 기본 동작을 재정의하고 자동으로 적용되는 cmdlet에 대한 확인 프롬프트를 표시하지 않으려면 다음 예제와 같이 값이 $False확인 스위치를 포함할 수 있습니다.

Get-JournalRule | Disable-JournalRule -Confirm:$False

이 경우 확인 메시지가 표시되지 않습니다.

경고

확인 스위치의 기본값은 입니다$True. 셸의 기본 동작은 확인 메시지를 자동으로 표시하는 것입니다. 이 기본 동작이 수행되지 않도록 하려면 해당 명령이 실행되는 동안 모든 확인 메시지를 표시하지 않도록 지시할 수 있습니다. 명령이 확인 없이 명령에 대한 조건을 충족하는 모든 개체를 처리합니다.

ValidateOnly 스위치

ValidateOnly 스위치는 변경 내용을 적용하기 전에 작업을 수행하는 데 필요한 모든 조건 및 요구 사항을 평가하기 위해 적용되는 명령을 지시합니다. ValidateOnly 스위치는 실행하는 데 시간이 오래 걸리거나, 여러 시스템에 여러 종속성이 있거나, 사서함과 같은 중요한 데이터에 영향을 줄 수 있는 cmdlet에서 사용할 수 있습니다.

ValidateOnly 스위치를 명령에 적용하면 명령이 전체 프로세스를 통해 실행됩니다. 명령은 ValidateOnly 스위치 없이 각 작업을 수행합니다. 그러나 명령은 개체를 변경하지 않습니다. 명령이 프로세스를 완료하면 유효성 검사 결과가 포함된 요약이 표시됩니다. 유효성 검사에서 명령이 성공했음을 나타내는 경우 ValidateOnly 스위치 없이 명령을 다시 실행할 수 있습니다.

ValidateOnly 스위치와 함께 명령을 실행하면 명령 끝에 ValidateOnly 스위치를 배치합니다.