디렉터리 서비스 및 Visual C sharp를 사용하여 로컬 시스템에 사용자 추가
이 문서에서는 네임스페이 DirectoryServices
스를 사용하여 로컬 시스템에 사용자를 추가하고 Visual C#의 그룹을 추가하는 방법을 설명합니다.
원래 제품 버전: Visual C#
원본 KB 번호: 306273
요약
이 단계별 문서에서는 네임스페이 DirectoryServices
스를 사용하여 로컬 시스템 및 그룹에 사용자를 추가하는 방법을 보여줍니다.
샘플 만들기
Visual Studio .NET 2003, Visual Studio 2005 또는 Visual Studio 2008을 시작한 다음 새 Visual C# 콘솔 애플리케이션 프로젝트를 만듭니다.
솔루션 탐색기 참조를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.
어셈블리에 대한 참조를 추가합니다
System.DirectoryServices.dll
.Class1.cs 파일의 코드를 다음 코드로 바꿉 있습니다.
참고
Visual C# 2005 또는 Visual C# 2008에서는 Class1.cs 파일이 Program.cs 파일로 대체됩니다.
using System; using System.DirectoryServices; class Class1 { static void Main(string[] args) { try { DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user"); NewUser.Invoke("SetPassword", new object[] {"#12345Abc"}); NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"}); NewUser.CommitChanges(); DirectoryEntry grp; grp = AD.Children.Find("Guests", "group"); if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});} Console.WriteLine("Account Created Successfully"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } }
프로젝트를 컴파일한 다음 실행합니다.
Windows 2000 기반 컴퓨터에서 다음 단계에 따라 계정이 만들어지고 게스트 그룹에 추가되었는지 확인합니다.
- 시작 메뉴에서 프로그램을 가리키고 관리 도구를 가리킨 다음 컴퓨터 관리를 클릭합니다.
- 로컬 사용자 및 그룹 노드를 확장하려면 클릭합니다. 새 계정은 사용자 노드와 게스트 그룹의 노드 아래에 표시됩니다.
Windows XP 기반 컴퓨터에서 다음 단계에 따라 계정이 만들어지고 게스트 그룹에 추가되었는지 확인합니다.
- 시작 메뉴에서 제어판 클릭합니다.
- 사용자 계정을 두 번 클릭합니다. 새 사용자 계정이 사용자 계정 대화 상자에 표시됩니다.
중요
테스트를 완료한 후 시스템에서 새로 만든 사용자 계정을 제거합니다.
새 디렉터리 항목 만들기
이 샘플에서 디렉터리 항목을 만들 때 시스템에서 Windows NT, Windows 2000 또는 Windows XP를 실행하고 있다고 가정합니다.
참고
생성자에 전달되는 DirectoryEntry
문자열은 로 시작합니다 "WinNT://"
. 다른 타사 운영 체제에서 Directory Services를 실행할 수도 있습니다.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");
디렉터리 트리에 디렉터리 항목 추가
다음 코드는 값 TestUser1
이 인 DirectoryEntry
형식의 사용자를 Active Directory 트리에 추가합니다.
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
새 사용자 계정에 대한 암호 및 설명 설정
다음 코드는 Invoke 메서드를 호출하여 개체의 SetPassword
및 Put
메서드를 호출합니다 DirectoryEntry
. 그러면 암호가 설정되고 사용자 계정에 설명이 할당됩니다. 또한 이 코드는 메서드를 CommitChanges
호출하여 변경 내용을 저장합니다.
NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
NewUser.CommitChanges();
그룹에 계정 추가
그룹에 계정을 추가하려면 다음 단계를 수행합니다.
- 형식의 변수를 정의합니다
DirectoryEntry
. Find
클래스 멤버의 메서드를Children
ActiveDirectory
호출하여 변수를 채웁다. 이 경우 게스트 그룹은 검색의 대상입니다. 이 코드는 메서드가 반환하는Find
값을 테스트하여 그룹이 발견되었는지 확인합니다. 그룹을 찾은 경우 새 사용자 계정이 그룹에 추가됩니다.
DirectoryEntry grp;
grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
문제 해결
사용자 계정을 만들 수 있는 충분한 권한 없이 코드를 실행하려고 하면 이 문서의 코드가 실패합니다. 코드가 성공적으로 완료되려면 현재 로그온한 사용자가 Administrators 그룹의 구성원이거나 사용자가 사용자 계정을 만들 수 있는 특정 권한이 있어야 합니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기