Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 3건
  GUID SID 값 확인 하기 
작성일시 : 2008.03.28 13:15 | 분류 : Windows Server/Active Directory | 태그 : get, guid, script, SID, VBS

GUID 와 SID 는 특정 Object에 대한 구분을 위해 Windows  내부에서 사용하는 ID 입니다.
GUID의 경우 객체에 할당이 되면 절대 변하지 않지만 SID의 경우 포레스트 에서 도메인간 이동이 있을때 변경이 있을 수 있습니다.
Windows 에서 SID를 사용하는 이유는 NT4와의 호환성 때문입니다.

[Name Format]

Constant

Value

Description

ADS_NAME_TYPE_1779

1

Name format as specified in RFC 1779. For example, "CN=Jeff Smith,CN=users,DC=Fabrikam,DC=com".

ADS_NAME_TYPE_CANONICAL

2

Canonical name format. For example, Fabrikam.com/Users/Jeff Smith".

ADS_NAME_TYPE_NT4

3

Account name format used in Windows NT 4.0. For example, "Fabrikam\JeffSmith".

ADS_NAME_TYPE_DISPLAY

4

Display name format. For example, "Jeff Smith".

ADS_NAME_TYPE_DOMAIN_SIMPLE

5

Simple domain name format. For example, "JeffSmith@Fabrikam.com".

ADS_NAME_TYPE_ENTERPRISE_SIMPLE

6

Simple enterprise name format. For example, "JeffSmith@Fabrikam.com".

ADS_NAME_TYPE_GUID

7

Global Unique Identifier format. For example, "{95ee9fff-3436-11d1-b2b0-d15ae3ac8436}".

ADS_NAME_TYPE_USER_PRINCIPAL_NAME

9

User principal name format. For example, "JeffSmith@Fabrikam.com".

ADS_NAME_TYPE_CANONICAL_EX

10

Extended canonical name format. For example, "Fabrikam.com/Users Jeff Smith".

ADS_NAME_TYPE_SERVICE_PRINCIPAL_NAME

11

Service principal name format. For example, "www/www.fabrikam.com@fabrikam.com".

[GUID 값 확인 하기]
위의 Name Format 을 알고 있으면 쉽게 사용자의 GUID를 알 수 있습니다.

Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_GUID = 7

strUserName = "mskim\administrator"

Set objTranslator = CreateObject("NameTranslate")

objTranslator.Init ADS_NAME_INITTYPE_GC, ""
objTranslator.Set ADS_NAME_TYPE_NT4, strUserName

strUserGUID = objTranslator.Get(ADS_NAME_TYPE_GUID)

Wscript.Echo strUserGUID

[SID 값 확인 하기]

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set objAccount = objWMIService.Get _
    ("Win32_UserAccount.Name='administrator',Domain='mskim'")
Wscript.Echo objAccount.SID

[참고]

http://www.microsoft.com/technet/scriptcenter/resources/qanda/dec04/hey1203.mspx
http://www.microsoft.com/technet/scriptcenter/resources/qanda/aug07/hey0822.mspx
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib/dsce_ctl_yicc.mspx?mfr=true

  Script를 이용한 레지스트리 키, 값 컨트롤 
작성일시 : 2008.03.06 12:01 | 분류 : Windows Server/Kernel | 태그 : Delete, Registry, VBS

목차
1. 레지스트리의 사용
2. 레지스트리 루트기
3 예제 : 마우스 오른쪽 버튼 화면 컨트롤
4 예제 : Script를 이용한 레지스트리 키, 값 컨트롤

레지스트리 루트키 정의
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005

[스크립트]
이전 포스트 "마우스 오른쪽 버튼 화면 컨트롤" 의 파일에 대한 메뉴 삭제를 스크립트화 시키면 아래와 같다.
하위 subkey까지 모두 삭제 시켜준다.

Const HKEY_CLASSES_ROOT = &H80000000

strComputer = "."
strKeyPath = "*\shellex\ContextMenuHandlers\ALzip"

Set objRegistry = GetObject("winmgmts:\\" & _
    strComputer & "\root\default:StdRegProv")

DeleteSubkeys HKEY_CLASSES_ROOT, strKeypath

Sub DeleteSubkeys(HKEY_CLASSES_ROOT, strKeyPath)
    objRegistry.EnumKey HKEY_CLASSES_ROOT, strKeyPath, arrSubkeys

    If IsArray(arrSubkeys) Then
        For Each strSubkey In arrSubkeys
            DeleteSubkeys HKEY_CLASSES_ROOT, strKeyPath & "\" & strSubkey
        Next
    End If

    objRegistry.DeleteKey HKEY_CLASSES_ROOT, strKeyPath
End Sub

[결과]
ALZip 관련 메뉴가 삭제 된 것을 알 수 있다.

[관련 문서]
http://support.microsoft.com/kb/310516
http://articles.techrepublic.com.com/5100-6268_11-5194791.html
http://technet.microsoft.com/ko-kr/magazine/cc160952(en-us).aspx
http://www.serverwatch.com/tutorials/article.php/1476831

  DN 리스트가 저장된 Text 파일을 읽어 그룹에 등록시키는 스크립트 
작성일시 : 2008.02.21 17:35 | 분류 : Windows Server/Active Directory | 태그 : Active Directory, Group, roop, VBS

이전 포스트(http://maystyle.tistory.com/274)에서 작성된 text 파일을 읽어서 그룹에 추가하는 스크립트 입니다.

On Error Resume next

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\userlist.txt", 1)

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    Const ADS_PROPERTY_APPEND = 3

    Set objGroup = GetObject _
        (LDAP://cn=그룹명, cn=Users, dc=xxx, dc=xxx, dc=xxx)
    objGroup.PutEx ADS_PROPERTY_APPEND, _
        "member", Array (strLine)
    objGroup.SetInfo

Loop

objFile.Close
WScript.Echo ("Script Completed")

실제로 응용하자면

    Const ADS_PROPERTY_APPEND = 3

    Set objGroup = GetObject _
        (LDAP://cn=그룹명, cn=Users, dc=xxx, dc=xxx, dc=xxx)
    objGroup.PutEx ADS_PROPERTY_APPEND, _
        "member", Array (strLine)
    objGroup.SetInfo

위의 부분에 각종 작업을 넣어 줄 수 있습니다.
전 사용자를 등록하는 작업을 넣었습니다.
즉 각 라인인 str 라인으로 하는 모든 작업이 가능해 집니다.

 Prev   1   Next