다음을 통해 공유


셸에서 RollAlternateserviceAccountCredential.ps1 스크립트 사용

 

적용 대상: Exchange Server 2010 SP2, Exchange Server 2010 SP3

마지막으로 수정된 항목: 2015-03-09

Exchange Server 2010 SP1(서비스 팩 1)의 RollAlternateServiceAccountPassword.ps1 스크립트를 사용하여 ASA 자격 증명(대체 서비스 계정 자격 증명)을 업데이트하고 지정된 클라이언트 액세스 서버에 업데이트를 배포할 수 있습니다.

참고

Exchange 관리 셸은 스크립트를 자동으로 로드하지 않습니다. 모든 스크립트 앞에는 ".</STRONG>"를 붙여야 합니다. 예를 들어 RollAlternateServiceAccountPassword.ps1 스크립트를 실행하려면 .\RollAlternateServiceAccountPassword.ps1을 입력합니다.

참고

이 스크립트는 영문으로만 제공됩니다.

클라이언트 액세스 서버 배열 또는 부하 분산 솔루션에 Kerberos 인증을 사용하는 방법에 대한 자세한 내용은 클라이언트 액세스 서버 배열 또는 부하 분산 솔루션에 Kerberos 사용부하 분산된 클라이언트 액세스 서버에 대해 Kerberos 인증 구성을 참조하십시오.

스크립트 사용 및 기록에 대한 자세한 내용은 Exchange 관리 셸을 사용하여 스크립팅을 참조하십시오.

구문

RollAlternateServiceAccountPassword.ps1 -Scope <Object> -Identity <Object> -Source <Object> 

자세한 정보

이 절차를 수행하려면 먼저 사용 권한을 할당 받아야 합니다. 필요한 사용 권한을 확인하려면 다음을 참조하십시오. 클라이언트 액세스 권한의 "클라이언트 액세스 보안" 항목

대체 서비스 계정 자격 증명 스크립트 기술 정보

이 스크립트는 ASA 자격 증명의 설치 및 유지 관리 자격을 용이하게 합니다. ASA 자격 증명을 만들고 적절한 서비스 사용자 이름을 설정한 후, 스크립트를 사용하여 모든 대상 클라이언트 액세스 서버로 자격 증명을 배포할 수 있습니다.

스크립트를 사용하려면 어떤 서버를 대상으로 삼고 어떤 자격 증명을 ASA 자격 증명으로 사용할 것인지 식별해야 합니다.

서버 범위

스크립트가 포리스트에 있는 모든 클라이언트 액세스 서버, 특정 클라이언트 액세스 서버 배열의 모든 구성원 또는 특정 서버를 대상으로 하도록 선택할 수 있습니다. 사용 가능한 매개 변수는 ToEntireForest, ToArraryMembersToSpecificServers입니다. 특정 서버 또는 특정 서버 배열의 구성원을 대상으로 스크립트를 작성하는 경우 대상으로 할 서버 또는 서버 배열 이름을 통해 Identity 매개 변수를 지정해야 합니다.

자격 증명 원본

스크립트는 기존 서버에서 다른 서비스 계정 암호를 복사할 수 있습니다. 또는 사용할 계정을 지정하고 스크립트에서 계정에 대한 새 암호를 생성하도록 할 수 있습니다. 사용 가능한 매개 변수는 GenerateNewPasswordForCopyFrom입니다. GenerateNewPasswordFor 매개 변수에서는 도메인\계정 이름 형식으로 계정 문자열을 지정해야 합니다. 컴퓨터 계정을 사용 중인 경우, 계정 이름 끝에 “$”를 추가해야 합니다(예: CONTOSO\ClientServerAcct$). CopyFrom 매개 변수는 기존 클라이언트 액세스 서버의 이름을 자격 증명 원본으로 사용합니다.

자격 증명에 대한 새 암호 생성

암호는 스크립트에 의해 만들어집니다. 사용자 입력은 필요하지 않습니다. 스크립트는 모든 대상 컴퓨터에 암호 배포를 시도한 다음, 새로 생성된 암호로 Active Directory 계정 자격 증명 업데이트를 시도합니다.

새로 생성된 암호의 길이는 73자로서 강력한 암호 요구 사항 표준을 충족합니다. 암호 요구 사항이 다른 경우 암호를 수동으로 설정한 다음 대상 서버로 복사해야 할 수도 있습니다.

서비스 중단이 발생하지 않도록 하기 위해 스크립트는 각 클라이언트 액세스 서버를 검사하고 현재 암호를 유지할 뿐 아니라 새 암호를 추가합니다. 스크립트가 실행된 후, 공유 ASA 자격 증명에서 Active Directory에 저장된 현재 암호나 Active Directory에서 아직 설정되지 않은 새 암호 중 하나를 사용할 수 있습니다.

만료된 암호와 같이 더 이상 유효하지 않은 모든 암호는 대상 서버에서 제거됩니다. Active Directory에서 암호를 변경할 수 없으며 암호가 만료되었을 수도 있는 경우, 스크립트에서 암호 재설정을 시도합니다. 이를 수행하려면 대체 서비스 계정이 컴퓨터 계정인지 또는 사용자 계정인지에 따라 스크립트를 실행 중인 계정에 Active Directory 컴퓨터 계정 암호 또는 사용자 계정 암호를 재설정할 사용 권한이 있어야 합니다.

모든 대상 클라이언트 액세스 서버에 대해 암호가 제대로 변경되지 않는 경우, Active Directory 암호 업데이트로 인해 인증 실패가 발생할 수 있습니다. 스크립트가 무인 모드에서 실행되는 경우, 모든 대상 클라이언트 액세스 서버가 성공적으로 업데이트되지 않았다면 Active Directory 암호가 새 암호로 업데이트되지 않습니다. 스크립트가 유인 모드에서 실행되는 경우, Active Directory에서 암호를 업데이트할 것인지 묻는 메시지가 표시됩니다.

암호 유지 관리 자동화를 위해 예약된 작업 만들기

암호를 지속적으로 유지 관리하기 위해 스크립트가 예약된 작업을 만들도록 하려면 CreateScheduledTask 매개 변수를 사용합니다. 이 매개 변수에는 만들 작업의 이름에 대한 문자열이 필요합니다.

참고

무인 모드의 예약된 작업을 만들기 전에 스크립트를 실행하여 유인 모드에서 올바르게 작동하는지 먼저 확인합니다.

스크립트는 스크립트가 위치한 폴더에 .cmd 파일을 만듭니다. 그런 다음 3주마다 해당 .cmd 파일을 실행하는 작업을 만듭니다. 예를 들어 예약된 작업이 실행되는 빈도를 높이거나 낮추려면 Windows 작업 스케줄러를 사용하여 예약된 작업을 수정할 수 있습니다. 기본적으로 작업은 현재 로그온되어 있는 사용자로 실행됩니다. 또한 스크립트는 사용자가 컴퓨터에 로그온되어 있을 때만 실행됩니다. 사용자가 로그온되어 있는지 여부에 상관없이 예약된 작업이 실행되도록 수정하는 것이 좋습니다. 다른 계정에 암호 재설정을 위한 Active Directory 권한뿐 아니라 Exchange Enterprise 관리자 역할도 있는 경우, 해당 계정에서 이를 실행하도록 선택할 수도 있습니다. 예정된 작업을 생성하는 경우 스크립트는 무인 모드에서 자동으로 실행됩니다.

스크립트의 범위를 벗어나는 작업

스크립트는 ASA 자격 증명의 SPN을 관리하거나 서버에서 대체 서비스 계정을 제거하도록 허용하지 않습니다. 서버에서 대체 서비스 계정을 제거하려면 Set-ClientAccessServer cmdlet을 사용합니다. Kerberos 인증을 제거해야 하는 경우 클라이언트 액세스 서버 배열 또는 부하 분산 솔루션에 Kerberos 사용을 참조하십시오.

스크립트 문제 해결

무인 모드의 예약된 작업을 만들기 전에 스크립트를 실행하여 유인 모드에서 올바르게 작동하는지 먼저 확인하는 것이 좋습니다. 문제 해결 정보는 RollAlternateServiceAccountCredential.ps1 스크립트 문제 해결을 참조하십시오.

스크립트 유효성 검사

-verbose 플래그를 사용하여 대화식으로 스크립트를 실행할 때 스크립트의 출력에 완료된 스크립트가 표시됩니다. 클라이언트 액세스 서버가 업데이트되었는지 확인하려면 ASA 자격 증명에서 마지막으로 수정된 타임스탬프를 확인할 수 있습니다. 다음 예에서는 클라이언트 액세스 서버 목록과 대체 서비스 계정이 마지막으로 업데이트된 시간이 생성됩니다.

Get-ClientAccessServer -IncludeAlternateServiceAccountCredentialstatus |Fl Name, AlternateServiceAccountConfiguration

컴퓨터에서 이벤트 로그를 검사하여 어떤 스크립트가 실행되는지 확인할 수도 있습니다. 스크립트에 대한 이벤트 로그 항목은 응용 프로그램 이벤트 로그에 있으며 원본 MSExchange Management Application에서 가져온 것입니다.다음 표에서는 로그된 이벤트와 해당 이벤트의 의미를 보여 줍니다.

스크립트 이벤트 ID와 그 설명

이벤트 설명

14001

시작

14002

성공(정보)

14003

성공했지만 경고가 표시됩니다.

스크립트에서 몇 가지 문제가 발생했지만 해결되었거나 사용자 입력으로 반드시 필요한 것이 아니라는 사실이 확인되었습니다. 스크립트가 대화형 모드에서 실행 중인 경우, 경고에 대한 자세한 내용은 스크립트 출력을 참조하십시오.

14004

실패

스크립트가 예약된 작업으로 실행되는 경우 그 결과는 RollAlternateServiceAccountPassword라는 하위 폴더에 있는 Exchange 서버 Logging 폴더에 로깅됩니다.

로그를 사용하여 작업이 올바르게 실행되고 있는지 확인할 수 있습니다.

매개 변수

매개 변수 필수 설명

ToEntireForest

옵션

ToEntireForest 매개 변수는 포리스트에 있는 모든 클라이언트 액세스 서버에 대한 스크립트를 대상으로 합니다.

ToArrayMembers

옵션

ToArrayMembers 매개 변수는 특정 클라이언트 액세스 서버 배열의 모든 구성원에 대한 스크립트를 대상으로 합니다.

참고

ToArrayMembers 매개 변수 또는 ToSpecificServers 매개 변수를 사용 중인 경우, Identity 매개 변수를 사용하여 서버 이름이나 서버 배열 이름을 지정해야 합니다.

ToSpecificServers

옵션

ToSpecificServers 매개 변수는 특정 서버에 대한 스크립트를 대상으로 합니다.

참고

ToArrayMembers 매개 변수 또는 ToSpecificServers 매개 변수를 사용 중인 경우, Identity 매개 변수를 사용하여 서버 이름이나 서버 배열 이름을 지정해야 합니다.

Identity

필수

Identity 매개 변수는 클라이언트 액세스 서버 배열의 이름이나 대상으로 하는 특정 서버의 이름을 지정합니다.

GenerateNewPasswordFor<String>

옵션

GenerateNewPasswordFor 매개 변수는 스크립트에서 ASA를 위한 새 암호를 생성해야 한다고 지정합니다. 문자열 값은 도메인\계정 이름 형식의 ASA 계정이어야 합니다. 컴퓨터 계정을 사용 중인 경우 계정 이름 끝에 $ 문자를 추가해야 합니다.

CopyFrom<String>

옵션

CopyFrom 매개 변수는 다른 클라이언트 액세스 서버에서 자격 증명이 복사된다는 것을 지정합니다. 지정된 문자열 값은 클라이언트 액세스 서버의 이름입니다.

Mode

옵션

Mode 스위치는 스크립트가 유인 모드에서 실행되는지 또는 무인 모드에서 실행되는지를 지정합니다. 무인 모드에서는 사용자 입력을 위한 메시지가 표시되지 않으며, 꼭 필요한 경우 더 제한적인 옵션을 자동으로 선택합니다.

CreateScheduledTask<String>

옵션

CreateScheduledTask 매개 변수는 스크립트에 ASA 자격 증명 업데이트를 수행하기 위해 예약된 작업을 만들도록 지정합니다. 문자열 값은 만들어질 예약된 작업의 이름입니다.

참고

이 스크립트는 스크립트가 위치한 폴더에 .cmd 파일을 만듭니다. 예약된 작업은 3주마다 한 번씩 .cmd 파일을 실행합니다. Windows 작업 스케줄러에서 작업을 직접 편집하여 작업 빈도를 변경할 수 있습니다.

WhatIf

옵션

WhatIf 스위치는 명령이 개체에 대해 수행하게 되는 작업을 시뮬레이트하도록 지시합니다. WhatIf 스위치를 사용하면 사용자는 변경 사항을 적용하지 않고도 어떠한 사항이 변경되는지 확인할 수 있습니다. WhatIf 스위치에는 값을 지정할 필요가 없습니다.

Confirm

옵션

Confirm 스위치는 명령이 처리를 일시 중지하도록 하고 처리를 계속하기 전에 명령이 어떤 작업을 수행하는지 사용자가 확인하도록 합니다. Confirm 스위치에는 값을 지정할 필요가 없습니다.

Verbose

옵션

Verbose 매개 변수는 스크립트에 자세한 정보 로깅을 수행하도록 지정하여 스크립트의 작업에 대한 추가 정보가 로그 파일에 기록되도록 합니다.

Debug

옵션

Debug 매개 변수는 디버깅 모드에서 실행하도록 스크립트에 지정합니다. 이 매개 변수는 스크립트의 실패 이유를 확인하는 데 사용되어야 합니다.

예 1

이 예에서는 이 스크립트를 사용하여 최초 설치 시 모든 클라이언트 액세스 서버에 대한 자격 증명을 포리스트에 넣습니다.

.\RollAlternateserviceAccountPassword.ps1 -ToEntireForest -GenerateNewPasswordFor "Contoso\ComputerAccount$" -Verbose

예 2

이 예에서는 사용자 계정 ASA 자격 증명에 대한 새 암호를 생성하고 이름이 *mailbox*와 일치하는 클라이언트 액세스 서버 배열의 모든 구성원에게 이 암호를 배포합니다.

.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers *mailbox* -GenerateNewPasswordFor "Contoso\UserAccount" -Verbose

예 3

이 예에서는 “Exchange-RollAsa”라는 한 달에 한 번 수행되는 자동 암호 롤링 예약 작업을 예약합니다. 이 예에서는 전체 포리스트의 모든 클라이언트 액세스 서버에 대한 ASA 자격 증명을 스크립트로 생성되는 새 암호로 업데이트합니다. 예약된 작업은 만들어지지만, 스크립트는 실행되지 않습니다. 예약된 작업이 실행될 때 스크립트는 무인 모드에서 실행됩니다.

.\RollAlternateServiceAccountPassword.ps1 -CreateScheduledTask "Exchange-RollAsa" -ToEntireForest -GenerateNewPasswordFor 'contoso\computerAccount$'

예 4

이 예에서는 CAS01이라는 이름의 클라이언트 액세스 서버 배열의 모든 클라이언트 액세스 서버에 대해 ASA 자격 증명을 업데이트합니다. Contoso 도메인에 있는 Active Directory 컴퓨터 계정 ServiceAc1에서 자격 증명을 가져옵니다.

.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers "CAS01" -GenerateNewPasswordFor "CONTOSO\ServiceAc1$" 

예 5

이 예에서는 스크립트를 사용하여 새 컴퓨터 또는 서버 배열의 크기를 늘리거나 유지 관리 후 배열 구성원을 다시 도입하고 있기 때문에 복구된 컴퓨터에 ASA를 배포할 수 있는 방법을 보여줍니다.

클라이언트 액세스 서버에서 트래픽을 수신하려면 ASA 자격 증명을 업데이트해야 합니다. 올바르게 구성되어 있는 임의의 클라이언트 액세스 서버에서 공유 ASA 자격 증명을 복사합니다. 예를 들어 현재 서버 A에 작동 중인 ASA 자격 증명이 있으며 서버 B를 배열에 막 추가한 경우, 스크립트를 사용하여 (암호를 포함한) 자격 증명을 서버 A에서 서버 B로 복사할 수 있습니다. 이는 암호가 마지막으로 롤링되었을 때 서버 B가 다운되었거나 아직 배열의 구성원이 아닌 경우에 유용합니다.

.\RollAlternateServiceAccountPassword.ps1 -CopyFrom ServerA -ToSpecificServers ServerB -Verbose

 © 2010 Microsoft Corporation. 모든 권리 보유.