안녕하세요. 바른권 입니다.
다름이아니오라 AD에서 사용하는 도메인 계정의 만료일자를 확인하는 방법을 문의 드리고자 적어 봤습니다...
실제 사용하는 Active Directory의 OS는 Windows Server 2003 Enterprise x86 이며 단일 도메인으로 구성 되어있습니다.
먼저 시도해본 방법은 CSVDE를 사용하여 DN,AccountExpires 값을 Export하는 대는 성공 하였습니다.
Example
CSVDE -d "ou=test,dc=shoes,dc=com" -f export3.csv -l "DN, accountexpires"
CSVDE를 사용하여, 만든 값을 엑셀에서 열어보면 AccountExpires 값이 예를들어 2013-02-03 이런 형식이아닌 숫자 및 영문이 조합된
형식으로 데이터를 추출 합니다.
제 예상으로는, 날짜 Data만 Export 한 것이 아닌 시간 Data도 Export되어 나온것으로 예상 됩니다.
그래서 엑셀에서 y-m-d 형식으로 표현 하려고 여러가지 방법을 시도해 봤으나.....잘안되서....CSVDE가 아닌 다른 방법으로 확인을 해보았습니다.
구글 및 마이크로소프트 테크넷 사이트를 확인하다 PowerShell을 통한 방법이 있어서 PowerShell을 사용하여 사용자의 AccountExpires 값을 추출 해봤습니다.
먼저 테스트는 Windows Server 2008 R2에서 테스트를 해 봤으며, Feature에서 PowerShell을 기능을 추가하고 서비스에서
Active Directory Domain Services , Active Directory Web Services << 해당 서비스가 동작하는 것을 확인 하였으며,
PowerShell에서 아래 노트에 명시된 스크립트 명령어를 입력하면 정상적으로 사용자 계정 - 만료날짜가 표시 됩니다.
(관련노트 : http://blog.happygom74.com/239)
그래서 Windows Server 2003에서 동작하는 Active Directory에서 테스트를 진행 해보았지만, 기본적으로 2003 및 2008에서는
위에 언급된 2개의 서비스가 동작하지 않아서 정상적으로 Active Directory Module로 Import 되지 않습니다.
Windows Server 2003 및 2008 AD에서 Active Directory PowerShell Module로 진행하려면 몇가지의 작업이 필요 합니다.
(관련노트:http://www.microsoft.com/ko-kr/download/details.aspx?id=2852)
노트에 명시된 작업이 필요해서, 날리지 대로 진행하다 Windows Server 2003에서는 x64에 대해서만 핫픽스를 제공하고 x86은 제공하지 않아서....또 막혔습니다....
그래서 위 날리지가 정상적으로 되는지 확인하기위해 Windows Server 2008에서 진행 하였으며, 서비스에서
Active Directory Domain Service , Active Directory Web Service 구동 확인 후 PowerShell 2.0 설치 후 PowerShell에서
Import-module activedirectory 명령을 실행하였지만 에러가 발생........하였습니다. ;;;;
고민에 고민을 하다가.....조언을 받고자 글을 올려 봤습니다....
혹시 위에 방법 이외에 다른 방법 혹은 위에 방법 중에 잘못된 부분이 있으면.... 과감히 질책 부탁 드립니다.
감사합니다.
Comment 1
-
delmaster
2013.03.07 16:50
음.. 제 머리로 나온건 이렇습니다.
net user [계정명] | find "암호 만료 날짜" >> c:\암호만료날짜.txt
위의 명령을 실행하면 만료 날짜가 C:\암호만료날짜.txt로 저장되는데요
[계정명] 부분은 배치파일 작성해서
추출한 계정명이 순차적으로 쭉 들어가게 하면 될것 같습니다.
순서는
먼저 계정명 추출한 것을 txt 파일에 1행에 1계정씩 쭈욱 넣어 둡니다.
(엑셀로 뽑으셨다니 그대로 쓰시면 될것같네요)
administrator
user1
user2
이런식으로 C:\사용자목록.txt 로 저장합니다.
다음에 메모장에 배치파일을 작성합니다.
for /F "eol=; tokens=1 delims=," %%i in (c:\사용자목록.txt) do net user %%i | find "암호 만료 날짜" >> "C:\만료날짜.txt"
실행되면 사용자 이름없이
암호 만료 날짜 [날짜들....]
이렇게 나오는데 엑셀에서 불러오면 셀 2개로 나눠서 불러지겠죠?
그럼 기존에 사용자 목록과 배치파일로 뽑은 내용을 엑셀에서 편집하면 끝날것 같네요
뭐 이게 최선일지는 모르겠으나 제 머리에서 나온건 이렇습니다.
더 나은 방법을 아시는분 계시면 저도 좀 알려주세요~
------------------------------------------------------------------------------------
글을 쓰고 보니 해당 질문글이 두개가 있었네요;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
한개만 하시지;;;;;;
답변이 있어 제 글은 삭제하려고 하다가
위에글에는 파워쉘로 작업하는 방법이있어서 혹시 필요하신분이 있을까봐
걍 놔두겠습니다~