사용자 만들기

Active Directory Domain Services 사용자를 만들려면 사용자를 배치하려는 도메인의 도메인 컨테이너에 사용자 개체를 만듭니다. 사용자는 도메인의 루트, 조직 구성 단위 또는 컨테이너 내에서 만들 수 있습니다.

사용자 개체를 만들 때 다음 표에 나열된 특성을 설정하여 개체를 Active Directory Domain Services 및 Windows 보안 시스템에서 인식하는 법적 사용자로 설정해야 합니다.

attribute 설명
cn 디렉터리에 있는 사용자 개체의 이름을 지정합니다. 개체의 RDN(상대 고유 이름)이 됩니다.
sAMAccountName 이전 버전의 Windows에서 클라이언트 및 서버를 지원하는 데 사용되는 이름인 문자열을 지정합니다. 이전 버전의 Windows에서 클라이언트를 지원하려면 sAMAccountName 이 20자 미만이어야 합니다.
sAMAccountName은 도메인 내의 모든 보안 주체 개체에서 고유해야 합니다. 도메인에 대해 쿼리를 수행하여 sAMAccountName 이 도메인 내에서 고유한지 확인해야 합니다.
sAMAccountName 은 선택적 특성입니다. 지정하지 않으면 서버에서 임의의 sAMAccountName 값을 만듭니다.

다른 특성을 설정할 수도 있습니다. 다음 사용자 특성은 생성 시 명시적으로 설정하지 않으면 기본값으로 설정됩니다.

attribute 설명
accountExpires 계정이 만료되는 시기를 지정합니다. 기본값은 계정이 만료되지 않음을 나타내는 TIMEQ_FOREVER.
nTSecurityDescriptor 보안 설명자는 특정 규칙에 따라 만들어집니다. 자세한 내용은 보안 설명자가 새 디렉터리 개체에서 설정되는 방법을 참조하세요.
objectCategory 사용자 범주를 지정합니다. 기본값은 "Person"입니다.
이름 사용자 이름을 지정합니다. 기본값은 cn에 설정된 값입니다.
pwdLastSet 사용자가 마지막으로 암호를 설정한 시기를 지정합니다. 기본값은 0으로, 사용자가 다음 로그온 시 암호를 변경해야 했음을 나타냅니다.
Useraccountcontrol 사용자의 여러 로그온 및 계정 기능을 결정하는 값을 포함합니다.
기본적으로 다음 플래그가 설정됩니다.
  • UF_ACCOUNTDISABLE - 계정을 사용할 수 없습니다.
  • UF_PASSWD_NOTREQD - 암호가 필요하지 않습니다.
  • UF_NORMAL_ACCOUNT - 일반 사용자를 나타내는 기본 계정 유형입니다.
memberOf 사용자가 직접 구성원인 그룹 또는 그룹을 지정합니다. 기본값은 "도메인 사용자"입니다.

원하는 컨테이너에 바인딩한 다음 다음 방법 중 하나를 사용하여 사용자를 만듭니다. cnsAMAccountName 특성은 사용자가 서버에 커밋되기 전에 설정해야 합니다.

메서드 Description
IADsContainer.Create cn 특성은 bstrRelativeName 매개 변수에서 가져온 것입니다. IADs.SetInfo를 호출하여 새 사용자를 커밋해야 합니다. 그렇지 않으면 개체가 만들어지지 않습니다. 자세한 내용은 사용자 만들기에 대한 예제 코드를 참조하세요.
IDirectoryObject::CreateDSObject cn 특성은 pszRDNName 매개 변수에서 가져온 것입니다. CreateDSObject가 호출되면 새 사용자가 커밋됩니다. 자세한 내용은 사용자 만들기에 대한 예제 코드를 참조하세요.
DirectoryEntries.Add cn 특성은 이름 매개 변수에서 가져옵니다. DirectoryEntry.CommitChanges를 호출하여 새 사용자 개체를 커밋해야 합니다. 그렇지 않으면 개체가 만들어지지 않습니다. 자세한 내용은 디렉터리 개체 추가를 참조하세요.

cnsAMAccountName 이외의 특성을 수정하려면 먼저 새 사용자를 서버에 커밋해야 합니다. 이는 사용자가 커밋될 때까지 사용자 계정이 실제로 존재하지 않기 때문입니다. 서버에 없는 개체에 대해 특성을 검색하거나 수정하면 오류가 발생합니다. 여기에는 IADsUser.SetPassword 메서드 호출이 포함됩니다. 예를 들어 IADsContainer.Create를 사용하여 사용자를 만들 때 다음 시퀀스가 수행됩니다.

  1. IADsContainer.Create를 호출하여 지정된 cn을 사용하여 로컬 캐시에 사용자를 만듭니다.
  2. sAMAccountName 특성을 IADs.Put 메서드를 사용하여 원하는 값으로 설정합니다.
  3. 이제 userAccountControl과 같은 다른 특성을 수정합니다. 이 제한은 IADsUser.AccountDisabled와 같은 ADSI 속성과 IADsUser.SetPassword와 같은 메서드에도 적용됩니다.
  4. IADs.SetInfo를 호출하여 새 사용자를 서버에 커밋합니다.

새 사용자 계정을 만들면 기본적으로 사용하지 않도록 설정됩니다. 계정을 수동으로 또는 프로그래밍 방식으로 사용하도록 설정해야 합니다. 프로그래밍 방식으로 사용자 계정을 사용하도록 설정하려면 userAccountControl 특성에서 ADS_UF_ACCOUNTDISABLE 플래그를 제거합니다.

새 사용자 계정을 만들 때 계정에 대한 userAccountControl 특성에는 계정에 암호가 필요하지 않음을 나타내는 UF_PASSWD_NOTREQD 플래그가 자동으로 설정됩니다. 계정을 만든 도메인의 보안 정책에 모든 사용자 계정에 대한 암호가 필요한 경우 계정의 userAccountControl 특성에서 UF_PASSWD_NOTREQD 플래그를 제거해야 합니다.

사용자 만들기에 대한 예제 코드