본문 바로가기

IT인생_스크랩/Windows

[VB] VBScript를 이용한 Active Directory 관리

[  출처 : http://blog.naver.com/webman21/18301699  ]



일반적으로 OU, 사용자, 그룹 등을 만들고 관리하기 위해서 Active Directory 사용자 및 컴퓨터를 사용하지만 VBScript를 사용하여 관리할 수도 있다. VBScript를 이용하면 Active Directory 사용자 및 컴퓨터를 통해서 할 수 없는 작업들도 처리할 수 있고 반복적인 관리 작업을 단순화시킬 수 있다.


우 선 VBScript를 사용하여 OU를 만들어 보자.
메모장에서 입력한 후에 .vbs 형식으로 저장한 후에 더블 클릭하면 스크립트가 실행된다.
(stutor.com이라는 도메인에 IT라는 OU를 생성)
----------------------------------------------------------------
Set objRootDSE = GetObject("LDAP://RootDSE")
Set objDomain = GetObject("LDAP://" & objRootDSE.Get("defaultNamingContext"))
Set objOU = objDomain.Create("organizationalUnit", "ou=IT")
objOU.Description = "Corporate IT"
objOU.SetInfo
WScript.Echo "IT OU를 성공적으로 생성하였습니다."
----------------------------------------------------------------


다음은 사용자 계정을 생성하는 스크립트이다.
(로그온 이름이 IISAdmin인 사용자 생성)
----------------------------------------------------------------
Set objOU = GetObject("LDAP://OU=IT,dc=stutor,dc=com")
Set objUser = objOU.Create("User", "cn=IIS Administrator")
objUser.Put "sn", "IIS"
objUser.Put "givenName", "Administrator"
objUser.Put "samAccountName", "IISAdmin"
objUser.Put "userPrincipalName", "IISAdmin@stutor.com"
objUser.SetInfo
objUser.SetPassword "Password"
objUser.AccountDisabled = false
objUser.SetInfo
WScript.Echo "사용자 계정을 성공적으로 생성하였습니다."
----------------------------------------------------------------


사용자 계정의 암호 변경하는 스크립트
(전체이름이 IIS Administrator인 사용자의 패스워드 변경)
----------------------------------------------------------------
Set objUser = GetObject("LDAP://cn=IIS Administrator,ou=IT,dc=stutor,dc=com")
objUser.SetPassword "new_password"
WScript.Echo "암호가 설정되었습니다."
----------------------------------------------------------------


그룹을 생성하는 스크립트
(IT OU에 Master라는 이름의 글로벌 보안 그룹 생성)
----------------------------------------------------------------
Const ADS_GROUP_TYPE_GLOBAL_GROUP = &H2
Const ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP = &H4
Const ADS_GROUP_TYPE_LOCAL_GROUP = &4
Const ADS_GROUP_TYPE_UNIVERSAL_GROUP = &H8
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &H80000000
Set oOU = GetObject("LDAP://ou=IT,dc=stutor,dc=com")
Set oGroup = oOU.Create("group", "CN=Master")
oGroup.Put "groupType", ADS_GROUP_TYPE_GLOBAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
oGroup.Put "sAMAccountName", "Master"
oGroup.Put "name", "Master"
oGroup.Put "displayName", "Master"
oGroup.Put "description", "IT 관리자"
oGroup.SetInfo
WScript.Echo "그룹을 성공적으로 생성했습니다."
----------------------------------------------------------------


그룹에 구성원을 추가하는 스크립트
(Master라는 그룹에 IIS Administrator 사용자를 추가)
----------------------------------------------------------------
Set objDomain = GetObject("LDAP://dc=stutor,dc=com")
Set objGroup = GetObject("LDAP://cn=Master,ou=IT,dc=stutor,dc=com")
set objUser = GetObject("LDAP://cn=IIS Administrator,ou=IT,dc=stutor,dc=com")
objGroup.Add objUser.ADSPath
WScript.Echo "사용자가 성공적으로 그룹에 포함되었습니다."
----------------------------------------------------------------


마지막으로 '계정사용안함'으로 설정된 계정 활성화하는 스크립트
(IIS Administrator 계정이 사용안함으로 된 경우)
----------------------------------------------------------------
Set objUser = GetObject("LDAP://cn=IIS Administrator,ou=IT,dc=stutor,dc=com")
objUser.AccountDisabled = false
objUser.SetInfo
WScript.Echo "사용자 계정을 사용할 수 있습니다."
----------------------------------------------------------------