none
AD에서 저장된 쿼리 만들기 RRS feed

  • 질문

  • 안녕하세요..

    부서별 정리를 위해서 쿼리를 만들고 있는데 기존쿼리를 다운받아 XML 파일을 엑셀에서 부서이름만 변경해서 일괄적으로 만들고 있습니다.

      허나 이렇게 만든 XML이 AD에는 읽혀지지가 않습니다.

    혹시 XML을 쉽게 만들수 있는 방법을 알고 계신분 안계신가요? 약 250여개 만들어야 하는데

    일일이 수작업으 만들기에는 무리가 따릅니다.. 고수님들 도와 주십시요..

    <?xml version="1.0" encoding="euc-kr" ?>
    - <QUERY>
      <NAME>경영기획팀</NAME>
      <DESCRIPTION>경영기획팀</DESCRIPTION>
      <DN />
      <FILTERLASTLOGON>-1</FILTERLASTLOGON>
      <LDAPQUERY>(&(&(|(&(objectCategory=person)(objectSid=*)(!samAccountType:1.2.840.113556.1.4.804:=3))(&(objectCategory=person)(!objectSid=*))(&(objectCategory=group)(groupType:1.2.840.113556.1.4.804:=14)))(objectCategory=user)(department=경영기획팀)))</LDAPQUERY>
      <ONELEVEL>FALSE</ONELEVEL>
      <COLUMNID>{EFFB56C0-B8A8-4511-AA43-951878EFA1E9}</COLUMNID>
      <DSQUERYUIDATA>030000000c00000043006f006d006d006f006e00510075006500720079000000020000000308000000480061006e0064006c00650072000000100000005ee6238ac231d011891c00a024ab2dbb030500000046006f0072006d00000010000000e23fee83d957d011b93200a024ab2dbb080000004400730051007500650072007900000002000000010900000056006900650077004d006f0064006500000004130000010d00000045006e00610062006c006500460069006c00740065007200000000000000170000004d006900630072006f0073006f00660074002e00500072006f0070006500720074007900570065006c006c0000000500000001060000004900740065006d007300000001000000020d0000004f0062006a0065006300740043006c00610073007300300000000500000075007300650072000000020a000000500072006f0070006500720074007900300000000b0000006400650070006100720074006d0065006e0074000000010b00000043006f006e0064006900740069006f006e0030000000060000000207000000560061006c0075006500300000000500000049005400f8adf9b80000</DSQUERYUIDATA>
      </QUERY>
     
     
    2007년 3월 15일 목요일 오전 12:51

모든 응답

  • 짬을 내서 단순반복작업에 대한 것을 스크립트로 한번 만들어봤습니다.

    도움이 되셨으면 좋겠네요

     

    1. 부서명을 list.txt 저장한다
    2. c:\temp\ 디폴트 XML 파일을 읽기전용으로 연다
    3. 파일내용중 Temp_group  list.txt에서 가져온 부서명으로 변경한다
    4.  수정후 부서명.XML 파일로 저장해서 Export
    5. 저장된 부서명리스트에 대해 다시 2-4 과정 루핑 실시

     

    c:\temp 위치해야 파일리스트

    • Convertxml.vbs
    • Default.xml
    • list.txt ( 리스트는 LDAP쿼리로 가져오셔도 되겠죠^^)

     

    준비된 Command-line 상에서 cscript convertXML.vbs실행

     
    스크립트 소스 - ConvertXML.VBS

    ----------------------------------------------------------------------------------------------------

     

     

    Const ForReading = 1

    Const ForWriting = 2

     

    dim objfso,objfile0,objfile1,objfile2,strline,objou,objGroup

       

         Set objFSO = CreateObject("Scripting.FileSystemObject")

         Set objFile0 = objFSO.OpenTextFile("C:\temp\list.txt", ForReading)

       

        

       Do Until objFile0.AtEndOfStream

       On error resume next

         objgroup = objFile0.ReadLine

        

         Set objFSO = CreateObject("Scripting.FileSystemObject")

         Set objFile1 = objFSO.OpenTextFile("C:\temp\default.xml", ForReading)

         Set objFile2 = objFSO.createTextFile("C:\temp\" & objGroup & ".xml", ForWriting)

     

         Do Until objFile1.AtEndOfStream

           strLine = Replace(objFile1.ReadLine, "temp_group", objGroup )

           objFile2.WriteLine strLine

         Loop

     

       objFile1.Close

       objFile2.Close

    Loop

     

    ----------------------------------------------------------------------------------------------------

    디폴트 XML 소스 - default.xml

    ----------------------------------------------------------------------------------------------------

    <?xml version="1.0" encoding="euc-kr" ?>

    - <QUERY>

      <NAME>temp_group</NAME>

      <DESCRIPTION>temp_group</DESCRIPTION>

      <DN />

      <FILTERLASTLOGON>-1</FILTERLASTLOGON>

      <LDAPQUERY>(&(&(|(&(objectCategory=person)(objectSid=*)(!samAccountType:1.2.840.113556.1.4.804:=3))(&(objectCategory=person)(!objectSid=*))(&(objectCategory=group)(groupType:1.2.840.113556.1.4.804:=14)))(objectCategory=user)(department=temp_group)))</LDAPQUERY>

      <ONELEVEL>FALSE</ONELEVEL>

      <COLUMNID>{EFFB56C0-B8A8-4511-AA43-951878EFA1E9}</COLUMNID>

      <DSQUERYUIDATA>030000000c00000043006f006d006d006f006e00510075006500720079000000020000000308000000480061006e0064006c00650072000000100000005ee6238ac231d011891c00a024ab2dbb030500000046006f0072006d00000010000000e23fee83d957d011b93200a024ab2dbb080000004400730051007500650072007900000002000000010900000056006900650077004d006f0064006500000004130000010d00000045006e00610062006c006500460069006c00740065007200000000000000170000004d006900630072006f0073006f00660074002e00500072006f0070006500720074007900570065006c006c0000000500000001060000004900740065006d007300000001000000020d0000004f0062006a0065006300740043006c00610073007300300000000500000075007300650072000000020a000000500072006f0070006500720074007900300000000b0000006400650070006100720074006d0065006e0074000000010b00000043006f006e0064006900740069006f006e0030000000060000000207000000560061006c0075006500300000000500000049005400f8adf9b80000</DSQUERYUIDATA>

      </QUERY>

     

    -----------------------------------------------------------------------------------------------------------------

    2007년 3월 15일 목요일 오전 7:19