Exchange 일정 업데이트 도구를 사용 하 여 일광 절약 시간을 처리 하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 941018 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

소개

일광 절약 시간제는 시스템 시계를 설정할 수 있도록 미리 일출과 일몰 이후 시간에는 발생 합니다. 자세한 일광 절약 됩니다. 저녁에 있습니다. 많은 국가 일광 절약 시간제를 준수합니다. 대부분의 이러한 국가 자체 규칙 및 규정의 경우 일광 절약 시간 시작 및 종료 합니다.

일광 절약 시간제 (DST)의 날짜를 변경할 수 있습니다. 1 년에서 1 년. Microsoft Outlook 사용자가 Outlook을 업데이트 해야 DST 규칙 변경 될 때마다 일정입니다. 날짜 사이의 이전 DST 규칙 및 현재 DST 규칙 이라고 합니다로이 문서에 나와 있는 "확대 시행된 되는 DST 기간입니다."

이 작업에 설명 하면 확장 중에 발생 하는 일정 항목 outlook에서 주소를 사용할 수 있습니다. DST 기간입니다. 설명 하기 위해 수행 해야 하는 작업 Microsoft Exchange Server 따라 저장 된 일정 항목을 업데이트 새 DST 규칙입니다. 이 문서에 제시 된를 해결 하는 것은 Microsoft Exchange 일정 업데이트 도구 ("Exchange 도구").

에 대 한 일광 절약 시간제 변경 내용을 준비 하는 방법에 대 한 자세한 정보 2007 수동으로 영향을 받는 모든 Microsoft 제품에 대해 다음을 방문 하십시오 Microsoft 웹 사이트:
http://support.microsoft.com/gp/cp_dst
2011에 러시아 정부 일광 절약 시간제 (DST)을 취소 하는 법을 채택 했습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://support.microsoft.com/gp/cp_dst#tab0
러시아어에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://support.microsoft.com/gp/cp_dst/ru#tab0

추가 정보

Exchange 도구 정보

모든 이전 Microsoft Windows 용 DST 업데이트를 설치한 후 DST 변경 기간 동안 발생 하는 약속 제대로 되지 것입니다. 발생 하는 한 시간 후로 표시 합니다. 두 되풀이 마찬가지입니다 및 단일 인스턴스 약속 수입니다. 따라서 이러한 약속을 업데이트 해야 합니다, Outlook Web access Microsoft Office Outlook에서 올바르게 표시 됩니다, 응용 프로그램에는 공동 작업 데이터 개체를 기반으로 하 고 (CDO) 있습니다.

Outlook 표준 시간대 데이터 업데이트 라는 하는 도구를 제공 합니다. Microsoft Office Outlook ("Outlook 도구")를 위한 도구입니다. 사용자가이 도구를 사용합니다. 자신의 일정을 업데이트할 수 있습니다.

표준 시간대 데이터 업데이트에 대 한 자세한 내용은 도구에서 Microsoft 문서를 보려면 다음 문서 번호를 클릭 합니다. 기술 자료:
931667Microsoft Office Outlook 대 한 표준 시간대 데이터 업데이트 도구를 사용 하 여 2007 년 일광 절약 시간제 변경 사항을 처리 하는 방법
Exchange 일정 업데이트 도구 ("Exchange 도구")를 사용 하면 배포 관리자가 직면 하는 어려움을 피할 수 있습니다. Outlook 도구를 광범위 하 게 모든 사용자와 각 사용자가 실행 되도록 하는 Outlook 도구를 정확 하 게.

Exchange 도구에 대 한 상위 수준의

Exchange 도구 두 가지 별도 실행 파일로 구성 되어 있습니다. 이러한 파일은 다음 표에 나와 있습니다.
표 축소표 확대
파일 이름설명
Msextmz.exe 표준 시간대가 실행 파일을 추출합니다. Exchange Server 실행 하는 서버에서 사서함 정보. 이 실행 파일 또한 지정한 목록의 사서함 일정을 업데이트 사용자가 있습니다.
Msextmzcfg.exe 이 실행 파일은 대부분의에 관련 된 단계를 수행 하는 구성 도구 Exchange Server 서버를 업데이트 합니다.

Exchange 도구의 새 버전에 대 한

고객 의견에 따라, Exchange 도구의 새 버전이입니다. 2007 년 8 월 13 일에 발표 합니다. 이 문서는 새 버전의 의미는 Exchange 도구입니다. 이전 버전의 Exchange 도구를 실행 하는 경우 제거한 다음 새 버전을 설치 합니다.

새로운 버전의 Exchange 도구는 다음과 같은 개선 사항이 포함 되어 있습니다.
  • 표준 시간대 추출 및 일정 업데이트 프로세스 fourfold sped.
  • 사용자 인터페이스 구성 도구에 대 한 더 많은입니다. 효율적 이며 직관적인 합니다.
  • 회의실 및 리소스를 업데이트 하는 기능 사서함 구성 도구를 지금 구성 합니다.
  • 이제 사용자 사서함을 업데이트 하는 기능에 내장 되는 구성 도구입니다.
  • 문제 해결 문서를 지금 포함 되어 있는 Exchange 도구와 구성 도구에 통합 합니다.
  • 표준 시간대 추출 알고리즘 및 오류 처리 향상 된 기능입니다.
  • 로깅 프로세스를 보다 알기 쉽게입니다.

Exchange 도구를 실행 하는 위험

Exchange 도구를 실행할 때 위험에 단일 인스턴스 약속이 잘못 업데이트 될 수 있습니다. 예를 들어, 후 운영 체제에서 생성 된 단일 인스턴스 약속 월 업데이트 업데이트할 수 없습니다 올바르게.

이러한 위험을 줄이기 위해 중 하나를 사용합니다 다음 방법:
  • 업데이트할 시간 간격 줄이기 클라이언트 컴퓨터 시간과 사서함 일정을 업데이트 하는 것입니다.
  • 오랫동안 컴퓨터는 조직에서 업데이트 된 경우 전 사용 하는 만 되풀이 모임을 업데이트합니다 설정에서고급 설정.

    일반적으로 사용자가 만들지 않습니다. 단일 인스턴스 약속 수 개월 전입니다. 따라서 경우 DST 몇 개월 전에, 대부분의 단일 인스턴스 모임 업데이트 설치 그가 확대 시행된 되는 DST 기간에 있는 새를 사용 하 여 작성 됩니다. DST 전환 규칙입니다. 이러한 회의 업데이트할 수 없습니다.
  • 정확히 알고 있는 경우 날짜는 경우 모든 클라이언트 컴퓨터 된 업데이트를 사용 하 여 운영 체제 패치 날짜 설정에서고급 설정. 날짜를 지정 하지 않으면 단일 인스턴스 해당 날짜 이후에 만든 약속이 Exchange에서 업데이트 되지 않는다 도구입니다.
참고 클라이언트에서 Outlook 도구나 Exchange 도구를 실행 하는 경우 하 고 사서함에 대해이 도구를 실행 하면 Windows Vista를 실행 하는 컴퓨터 홈 표준 시간대 뉴질랜드 표준시 있는 경우 도구를 실행 한 2008 년 1 월 1 일 이후에 두 번째 시간입니다. "정상에 대 한 자세한 내용은 참조 하십시오. 섹션 "문제"입니다.

사서함 업데이트 옵션

다음 표에서 업데이트 하는 데 사용할 수 있는 다섯 가지 옵션 DST 2007 표준 시간대 규칙을 사용 하도록 사용자 사서함을 선택 합니다.
표 축소표 확대
옵션전문가단점
각 사용자에 게 Outlook 도구를 배포 하 고 지시 사용자가 자신의 사서함을 업데이트할 수 있습니다. 이 옵션의 위험을 피할 수 있는 Exchange 도구를 실행 하는 함께 연결 됩니다. 어려운 것 모든 사용자에 게 Outlook 도구를을 적시에 정확 하 게 실행 하도록 방식입니다.

Outlook을 설치 하지 않은 사용자 수 없는 실행 하는 Outlook 도구입니다.

추가 교육이 수 확인 해야 사용자의 혼동을 줄일 수 있습니다.
영향을 받는 모든 사용자와 서버에 대해 Exchange 도구를 실행 합니다. 사용자에 대 한 간편 하 고 효율적이이 옵션을 제공 합니다. 로 Exchange 도구의 실행과 관련 된 위험이 "Exchange 도구를 실행 하는 중 위험" 섹션에서 설명 합니다.
되풀이 약속만 업데이트 하려면 Exchange 도구를 실행 합니다. 사용자를 사용 하 여 자신의 사서함에서 단일 인스턴스 약속을 업데이트할 수 있습니다. Outlook 도구입니다. 단일 인스턴스 약속의 위험이 더 적습니다. 제대로 업데이트 되 고. Outlook 도구 실행의 단점입니다. Exchange 도구를 실행 하는 단점을 결합 합니다.
Exchange 도구 아니고 Outlook 도구를 실행 합니다. 사용자 입력 요청 일정을 검토 하 고 필요에 따라 약속 늦거나 빠르게 합니다. 이 옵션은 Exchange 도구의 실행과 관련 된 위험을 피할 수 있습니다. 모든 사용자가 영향을 받는 모든 약속 늦거나 빠르게 하지 않으면 일부 일정 항목이 한 시간 해제 시행된 되는 DST 기간 동안 됩니다.

해야 합니다. 사용자의 혼동을 줄이기 위해 추가 교육이 확인 하십시오.
각 사용자에 게 Outlook 도구를 배포 하 고 지시 사용자가 자신의 사서함을 업데이트할 수 있습니다. 그런 다음 표준 시간대 추출 모드를 사용 하 여 사용자가 Outlook 도구를 실행 중인지 여부를 확인 하려면 Exchange 도구입니다.

사용자가 Outlook 도구를 실행 하지 않는 경우 관리자가 수 있습니다. Exchange 도구를 실행 합니다.
이 옵션 사용자의 위험을 감소 하지 적시에 도구를 실행 관련 된 위험을 피할 수 있습니다. Exchange 도구를 실행 하는 사용 합니다. 사용자가 있는 경우이 옵션이 없습니다 2007 Microsoft Office Outlook를 실행 합니다.

Exchange 도구를 설치 하는 방법

Exchange 일정 업데이트 도구를 다운로드에 사용할 수 있는 자동 압축 풀림 실행 파일 (Msextmz.exe) 양식입니다. 이 도구를 사용할 수 있습니다. Microsoft 다운로드 센터에서 다운로드:

그림 축소그림 확대
다운로드
다운로드 Exchange 일정 업데이트 도구 패키지 지금 다운로드 하십시오.

가상 컴퓨터를 위해 작성 되었습니다. 설치 하 고 Exchange 도구를 사용 합니다. Microsoft 가상 컴퓨터를 기반으로 Windows Server 2003, Outlook 2007, Microsoft Office Excel 2007 및 Microsoft Office Word 2007입니다. 두 Microsoft Virtual PC 2004에서 가상 컴퓨터를 작동 및 microsoft Virtual Server 2005 R2.

자세한 내용은 Exchange 일정 업데이트 도구에 대 한 가상 컴퓨터를 클릭 하 여 Microsoft 기술 자료의 다음 문서를 참조 번호:
933185가상 컴퓨터 Exchange 조직에서 일광 절약 시간제 2007 일정 업데이트를 배포 하는 데 사용할 수 있습니다.
Microsoft 기술 지원 서비스를 다운로드 하는 방법에 대 한 자세한 내용은 파일을 Microsoft 문서를 보려면 다음 문서 번호를 클릭 합니다. 기술 자료:
119591 온라인 서비스 로부터 Microsoft 지원 파일을 구하는 방법
Microsoft는이 파일을 스캔. Microsoft는 가장 많이 사용 한 날짜에 사용할 수 있었던 최신 바이러스 검색 소프트웨어는 파일 게시 되었습니다. 하지 못하도록 보안이 강화 된 서버에 파일 저장 해당 파일을 무단으로 변경할입니다.

Exchange 도구에서 지 원하는 언어

Exchange 도구는 영어로 사용할 수 있습니다. 이 도구를 실행 합니다. 만 영어 (미국) 컴퓨터.

Exchange 도구와 호환 되는 버전 Exchange Server

Exchange 도구는 다음 버전에서 사서함을 업데이트할 수 있습니다. Exchange Server입니다.
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server Enterprise Edition
  • Microsoft Exchange 2000 Server 표준 버전

Exchange 도구에서 지 원하는 운영 체제

Exchange 도구는 다음의 32 비트 버전에서 실행 됩니다. 운영 체제:
  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Windows Vista

Exchange 도구를 실행 하기 전에 수행할 작업

업데이트를 설치 합니다.

Exchange 도구를 실행 하기 전에 해당 클라이언트가 있는지 확인 하 고 서버 컴퓨터가 올바르게 업데이트 됩니다. 이렇게 하려면 Windows DST 업데이트 설치 클라이언트와 서버입니다. 자세한 내용은 자세한 내용은 문서를 보려면 다음 문서 번호를 클릭에 Microsoft 기술 자료:
942763Microsoft Windows 운영 체제용 2007 년 12 월 누적 표준 시간대 업데이트

Microsoft Exchange Server 실행 하는 경우 2003 서비스 팩 2 (SP2)를 설치한 다음 업데이트 중 하나 또는 모두로 조직에 적합 합니다.
  • 911829 업데이트
  • 924334 업데이트
이러한 업데이트에 대 한 자세한 내용은 다음 문서 번호를 클릭 합니다. Microsoft 기술 자료의 다음 문서를:
911829모든 편집 작업을 수행 하려고 하거나 사용할 수 있도록 Outlook Web Access에서 작성 프레임을 클릭 해야 때 오류 메시지가 나타날
924334 메시지 작성 양식의 Exchange Server 2003에서 Internet Explorer 7.0과 S/MIME 제어는 Outlook Web Access 클라이언트를 설치한 후 응답 하지 않는다
사용자는 예루살렘에 중앙 인 경우 브라질 또는 E. 남아프리카 미국 표준 시간대를 참조 하십시오 설명서에는 다음 Microsoft 기술 자료 문서:

943390 다시 Outlook 표준 시간대 데이터 업데이트 도구를 사용 하 여 특정 표준 시간대에서 일광 절약 시간제 변경 사항을 조정 하는 경우 일부 Outlook 일정 항목 정확 하 게 지정 하지는

시스템 요구 사항 확인

Exchange 도구는 컴퓨터에만 실행 해야 해당 다음과 같은 조건이 적용 됩니다.
  • Microsoft Office Outlook 2003 서비스 팩은 컴퓨터에 있습니다 2 (SP2) 또는 Microsoft Office Outlook 2007 설치 합니다.
  • 컴퓨터에 Outlook 표준 시간대 데이터 도구가 있습니다. 설치 합니다.
  • Microsoft입니다.NET Framework 버전 2.0 설치를 클라이언트 컴퓨터입니다.
실행 중인 컴퓨터에서 Exchange 도구를 실행할 수 없습니다. Exchange Server 또는 Exchange 시스템 관리 도구입니다. 설치 하려고 하는 경우 Exchange Server 또는 Exchange를 실행 하는 컴퓨터에서 Exchange 도구 시스템 관리 도구는 다음과 같은 오류 메시지가 나타납니다.
Microsoft Exchange 일정 업데이트 도구를 설치할 수 없습니다. Microsoft Exchange입니다.

사용 권한 및 기타 사용자 요구 사항 확인

다음 조건이 충족 되는지 확인 하십시오.
  • 각 Exchange 정보 저장소 사용 권한을 관리 합니다. 서버의 메시지 데이터베이스 (MDB) 업데이트 됩니다.
  • 사람 이름으로 보내기 권한은 모든 사서함에 대 한 업데이트 합니다.
  • 모든 사서함에 대해 전체 사서함 액세스 권한이 있습니다 업데이트 합니다.
  • 컴퓨터에 로컬 관리자 권한이 부여 되지 Exchange 도구 실행 되 고 있습니다.

"사서함 사용 권한 부여" 스크립트에 대 한

GrantMailboxPermission.vbs 샘플 스크립트를 사용 하 여 권한을 부여 하려면 도메인 사용자가 전체 사서함 액세스 및 다른 사람으로 보내기 권한을 모두 사서함입니다.

이 스크립트는 Exchange Server만 실행할 수 있습니다. Exchange 2000 Server 또는 Exchange를 실행 하는 컴퓨터의 관리자 서버 2003입니다. Exchange를 실행 하는 컴퓨터에서이 스크립트를 실행할 수 없습니다. Server 2007입니다. 그러나 Exchange 관리 셸을 사용 하 여 권한을 부여 하려면는 필요한 사용 권한입니다.

.Vbs 스크립트의 코드에 제공 되는 "참조" 절을. 다음 표에서이 두 가지 모드 스크립트를 실행 합니다.
표 축소표 확대
모드명령설명
추가 CScript GrantMailboxPermission.vbs ?add Domain_Name \ User_Name File_Name 이 명령은 허가 Domain_Name \ User_Name 사용자가 전체 사서함 액세스 한 입에 나열 된 사용자 사서함에 대 한 사용 권한 전송 파일입니다.

입력된 파일은 레거시 포함 된 텍스트 파일 이어야 합니다. 사용자 사서함의 도메인 이름입니다. 이러한 이름은 캐리지 구분 해야 리턴 + 줄 바꿈 (CRLF)

스크립트를 생성 하는 GrantMailboxPermission.log 파일입니다. 이 파일 레코드 사서함입니다 있는 처리 되었습니다. 로그 파일의 첫 번째 줄에 Domain_Name \ User_Name 사용자에 게 부여 됩니다 액세스 권한입니다. 이 파일을 삭제 하지 마십시오. 이 파일은 제거 모드에서 사용 됩니다.

"명시적"액세스를 거부 하는 경우 스크립트는 사용자에 게 할당 된 "GrantMailboxPermission.err." 라는 파일에 정보를 기록 는 스크립트 권한을 부여 하지 못하거나 사용 권한을 변경 합니다.

사용자가 포함 된 경우 지정 된 보안 그룹을 "액세스 스크립트 허용 거부" 전체 사서함 액세스 및 다른 사람으로 보내기 권한입니다. 그러나 사용자가 되지 것입니다. 사서함에 로그온. 모든 오류 로그 GrantMailboxPermission.err 파일입니다.
제거 CScript GrantMailboxPermission.vbs ?remove이 명령은 전체 사서함 액세스 및 다른 사람으로 보내기 제거 Grantmailboxpermission.log에 나열 된 사서함에 대 한 사용 권한 파일을 Domain_Name \ User_Name 사용자입니다. 는 Domain_Name \ User_Name 사용자가 지정 되어 있는 GrantMailboxPermission.log 파일입니다.
슬라이드 노트
  • 실행 되는 컴퓨터에서이 스크립트를 실행 하는 경우 Exchange Server 스크립트 반환 기간 문자 (.) 때 스크립트 사용자가 성공적으로 처리 합니다. 느낌표는 스크립트를 반환합니다. 문자 (!) 하는 경우 스크립트는 사용자가 성공적으로 처리 하지 않습니다.
  • 표준 시간대 추출 모드의 출력 파일 수 수 없습니다. 이 스크립트에 대 한 입력 파일로 사용 합니다. 입력된 파일을 만들려면 스크립트, 표준 시간대 추출 모드로 출력 파일에 내용을 붙여 넣습니다. 메모장에서 내용을 새 문서로 저장 한 다음 새 문서를 사용 하 여 입력된 파일입니다.

Exchange 도구를 사용 하는 방법

Exchange 도구를 사용 하는 Exchange 일정 업데이트를 시작 합니다. 구성 도구 (Msextmzcfg.exe)입니다. 이 프로그램은 전체적으로 도와줍니다. 일정을 업데이트 하는 프로세스입니다.

표준 시간대 추출 프로세스를 실행 합니다.

사서함 일정을 업데이트 하려면 표준 시간대를 확인 해야 달력입니다. 표준 시간대 추출 과정이 속성을 검사 하 여 해당 표준 시간대를 확인 하려면 사서함 일정의 약속입니다. 실행 하는 시간대 추출 프로세스의 시간을, 다음이 단계를 수행 하십시오.
  1. 시작 페이지를 클릭 합니다. 다음.

    참고 시작 페이지 구성 도구에 설명 하 고 이 도구를 실행 하는 데 필요한 사용 권한에 대해 설명 합니다. 페이지도 이 문서에 대 한 링크를 제공합니다.
  2. 구성 도구에 대 한 설정을 지정 합니다. 우리 적어도 200mb (메가바이트)의 디스크 공간을 할당 하는 것이 좋습니다. 로깅입니다.

    클릭 하 여 기본 설정을 변경 해야 할 경우고급 설정. 고급에 대 한 자세한 내용은 설정,이 절차 다음에 나오는 표를 참조 하십시오.
  3. 로컬 Active Directory에서 Exchange 서버를 선택 합니다. 업데이트 하려는 디렉터리 서비스 포리스트. 다음을 클릭합니다다음 표준 시간대 추출 프로세스를 시작.

    참고 표준 시간대 추출 이미 수행한 경우 건너뛸 수 있습니다. 이 단계를 클릭 하 여 건너뛰기.

    표시 상태 표시줄, 출력 로그 및 표준 시간대의 실시간 표시 링크 추출 프로세스가 표시 됩니다. 다음 표준 시간대 추출 과정이입니다. 완료를 클릭 다음.

    오류가 발생 한 경우에 트러블 슈팅 문서에 대 한 링크가 표시 됩니다.
  4. 구성의 사서함이 있는 시간이 없습니다 영역 페이지를 클릭 하 고 다음 일정 검색 항목입니다.

    참고 사용자에 게 사서함 수준 속성이 설정 되지 않은 도구를 발견 한 경우 해당 표준 시간대는, 실제 모임과 약속의 도구 검색 내부는 캘린더 시간대를 확인 합니다. 번호를 지정할 수 있습니다. 일정 항목 검색할 구성 도구를 사용할. 는 큰 수 더 검색이 걸립니다 지정 항목입니다.
  5. 알 수 없는 표준 시간대 표시를 확인 합니다. 이름 페이지에서 도구 도구 작업을 수행 하는 표준 시간대 매핑 하 라는 메시지가 나타납니다. 알려진된 운영 체제 표준 시간대를 인식 하지. 이렇게 되 면을 클릭 합니다.다음
  6. 다중 사용자 구성 도구를 발견 한 경우 하나를 지정 하 여 수동으로 충돌을 해결 하려면 영역을 묻는 시간 사용자의 일정을 업데이트 하는 데 사용할 표준 시간대입니다. 이렇게 되 면을 클릭 합니다.다음.
  7. 사서함 Dns를 확인할 수 없는 시간을 절약 합니다. 영역 페이지를 계속 나머지 사용자 시간대가 정보 또는 충돌 하는 표준 시간대 정보는 여전히에 기록 별도 로그 파일입니다. 클릭 다음.
표준 시간대 추출 과정이 완료 됩니다. 목록 사용자 및 추출 된 표준 시간대의 출력 파일 (Output.txt)에 있습니다 설치 디렉터리입니다.

고급 설정

고급 설정은 다음 표에 설명 되어 있는 이전 절차의 2 단계에서 구성할 수 있습니다.
표 축소표 확대
설정기능시나리오고려 사항적용 가능성
되풀이 모임 전용 업데이트이 DST가 영향을 받는 설정이 업데이트 유일한 되풀이 모임을 변경 합니다. 연장된 된 DST 기간에 있는 단일 인스턴스 약속 수 없습니다. 여부는 업데이트 해야에 관계 없이 업데이트 합니다.하는 경우 컴퓨터에서 조직의 오래 전 업데이트 된,이 설정을 사용 합니다.

일반적으로 사용자가 단일 인스턴스 약속 만들지 않습니다 여러 개월 전입니다. 따라서 월 DST 업데이트를 설치 하는 경우 이전에 DST 연장된에 속하는 단일 인스턴스 모임 대부분 기간 새 DST 전환 규칙을 사용 하 여 만들어집니다. 이러한 모임을 업데이트할 필요가 없습니다.
사용자는 단일 인스턴스를 만든 경우 이 설정 된 경우 많은 개월 전에 모임이 모임 업데이트 되지 않습니다. 다음 중 하나를 지정 합니다.이 설정은 모든 회의에 모든 사서함에 적용 됩니다. 룸 및 모든 사용자 일정에 있습니다.
운영 체제 패치 설치 날짜이 설정은 해당 단일 인스턴스에 지정 약속 만들어진 또는 지정한 날짜 이후에 업데이트 되지 않습니다. 업데이트 합니다.때 모든 클라이언트 컴퓨터가 된 정확한 날짜를 알고 있는 경우 업데이트를이 설정을 사용 합니다.

이 회의 수행 업데이트를 설치한 후에 만들어진 업데이트 되지 않습니다. 이러한 회의 속합니다 새 표준 시간대 규칙입니다.
이 설정은 경우에만 적용 되는 클라이언트 컴퓨터가 모두 24 시간 미만의 내 고 있을 때 업데이트 된 높은 침투 업데이트 합니다. (높은 침투 되 면 비율 업데이트 된 컴퓨터는 조직에서의 높은에서입니다. 90% 범위입니다.)

또한 관리자만 지정할 수 있습니다. 날짜를 업데이트 합니다. 해당 표준 시간대에서 만든 모임 특정 업데이트 하 고 특정 한 영역을 업데이트 해야 하는 시간을 설정 합니다.

그러므로 회의실에 대 한 회의 업데이트 됩니다. 룸에는 특정 표준 시간대입니다.

그러므로 사용자에 대 한 사서함 수 면을 SuppressExchange 설정 또는 SuppressAll 설정을 지정 하지 않으면 사용자가 사서함에만 해당 영역이 업데이트 되는 특정 시간에 속하십시오.
이 설정에 적용 됩니다. 모든 사서함, 모든 회의실을 하 고 모든 사용자 일정입니다.
SuppressExchange 하 고 MaxDepth이러한 설정은 모든 약속에 발생 한 영향을 받는 사용자의 일정에 관계 없이 업데이트 해야 DST 변경 사용자가 이러한 일정 항목 이끌이가 여부.

경우는 사용자가 이끌이가 일정 항목, 업데이트가 참석자에 게 전송 되지 않는 사용자 Exchange 사서함 있습니다. Exchange 권한이 없는 참석자에 게 업데이트가 전송 됩니다. 사서함입니다.

MaxDepth 설정 지정 어떤 참석자가 결정 하도록 수행의 메일 그룹 확장 Exchange 사서함 및 참석자는 없습니다 있습니다.
이 설정을 사용 하는 경우 이끌이에 대 한 모임 업데이트를 받으려면 Exchange 사용자가 원하지 않는 연장된 된 DST 기간에 영향을 받지 회의입니다.

SuppressExchange 설정한 것 보다는 SuppressAll 설정 하는 조직에서 Exchange가 아닌 경우 서버 일정 시스템 및 모임 참석자를 포함 하도록 예약 된 경우는 조직 외부에 있습니다.
모임 업데이트가 전송 됩니다 제외 비 Exchange 사용자에 게 있습니다. 따라서 확인 있는지 확인은 같은 모임에 복사 업데이트 된 조직의 모든 사서함에 대 한 모든 가능한 참석자 해야 업데이트 합니다.

이 조건은 수가 상당히 늘어날 수 있습니다. 업데이트 해야 하는 사서함을 선택 합니다. 따라서 처리 시간이 될 수 있습니다. 증가 합니다.

많은 중첩 된 메일 그룹이 참석자를 때는 목록에서 비용이 많이 드는 프로세스 및 모임 참석자를 확인할 것 해당 참석자가 Exchange 사서함을 해야 하는지 여부를 확인 합니다. 이 옵션을 지정 하는 경우 설정 하 고 높은 값을 설정에서 MaxDepth 매개 변수를 도메인에 상당한 로드를 놓지 컨트롤러입니다.
이 설정은 사용자 사서함에만 적용 됩니다.
SuppressAll이 설정은 모든 발생 DST가 영향을 받는 사용자의 일정에 약속으로 변경 사용자가 이끌이가 해당 일정의 여부에 관계 없이 업데이트 항목입니다.

사용자가 이끌이가 일정 항목의 경우 업데이트 된 참석자에 게 보내는 없습니다.
참석자에 게 하지 않을 경우이 설정을 사용 합니다. 영향을 받는 모임의 이끌이에서 모임 업데이트를 받지는 연장된 된 DST 기간입니다.모임 업데이트가 전송 됩니다. 따라서 확인 하기 물론 모든 가능한 참석자에 대 한 같은 모임 복사본 업데이트 조직의 모든 사서함을 업데이트 해야 합니다.

이 상태가 될 수 있습니다. 업데이트 해야 하는 사서함 수가 크게 증가 합니다. 따라서 처리 시간이 증가할 수 있습니다.

참석자를 하지 않습니다 Exchange 사서함 작업을 업데이트를 수신 했습니다. 자신의 약속을 수 있습니다. 업데이트를 실행 하는 전자 메일 시스템에 따라 따라 관리자가 수행 하는 작업
이 설정에만 적용 됩니다. 사용자 사서함을 사용 합니다.

회의실 및 리소스 사서함을 업데이트 합니다.

회의실 및 리소스 사서함을 피하려면 업데이트 해야 예약 충돌 합니다. 이렇게 하려면 다음과이 같이 하십시오.
  1. 회의실 및 리소스를 지정 합니다. 달력 페이지에서 입력 하거나 회의실의 별칭 목록을 붙여 넣습니다. 조직입니다. 클릭 해결 별칭의 유효성을 검사 하려면 다음을 클릭 하 고 다음.
  2. 리소스에 대 한 표준 시간대를 확인 하 고 회의 방 일정 페이지를 수동으로 프롬프트가 회의실이 없는 경우 회의실에 대 한 표준 시간대를 지정 합니다. 표준 시간대가 있습니다. 이 작업을 수행 하 고을 클릭합니다 다음.
  3. 라는 알림 페이지가 표시 되는 도구 에 대 한 일정을 업데이트할 수 있습니다. 클릭 다음.
  4. 상태 표시줄에 링크를 출력 로그를 표시 하는 이 도구의 출력 실시간 표시에 표시 됩니다. 클릭다음.

    오류가 발생 하는 경우에 대 한 링크가 있는 문제 해결 문서는이 페이지 맨 아래에 표시 됩니다.

사용자 사서함 달력 업데이트

이렇게 하려면 다음과이 같이 하십시오.
  1. 사용자 사서함 업데이트 설정 달력 페이지에서 업데이트에 대 한 설정을 구성 합니다.

    If 지정 하지는 SuppressExchange 또는SuppressAll 고급 설정 된 표준 시간대를 선택 합니다. DST에 의해 영향을 합니다. 그렇지 않으면, 모든 표준 시간대를 선택 합니다.

    클릭다음.
  2. 라는 알림 페이지가 표시 되는 도구 에 대 한 일정을 업데이트할 수 있습니다. 클릭 다음.
  3. 상태 표시줄에 링크를 출력 로그를 표시 하는 이 도구의 출력 실시간 표시에 표시 됩니다. 업데이트 후 완료를 클릭 다음.

    오류가 발생 하는 경우는 문제 해결 문서 링크를이 아래에 표시 됩니다. 페이지입니다.
  4. 클릭 마침.

Exchange 도구 로그 파일 및 하위 디렉터리

로그 파일

Exchange 도구는 다음 로그 파일에 작성을 설치 디렉터리:
  • Output.txt

    이 파일은 모든 사용자 사서함을 포함 하 해당 표준 시간대 정보와 함께 추출 되었습니다.
  • TimeZoneExtraction.log

    이 로그 표준 시간대의 결합 된 출력을 포함 되어 있습니다. 모든 서버에 대해 압축 풀기 과정입니다.
  • ResourceUpdate.log

    이 로그 출력을 업데이트 프로세스에 대 한 포함 되어 있습니다. 회의실 및 리소스 사서함에 대 한.
  • UserUpdate.log

    이 로그는 사용자의 결합 된 출력에 포함 된 모든 서버에 대 한 사서함 업데이트 프로세스입니다.
  • CalendarScan.log

    달력의 출력을 결합된이 로그를 포함합니다. 모든 서버에 대해 프로세스를 검색 합니다.
  • ConflictUsers.txt

    이 로그 충돌 하는 사용자의 목록이 표시 표준 시간대입니다. 예를 들어,는 사용자의 사서함 등록 정보를 나타내는 들 여러 표준 시간대에 속해야 합니다.
  • NonExistent.txt

    이 로그 표준 시간대에 있는 사용자의 목록이 정보입니다.

하위 디렉터리

Exchange 도구는 다음 하위 디렉터리에 만듭니다 있는 설치 디렉터리:
  • 리소스

    이 업데이트 프로세스에 대 한 작업 하위 디렉터리입니다. 회의실 및 리소스 사서함입니다. 이 디렉터리 다음과 같은 파일이 들어 있습니다.
    • Msextmz.log

      이 출력 파일에 대해 Exchange 도구를 프로세스를 업데이트 합니다.
    • Errors.txt

      이 파일은 사서함 목록이 표시 됩니다.
    • Processed.txt

      이 파일에 있던 사서함 목록을 포함 되어 있습니다. 성공적으로 업데이트 되었습니다.
    참고 이러한 파일 작업의 모든 하위 디렉터리를 포함합니다.

    는 리소스 하위를 다음 하위 디렉터리를 포함 되어 있습니다.
    • 로그 파일

      이 하위 각 사서함에 대 한 업데이트 로그가 들어 있습니다. 성공적으로 업데이트 되었습니다. 각 업데이트 로그 목록이 있어야 합니다. 업데이트 된 모임입니다.
  • Server_Name

    각 서버에 대해 하나의 하위 디렉터리는 에 표준 시간대 추출 과정이 또는 일정 업데이트 수행 되었습니다. 이러한 하위 다음 하위 디렉터리가 들어 있습니다.
    • CalendarScan

      이 일정 스캔에 대 한 작업 하위 디렉터리입니다. 프로세스입니다.
    • 추출

      이 표준 시간대에 대 한 작업 하위 디렉터리입니다. 압축 풀기 과정입니다.
    • 업데이트

      이 사용자의 사서함에 대 한 작업 하위 디렉터리입니다. 프로세스를 업데이트 합니다. 다음 하위 디렉터리를 포함 합니다.
      • 로그 파일

        이 하위 각 사서함에 대 한 업데이트 로그가 들어 있습니다. 성공적으로 업데이트 되었습니다. 각 업데이트 로그 목록이 있어야 합니다. 업데이트 된 모임입니다.

Exchange 도구를 실행 한 후 수행할 작업

모든 Exchange에 대해 Exchange 도구를 실행 한 후 서버에서 사용자의 환경에 적절 한 Exchange Server DST 업데이트를 적용 합니다. 다음은 Exchange Server 버전 및 서비스에서 구성 팩 수준입니다. Exchange Server 버전에 대 한 업데이트 설치 순서입니다.

Exchange Server 2007
940006 업데이트 롤업 4 Exchange Server 2007에 대 한 설명
Exchange Server 2007 용 업데이트 롤업 4에 포함 다음 DST 수정 프로그램:
  • 937656 뉴질랜드의 2007 년 일광 절약 시간제 (DST)를 시작한 후 Exchange 2007 Outlook Web Access에 문제가
  • 932561 서 부 오스트레일리아 표준 시간대에 한 조직의 경우 Exchange 조직에서 다른 Exchange 2007을 사용 하 여 전송 되는 약속 한 시간씩 올바르지 않을 수 있다
2003 SP2 Exchange Server
926666 Exchange 2003 서비스 팩 2의 2007 년에서 일광 절약 시간제 변경 사항에 대 한 업데이트
931915 Exchange Server 2003 서비스 팩 2의 뉴펀들랜드 2007 년에서 일광 절약 시간제 변경에 대 한 업데이트
929895 약속 다른 Exchange Server 조직 간에 전송 되는 조직 중 하나에서 서 부 오스트레일리아 표준 시간대 때 한 시간 잘못 되었을 수 있습니다.
937653 2007 년에서 뉴질랜드 변경에 대 한 일광 절약 시간제 기간이 지난 후 Exchange Server 2003에서 하나 이상의 문제가 발생
2003 SP1 Exchange Server
940123 2007 년 뉴질랜드에 일광 절약 시간제 (DST) 후 Exchange 2003 서비스 팩 1을 시작 하는 문제가 발생

알려진된 문제

  • Outlook Web Access에서 만든 되풀이 모임이 Exchange 도구로 업데이트 되지 않는다

    Exchange Server 업데이트를 설치 하는 경우는 되풀이 되는 모임을 사서함을 업데이트 하기 전에 Exchange server Outlook Web Access에서 만든 Exchange 도구로 업데이트 되지 않습니다.

    이 문제를 해결 하려면 Exchange Server 업데이트를 제거 하 고 실행을 도구를 교환 하 고, 교환 시 Exchange Server 업데이트를 다시 서버입니다.
  • Exchange 도구를 실행 한 후 Exchange 2007 다시 시작 해야

    일정 항목을 올바르게 표시 하려면 다시 시작 해야 합니다. Outlook Web access에서 Exchange 도구를 실행 한 후 Exchange 서비스 Exchange 2007입니다.
  • Exchange 도구를 설치할 수 없습니다.

    Exchange 도구가 성공적으로 설치 되지 않습니다. 다음 레지스트리 키 중 하나가 존재 합니다.
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    이 시나리오에서는 다음과 같은 오류 메시지가 나타난다 Exchange 도구를 설치 하려고 합니다.
    Exchange Server 이 버전의 Microsoft와 일정 기준 주소 변경 도구를 설치할 수 없습니다. Outlook입니다.
    이 문제를 해결 하려면 이러한 레지스트리 키 삭제 Exchange 도구를 설치 하 고 레지스트리를 복원 합니다. 키입니다.

    중요 한 이 절, 방법 또는 작업 방법을 설명 하는 단계를 포함 합니다 레지스트리를 수정 합니다. 그러나 수정 하면 심각한 문제가 발생할 수 있습니다는 레지스트리 잘못입니다. 따라서 다음이 단계를 수행 했는지 확인 신중 하 게 합니다. 수정 하기 전에 추가 보호를 위해 레지스트리를 백업 합니다. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 자세한 내용은 백업 및 레지스트리를 복원 하 고 다음 문서를 참조 하는 방법에 대 한 Microsoft 기술 자료의 다음 문서를 참조 번호:
    322756 백업 하 고 Windows에서 레지스트리를 복원 하는 방법
  • 서버 별로 처리할 수 있는 사서함 수에 제한이

    사용자 목록 모드에서 및 표준 시간대 추출 모드에서 Msextmz.exe는 서버에만 65535 사서함을 처리할 수 있습니다. 서버에 있는 경우 두 개 이상의 65535 사서함, 일부 사서함이 처리 되지 않습니다.
  • 공용 폴더 일정이 업데이트 되지 않는다

    Exchange 도구는 공용 폴더를 업데이트 하지 않습니다. 달력입니다. 공용 폴더 일정을 업데이트 하는 방법에 대 한 자세한 내용은 Outlook 도구를 참조 하십시오입니다.
  • Outlook 도구와 Exchange 도구를 동일한 환경에서 실행할 수 있습니다.

    이 사서함에서 Exchange 도구를 실행 하는 경우 이미 Outlook 도구, 또는 그 반대로 업데이트 없음 쪽 경험 효과입니다. 그러나 Exchange 도구를 실행할 경우 사용자에 게 필요 하지 않습니다. Outlook 도구를 별도로 실행 합니다.
  • 비-모임 미리 알림이 예상 보다 늦게 나타난다

    비-모임 미리 알림이 업데이트 된 사서함에 대 한 Outlook 사서함에 연결한 적이 없는 경우 Exchange 도구가 업데이트 되지 않습니다. 온라인 모드입니다. 이 경우 미리 알림이 1 시간 표시 이상 예상 합니다.

    Outlook에서 온라인 모드로 연결한 적이 없는 경우 일정 약속에 대 한 잘못 된 미리 알림을 조정 된 Outlook 도구 다음 중 하나를 찾습니다. 또한 미리 알림 검색 폴더가 사서함에 존재 하지 않습니다. 따라서 도구는 전자 메일 항목, 연락처 또는 다른 미리 알림이 업데이트 되지 않습니다.

    예를 들어, 도구는 전자 메일 항목에 미리 알림이 업데이트 되지 않습니다. 나중에 한 번에 추가. 이 도구는 업데이트 되지 해당 미리 알림이 있는 작업 항목에 미리 알림이 있습니다.
  • 오류 메시지가 나타납니다: "'Microsoft Exchange 일정 업데이트 도구'의 이전 버전이 검색 되지 않으므로 설치할 수 없습니다. 제거 하 고이 설치 프로그램을 다시 실행 하십시오. "

    Exchange 일정 업데이트를 이전에 설치한 경우 도구 버전 1.0, Exchange를 설치 하기 전에이 버전을 제거 해야 일정 업데이트 도구 버전 2.0입니다.

    Exchange 일정 업데이트 도구 버전 1.0이 포함 된 자동 압축 풀림 실행 파일로 배포 된 두.msi 패키지 파일 (Msextmz.msi 및 Msextmzcfg.msi)입니다. 모두 제거 해야 Exchange 도구의 버전 2.0을 설치 하기 전에 패키지입니다.

    경우에 Exchange 도구의 버전 2.0을 설치 하는 경우에 문제가, 다시 설치 하 고 다음 Exchange 도구의 버전 1.0을 제거 하십시오. 안 함 대신.msi 패키지를 사용 하 여 사용 하 여이 추가 또는 제거 프로그램 제어판 기능입니다. 그런 다음 컴퓨터를 다시 시작 하 고 그런 다음 Exchange 도구의 버전 2.0을 설치 합니다.

    이 프로시저에서 수행 하는 경우 작동, 직접.msi 패키지에서 바이너리를 추출 합니다.
  • Outlook 또는 Exchange 업데이트 도구를 실행 하는 경우 약속 해제 한 시간씩 사서함의 홈 표준 시간대 뉴질랜드 표준시 곳입니다.

    다음 시나리오는이 문제 발생 true:
    • Outlook 또는 Exchange 업데이트 도구를 실행 한 Windows Vista를 실행 하는 컴퓨터입니다.
    • 중인 사서함의 홈 표준 시간대 업데이트 뉴질랜드 표준 시간입니다.
    이 문제를 해결 하려면 Outlook을 실행 하거나 1 월 이후 다시 사서함에 대해 Exchange 업데이트 도구 1, 2008입니다.

    Windows Vista 표준 시간대를 처리 하기 때문에이 문제가 발생 다른 버전의 Windows와 다르게 정보 작업을 수행 합니다. 실행 하지 않는 경우는 Outlook 또는 Exchange 업데이트 도구를 다시 또는 2008 년 1 월 1 일 이후 모든 약속에서 두 번째 DST 이벤트 해제 한 시간씩 됩니다. 두 번째 DST 이벤트 2008 년 3 월 16 일-2008 년 4 월 6 일의 날짜를 포함 합니다.

    그렇지 않은 경우 약속 두 번째 dst에서 업데이트를 2008 년 1 월 1 일 때까지 기다려야 합니다. 이벤트에 있는 컴퓨터에서 Outlook 또는 Exchange 업데이트 도구를 실행할 수 있습니다. Windows XP 또는 Windows Server 2003을 실행 합니다.
  • M/DD/YYYY 형식으로 날짜를 MM/DD/YYYY 형식으로 변경 됩니다.

    설정의 운영 체제 패치 날짜 교환 옵션 일정 업데이트 도구입니다. 이 작업을 수행 하는 경우 Exchange 일정 업데이트 도구 제대로 작동 하지 않습니다. 날짜 형식 MM/DD/YYYY M/DD/YYYY를 변경 때문에이 문제가 발생 합니다.

    또한 다음과 같은 내용의 오류 메시지가 있는 다음과 같은 오류 메시지가 오류 로그에 기록 됩니다.
    [2008/02/28 7시 10분: 21 오전] [776]: wmain: 오류 0x80070057-구성을 읽을 수 없습니다.
    이 문제는 잘못 된 옵션 설정은 샘플 사서함의 다음 섹션에서 때문에 발생합니다.Server.ini 파일입니다.
    ServerDN = /O=OrgName/OU=AdminGroup/cn=Configuration/cn=Servers/cn=ServerName 
    LogDirectory = C:\Program Files\MSExTmz\ServerName\Update\LogFiles\ 
    ErrorFile = C:\Program Files\MSExTmz\ServerName\Update\errors.ServerName.txt 
    ProcessedFile = C:\Program Files\MSExTmz\ServerName\Update\processed.ServerName.txt 
    LogFile = C:\Program Files\MSExTmz\ServerName\Update\msextmz.ServerName.log 
    SystemPatchDate = 2/28/2008  
    DebugFile = C:\Program Files\MSExTmz\debug\ServerName.debug.bin 
    PerMailboxTimeLimit = 15 
    PostMailboxDelay = 0 
    RebaseOptions = 171 
    InputFile = C:\Program Files\MSExTmz\ServerName\Update\Mailboxes.ServerName.txt 
    
    "SystemPatchDate" 줄 "2/28/08" 날짜가 포함 되어 있습니다 이 날짜는 DD/MM/YYYY 형식으로 있어야 합니다.

    이 문제를 해결 하려면 사용 하지는 운영 체제 패치 날짜 옵션입니다.

참조

"사서함 사용 권한 부여" 스크립트

Option Explicit
' For FileSystemObject
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Const TristateTrue = -1
Const TristateUseDefault = -2
Const TristateFalse = 0

'Permission Type: Allow or Deny
Const ADS_ACETYPE_ACCESS_ALLOWED = &H0
Const ADS_ACETYPE_ACCESS_DENIED = &H1
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5
Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6

Const ADS_ACEFLAG_INHERIT_ACE = &H2
Const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &H4
Const ADS_ACEFLAG_INHERIT_ONLY_ACE = &H8
Const ADS_ACEFLAG_INHERITED_ACE = &H10
Const ADS_ACEFLAG_VALID_INHERIT_FLAGS = &H1f
Const ADS_ACEFLAG_SUCCESSFUL_ACCESS = &H40
Const ADS_ACEFLAG_FAILED_ACCESS = &H80

'Declare ADSI constants
Const ADS_SCOPE_SUBTREE = 2
Const ADS_OPTION_SECURITY_MASK = 3
Const ADS_OPTION_REFERRALS	= 1
Const ADS_SECURITY_INFO_DACL = 4
Const ADS_CHASE_REFERRALS_NEVER = &h00 
Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20 
Const ADS_CHASE_REFERRALS_EXTERNAL = &h40

'Microsoft Exchange Server
Const EX_MB_SEND_AS_ACCESSMASK  = &H00100
Const EX_FULLMAILBOX_ACCESSMASK = 1
Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"

'Application Parameter Index
Const ARG_INDEX_MODE = 0
Const ARG_INDEX_USERNAME = 1
Const ARG_INDEX_FILENAME = 2
Const MIN_ARG = 1

Const MODE_INVALID = -1 
Const MODE_ADD = 0
Const MODE_REMOVE = 1

Const ADD = "-ADD"
Const REMOVE = "-REMOVE"

'Application Const String
Const EMPTYSTRING = ""
Const ERROR_FILENAME = "GrantMailboxPermission.err"
Const OUTPUT_FILENAME = "GrantMailboxPermission.log"
Dim OUTPUT_DELIMITER
OUTPUT_DELIMITER = vbTab

'Logging file
Dim objFSO
Dim objfileError
Dim objfileOutput
Dim objfileImport
Dim objconn
Dim objCommand
Dim rootDSE
Dim sDomainContainer
Dim sUserLDAPPath
Dim objUser
Dim objSDNTsecurity
Dim objDACLNT
Dim objDACLEX
Dim objSDMailbox
Dim fFMA
Dim fSendAs
Dim AccessTypeForFMA
Dim AccessTypeForSendAS
Dim fAddedFMA
Dim fAddedSendAs
Dim fRemovedFMA
Dim fRemovedSendAs
Dim sArraySplit
Dim sOneRow
Dim sGrantedUser
Dim dArgCount
Dim cScriptMode
Dim dArgExpected
Dim fOneError

On Error Resume Next
'Parameter Verification
dArgCount = Wscript.Arguments.Count
If (dArgCount < MIN_ARG) Then
	DisplaySyntax
End If

cScriptMode = MODE_INVALID
Select Case UCase(WScript.Arguments(ARG_INDEX_MODE))
	Case ADD
		cScriptMode = MODE_ADD
		dArgExpected = ARG_INDEX_FILENAME + 1
	Case REMOVE
		cScriptMode = MODE_REMOVE
		dArgExpected = ARG_INDEX_MODE + 1
	Case Else
		cScriptMode = MODE_INVALID
End Select

If (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then
	DisplaySyntax
End If

If (cScriptMode = MODE_ADD) Then
	sGrantedUser = WScript.Arguments(ARG_INDEX_USERNAME)
	If (IsValidUserName(sGrantedUser) = False) Then
		DisplaySyntax
	End If
End If

CreateImportExportFiles

If (cScriptMode = MODE_ADD) Then
	err.Clear
	
	'Prepare LDAP connection.
	Set objconn = CreateObject("ADODB.Connection")
	Set objCommand = CreateObject("ADODB.Command")
	objconn.Provider = "ADSDSOObject"
	objconn.Open "ADs Provider"
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)
		objfileError.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)
		WScript.Quit
	End If
		
	Set rootDSE = GetObject("LDAP://rootDSE")
	sDomainContainer = rootDSE.Get("defaultNamingContext")
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to find a Domain Container:" & err.Description)
		objfileError.WriteLine("Failed to find a Domain Container:" & err.Description)
		WScript.Quit
	End If
		
	Set objCommand.ActiveConnection = objconn

	Do While objfileImport.AtEndOfStream <> True
		fOneError = False
		sUserLDAPPath = EMPTYSTRING
		err.Clear

		sOneRow = Trim(objfileImport.ReadLine)
		If sOneRow <> EMPTYSTRING Then
		
		    sUserLDAPPath = GetLDAPPathFromLegacyDN(sOneRow)
		    If (err.number <> 0) Then
			    objfileError.WriteLine("Failed to get user's LDAP path from " & sOneRow)
			    fOneError = True
			    err.Clear
		    End If

		    If (fOneError = False) Then
			    Set objUser = GetObject(sUserLDAPPath)
			    If (err.number <> 0) Then
				    objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)
				    objfileError.WriteLine("Error: " & err.Description)
				    fOneError = True
				    err.Clear
			    End If
		    End If
    	
		    If (fOneError = False) Then
			    Set objSDMailBox = objUser.MailboxRights
			    Set objDACLEX = objSDMailbox.DiscretionaryAcl
			    Set objSDNTsecurity = objUser.ntSecurityDescriptor
			    Set objDACLNT = objSDNTsecurity.DiscretionaryAcl
			    If (err.number <> 0) Then
				    objfileError.WriteLine("Failed to get DACL of " & sUserLDAPPath)
				    objfileError.WriteLine("Error: " & err.Description)
				    fOneError = True
				    err.Clear
			    End If
		    End If

		    ' Verify Full Mailbox Access and Send As permissions.
		    fFMA = False
		    fSendAs = False
		    AccessTypeForFMA = ADS_ACETYPE_ACCESS_ALLOWED
		    AccessTypeForSendAS = ADS_ACETYPE_ACCESS_ALLOWED

		    If (fOneError = False) Then
			    CheckFullMailboxAccess objDACLEX, sGrantedUser, fFMA, AccessTypeForFMA
			    CheckSendAs objDACLNT, sGrantedUser, fSendAs, AccessTypeForSendAS
			    If (err.number <> 0) Then
				    objfileError.WriteLine("Failed to Check permission of " & sUserLDAPPath)
				    objfileError.WriteLine("Error: " & err.Description)
				    fOneError = True
				    err.Clear
			    End If
		    End If

		    'If Send As or Full Mailbox Access permissions do not exist, add these permissions.
		    If ( (AccessTypeForFMA = ADS_ACETYPE_ACCESS_DENIED) Or (AccessTypeForSendAs = ADS_ACETYPE_ACCESS_DENIED_OBJECT) ) Then
			    'If Deny access is already granted, do not add permissions for this user.
			    objfileError.WriteLine("Deny permission already added: " & sUserLDAPPath)
			    fOneError = True
		    End If
    		
		    If ( fOneError = False And ((fFMA = False) Or (fSendAs = False)) ) Then
			    fAddedFMA = False
			    fAddedSendAs = False
    			
			    If (fFMA = False) Then
				    'Add Full Mailbox Access permissions.
				    err.Clear
				    AddAce objDACLEX, sGrantedUser, EX_FULLMAILBOX_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED, ADS_ACEFLAG_INHERIT_ACE, 0,0,0
				    objSDMailbox.DiscretionaryAcl = objDACLEX
				    objUser.MailboxRights = Array(objSDMailbox)
				    If ( err.number <> 0 ) Then
					    objfileError.WriteLine("Failed to add FullMailbox Access: " & sUserLDAPPath)
					    objfileError.WriteLine("Error: " & err.Description)
					    fOneError = True
					    fAddedFMA = False
					    err.Clear
				    Else
					    fAddedFMA = True
				    End If
			    End If
    			
			    If (fSendAs = False) Then
				    'Add Send As permissions.
				    err.Clear
				    AddAce objDACLNT, sGrantedUser, EX_MB_SEND_AS_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED_OBJECT, 0,1, EX_MB_SEND_AS_GUID, 0
				    objSDNTsecurity.DiscretionaryAcl = objDACLNT
				    objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
				    objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
				    If ( err.number <> 0 ) Then
					    objfileError.WriteLine("Failed to add SendAs permission: " & sUserLDAPPath)
					    objfileError.WriteLine("Error: " & err.Description)
					    fOneError = True
					    fAddedSendAs = False
					    err.Clear
				    Else
					    fAddedSendAs = True
				    End If
			    End If

			    If (fOneError = False ) Then 
				    objUser.SetInfo
				    If (err.number <> 0) Then
					    objfileError.WriteLine("Failed to update user: " & sUserLDAPPath)
					    objfileError.WriteLine("Error: " & err.Description)
					    fOneError = True
					    err.Clear		
				    Else
					    'Update logging.
					    objfileOutput.WriteLine(sUserLDAPPath & OUTPUT_DELIMITER & fAddedFMA & OUTPUT_DELIMITER & fAddedSendAs)		
				    End If
			    End If
		    End If

		    Set objUser = Nothing
		    Set objSDNTsecurity = Nothing
		    Set objDACLNT = Nothing
		    Set objDACLEX = Nothing
		    Set objSDMailBox = Nothing

		    If (fOneError = True) Then
			    WScript.StdOut.Write("!")
		    Else
			    WScript.StdOut.Write(".")
		    End If
        End If
	Loop

Set rootDSE = Nothing
Set objCommand = Nothing
Set objconn = Nothing

End If

If (cScriptMode = MODE_REMOVE) Then
	'Retrieve the granted user from the first line of the import file.
	sGrantedUser = objfileImport.ReadLine
	If (IsValidUserName(sGrantedUser) = False) Then
		WScript.StdOut.WriteLine("Invalid User in import file. please check import file..")
		objfileError.WriteLine("Invalid User in import file. please check import file..")
		WScript.Quit
	End If
	
	Do While objfileImport.AtEndOfStream <> True
		fOneError = False
		sUserLDAPPath = EMPTYSTRING
		fAddedFMA = False
		fAddedSendAs = False
		fRemovedFMA = False
		fRemovedSendAs = False
		err.Clear

		sOneRow = objfileImport.ReadLine
		sArraySplit = Split(sOneRow, OUTPUT_DELIMITER)

		'The first column is the LDAP path.
		sUserLDAPPath = sArraySplit(0)
		'The second column is Full Mailbox Access permissions.
		fAddedFMA = sArraySplit(1)
		'The third column is Send As permissions.
		fAddedSendAs = sArraySplit(2)

		Set objUser = GetObject(sUserLDAPPath)
		If (err.number <> 0) Then
			objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)
			objfileError.WriteLine("Error: " & err.Description)
			fOneError = True
			err.Clear
		End If
		
		If ((fOneError = False) And (fAddedFMA = "True")) Then		
			Set objSDMailBox = objUser.MailboxRights
			Set objDACLEX = objSDMailbox.DiscretionaryAcl
			fRemovedFMA = RemoveFullMailboxAccess(objDACLEX, sGrantedUser)
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to Remove Full MailboxAccess from " & sUserLDAPPath)
				objfileError.WriteLine("Error: " & err.Description)
				fOneError = True
				err.Clear
			End If
			
			If (fRemovedFMA = False) Then
				objfileError.WriteLine("Couldn't find Full mailbox access permission on " & sUserLDAPPath)
			End If
			
			If ((fOneError = False) And (fRemovedFMA = True)) Then
				objSDMailbox.DiscretionaryAcl = objDACLEX
				objUser.MailboxRights = Array(objSDMailbox)
			End If
		End If

		If ((fOneError = False) And (fAddedSendAs = "True")) Then		
			Set objSDNTsecurity = objUser.ntSecurityDescriptor
			Set objDACLNT = objSDNTsecurity.DiscretionaryAcl

			fRemovedSendAs = RemoveSendAs(objDACLNT, sGrantedUser)
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to Remove SendAs from " & sUserLDAPPath)
				objfileError.WriteLine("Error: " & err.Description)
				fOneError = True
				err.Clear
			End If

			If (fRemovedSendAs = False) Then
				objfileError.WriteLine("Couldn't find SendAs permission on " & sUserLDAPPath)
			End If
			
			If ((fOneError = False) And (fRemovedSendAs = True)) Then
				objSDNTsecurity.DiscretionaryAcl = objDACLNT
				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
			End If
		End If

		If ((fOneError = False) And (fRemovedFMA Or fRemovedSendAs)) Then
			objUser.SetInfo
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to update ADSI for user: " & sUserLDAPPath)
				objfileError.WriteLine("Error: " & err.Description)
				fOneError = True
				err.Clear		
			Else 
				If ( fRemovedFMA Or fRemovedSendAs ) Then
					'Update logging.
					objfileError.WriteLine("Removed Permission from " & sUserLDAPPath & OUTPUT_DELIMITER & fRemovedFMA & OUTPUT_DELIMITER & fRemovedSendAs)
				End If
			End If
		End If

		If (fOneError = True) Then
			WScript.StdOut.Write("!")
		Else
			WScript.StdOut.Write(".")
		End If
	Loop
End If

CloseImportexportFiles

Function IsValidUserName (sUserName)
	Dim dPosition
	dPosition = InStr(1, sUserName, "\")
	If (dPosition = 0 ) Then
		IsValidUserName = False
		objfileError.WriteLine("Invalid User:" & sUserName)
	Else
		IsValidUserName = True
	End If
End Function

Function CheckSendAs (objNTSD, sUser, fSendAs, AccessType)
	Dim intACECount
	Dim objACE
	
	err.Clear
	fSendAs = False
	AccessType = ADS_ACETYPE_ACCESS_ALLOWED
	intACECount = objNTSD.AceCount

	If intACECount Then
		For Each objACE In objNTSD
			err.Clear
			If ( (UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then
				fSendAs = True
				AccessType = objACE.AceType
			End If
		Next
	End If	

	If (err.number <> 0) Then
		objfileError.WriteLine("Check SendAs permissions Failed : " & sUser)
		objfileError.WriteLine("Error: " & err.Description)
		err.Clear
		fOneError = True
	End If
	Set objACE = Nothing
End Function

Function CheckFullMailboxAccess (objACL, sUser, fFoundFMA, AccessType)
	Dim intACECount
	Dim objACE

	err.Clear
	fFoundFMA = False
	AccessType = ADS_ACETYPE_ACCESS_ALLOWED
	intACECount = objACL.AceCount
	If intACECount Then
		For Each objACE In objACL
			If ( (UCase(objACE.Trustee) = UCase(sUser)) And ((objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0)) Then
				fFoundFMA = True
				AccessType = objACE.AceType
			End If
		Next
	End If

	If (err.number <> 0) Then
		objfileError.WriteLine("Check FullMailbox permissions Failed : " & sUser)
		objfileError.WriteLine("Error: " & err.Description)
		err.Clear
		fOneError = True
	End If
	Set ObjACE = Nothing
End Function

Function RemoveSendAs (objNTSD, sUser)
	Dim intACECount
	Dim objACE
	Dim fFound
	
	fFound = False
	intACECount = objNTSD.AceCount
	
	If intACECount Then
		For Each objACE In objNTSD
			If ((UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then
				objNTSD.RemoveAce objACE
				fFound = True
			End If
		Next
	End If

	RemoveSendAs = fFound		
End Function

Function RemoveFullMailboxAccess (objACL, sUser)
	Dim intACECount
	Dim objACE
	Dim fFound
	
	fFound = False
	intACECount = objACL.AceCount
	
	If intACECount Then
		For Each objACE In objACL
			If((0 <> Instr(UCase(objACE.Trustee), UCase(sUser))) And (objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0) Then
				objACE.AccessMask = (objACE.AccessMask Xor EX_FULLMAILBOX_ACCESSMASK)
				fFound = True
			End If
		Next
	End If

	RemoveFullMailboxAccess = fFound		
End Function

Function GetLDAPPathFromLegacyDN (sLegacyDN)
	Dim rsUsers
	Dim sLdapPath
	
	objCommand.CommandText = "<GC://" & sDomainContainer & ">;(&(&(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(legacyExchangeDN=" & sLegacyDN & ")) ))));adspath;subtree"
	objCommand.Properties("searchscope") = ADS_SCOPE_SUBTREE
	objCommand.Properties("Page Size") = 10
	objCommand.Properties("Timeout") = 30 
	objCommand.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)

	err.Clear	
	Set rsUsers = objCommand.Execute
	If (err.number <> 0) Then
		objfileError.WriteLine("Search for mailbox owners failed, error:" & err.Description)
		fOneError = True
	End If
	
	If (rsUsers.RecordCount = 0) Then
		objfileError.WriteLine("No mailbox owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")
		fOneError = True		
	End If

	If (rsUsers.RecordCount > 1) Then
		objfileError.WriteLine("Multiple mailboxs owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")
		fOneError = True		
	End If

	sLdapPath = Replace(rsUsers.Fields(0).Value, "GC://", "LDAP://")	
	GetLDAPPathFromLegacyDN = sLdapPath
	Set rsUsers = Nothing
End Function

Function CloseImportexportFiles

	objfileError.WriteLine("*******************************************************")
	objfileError.WriteLine("End at " & Date & " " & Time)
	objfileError.WriteLine("*******************************************************")

	objFSO.Close
	objfileError.Close
	objfileOutput.Close
	objfileImport.Close
	
	Set objFSO = Nothing
	Set objfileError = Nothing
	Set objfileOutput = Nothing
	Set objfileImport = Nothing
End Function

Function CreateImportExportFiles
	Dim sErrorsFileName
	Dim sImportFileName
	Dim sOutputFileName

	err.Clear
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	sErrorsFileName = ERROR_FILENAME
	sImportFileName = EMPTYSTRING
	sOutputFileName = EMPTYSTRING

	Select Case cScriptMode
		Case MODE_ADD
			sImportFileName = WScript.Arguments(ARG_INDEX_FILENAME)
			sOutputFileName = OUTPUT_FILENAME
		Case MODE_REMOVE
			sImportFileName = OUTPUT_FILENAME 'Use the output file name as the import file.
			sOutputFileName = EMPTYSTRING	
		Case Else
			DisplaySyntax
	End Select

	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForAppending, True, TristateTrue)
	objfileError.WriteLine("*******************************************************")
	objfileError.WriteLine("Start at " & Date & " " & Time)
	objfileError.WriteLine("*******************************************************")

	If (cScriptMode = MODE_REMOVE) Then
		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateTrue)
	Else
		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateFalse)
	End If

	If (sOutputFileName <> EMPTYSTRING) Then
		'Determine whether the output file already exists.
		If (objFSO.FileExists(sOutputFileName)) Then
			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForReading, False, TristateTrue)
			sOneRow = objfileOutput.ReadLine
			'If the user name in the file differs from the parameter, the process cannot continue.
			If ( sOneRow <> sGrantedUser ) Then
				WScript.StdOut.WriteLine("The Domain\User must be the same as " & sOneRow )
				WScript.Quit
			End If
			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForAppending, True, TristateTrue)
		Else
			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForWriting, True, TristateTrue)
			'The first line of the log file is the user who is granted the permissions.
			objfileOutput.WriteLine(sGrantedUser)
		End If
	End If
	
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to open Log file, error:" & err.Description)
		WScript.Quit
	End If
End Function

Function AddAce(dacl, TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)
	Dim Ace1
	
	Set Ace1 = CreateObject("AccessControlEntry")
	Ace1.AccessMask = gAccessMask
	Ace1.AceType = gAceType
	Ace1.AceFlags = gAceFlags
	Ace1.Flags = gFlags
	Ace1.Trustee = TrusteeName
	'Determine whether ObjectType has to be set.
	If CStr(gObjectType) <> "0" Then
		Ace1.ObjectType = gObjectType
	End If

	'Determine whether InheritedObjectType has to be set.
	If CStr(gInheritedObjectType) <> "0" Then
		Ace1.InheritedObjectType = gInheritedObjectType
	End If
	dacl.AddAce Ace1

    Set Ace1 = Nothing
End Function

Function DisplaySyntax
	WScript.StdOut.WriteLine("Syntax:")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Grant Full mailbox access and SendAs permission to USER based on IMPORT_FILE:")
	WScript.StdOut.WriteLine("    CSCRIPT " & WScript.ScriptName & " -Add DOMAIN\USER IMPORT_FILE")
	WScript.StdOut.WriteLine("    NOTE: """ & OUTPUT_FILENAME & """ will be created for -Remove option ")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Remove Full mailbox access and SendAs permission based on " & OUTPUT_FILENAME & ":")
	WScript.StdOut.WriteLine("    CSCRIPT """ & WScript.ScriptName & """ -Remove ")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("For all modes, errors are saved to " & ERROR_FILENAME )

	WScript.Quit	
End Function

속성

기술 자료: 941018 - 마지막 검토: 2011년 10월 19일 수요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange 2000 Server Standard Edition
키워드:?
kbhowto kbinfo kbmt KB941018 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:941018

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com