다음을 통해 공유


IScheduledWorkItem::SetAccountInformation 메서드(mstask.h)

[[이 API는 운영 체제 또는 제품의 후속 버전에서 변경되거나 사용할 수 없을 수 있습니다. 대신 작업 스케줄러 2.0 인터페이스를 사용하세요.] ]

작업 항목을 실행하는 데 사용되는 계정 이름 및 암호를 설정합니다.

구문

HRESULT SetAccountInformation(
  [in] LPCWSTR pwszAccountName,
  [in] LPCWSTR pwszPassword
);

매개 변수

[in] pwszAccountName

작업 항목이 실행될 사용자 계정의 null로 종료된 이름을 포함하는 문자열입니다. 로컬 시스템 계정을 지정하려면 빈 문자열 L""을 사용합니다. 다른 문자열을 사용하여 로컬 시스템 계정을 지정하지 마세요. 자세한 내용은 설명 부분을 참조하세요.

[in] pwszPassword

pwszAccountName에 지정된 계정의 암호를 포함하는 문자열입니다.

로컬 시스템 계정이 지정된 경우 이 매개 변수를 NULL 로 설정합니다. TASK_FLAG_RUN_ONLY_IF_LOGGED_ON 플래그를 설정하는 경우 로컬 또는 도메인 사용자 계정에 대해 pwszPasswordNULL 로 설정할 수도 있습니다. IScheduledWorkItem::SetFlags 메서드를 사용하여 플래그를 설정합니다.

작업 스케줄러는 동일한 계정을 사용하는 모든 작업에 대해 계정 정보를 한 번만 저장합니다. 한 작업에 대해 계정 암호가 업데이트되면 동일한 계정을 사용하는 모든 태스크에서 업데이트된 암호를 사용합니다.

암호 사용을 마쳤으면 SecureZeroMemory 함수를 호출하여 암호 정보를 지웁다. 암호 보호에 대한 자세한 내용은 암호 처리를 참조하세요.

반환 값

SetAccountInformation 메서드는 다음 값 중 하나를 반환합니다. 이 호출의 오류는 IPersistFile::Save에 대한 후속 호출에서도 반환될 수 있습니다.

반환 코드 Description
S_OK
작업이 완료되었습니다.
E_ACCESSDENIED
호출자에게 작업을 수행할 수 있는 권한이 없습니다. 자세한 내용은 설명 부분을 참조하세요.
E_INVALIDARG
인수가 잘못되었습니다.
E_OUTOFMEMORY
사용 가능한 메모리가 부족합니다.
SCHED_E_NO_SECURITY_SERVICES
보안 서비스는 Windows Server 2003, Windows XP 및 Windows 2000에서만 사용할 수 있습니다.
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION
pwszPassword 매개 변수가 NULL로 설정되었지만 TASK_FLAG_RUN_ONLY_IF_LOGGED_ON 플래그가 설정되지 않았습니다.
SCHED_E_ACCOUNT_INFORMATION_NOT_SET
pwszPassword 매개 변수가 잘못되었습니다. Windows Server 2003에서 작업 스케줄러는 작업을 만들 때( IPersistFile::Save를 호출하는 동안) 암호의 유효성을 검사합니다. 이 오류가 발생하면 작업 파일이 계속 만들어집니다.

설명

이 방법은 Windows Server 2003, Windows XP 및 Windows 2000용입니다.

pwszAccountName이 로컬 시스템 계정을 지정하는 경우 호출자는 로컬 컴퓨터의 관리자이거나 로컬 시스템 계정에서 실행되는 애플리케이션이어야 합니다. 그렇지 않으면 이 메서드가 실패합니다.

pwszPassword에 지정된 암호는 작업 항목이 실행될 때 계정에 로그온하는 데 사용됩니다. 잘못된 암호로 인해 작업 항목이 실행될 때 오류가 발생합니다. 그러나 Windows Server 2003에서 작업 스케줄러는 작업을 만들 때( IPersistFile::Save를 호출하는 동안) 암호의 유효성을 검사합니다.

일반적으로 암호에는 만료 날짜가 있습니다. 무기한으로 실행되는 작업을 예약하는 경우 새 암호를 반영하도록 작업을 업데이트해야 합니다.

SetAccountInformation에 대한 초기 호출 또는 IPersistFile::Save에 대한 후속 호출을 통해 오류를 반환할 수 있습니다.

이 호출이 성공하려면 작업 스케줄러 서비스가 실행 중이어야 합니다. SetAccountInformation은 작업 스케줄러 서비스에 대한 RPC(원격 프로시저 호출)를 발생시키지만, IPersistFile::Save가 호출될 때까지 RPC 호출이 수행되지 않습니다.

E_ACCESSDENIED 반환 코드는 다음 조건에서 반환됩니다.

  • 호출자는 예약된 작업 항목을 나타내는 파일에 대한 쓰기 권한이 없습니다.
  • 로컬 계정이 지정되었지만(pwszAccountName 이 L"으로 설정됨) 호출자는 로컬 컴퓨터의 관리자나 로컬 시스템 계정에서 실행되는 애플리케이션이 아닙니다.
  • nULL 암호는 pwszPassword로 지정되었지만 호출자는 로컬 컴퓨터의 관리자도 아니고 로컬 시스템 계정에서 실행되고 있지도 않습니다.
  • 애플리케이션이 pwszAccountName 매개 변수에 지정된 사용자와 다른 사용자 이름으로 실행되고 있습니다.
작업 항목에 대한 계정 정보를 설정한 후 IPersistFile::Save 를 호출하여 수정된 작업 항목 개체를 디스크에 저장해야 합니다.

예제

작업의 계정 정보를 설정하는 방법에 대한 자세한 내용과 예제는 C/C++ 코드 예제: 작업 계정 정보 설정을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 mstask.h
라이브러리 Mstask.lib
DLL Mstask.dll

추가 정보

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags