안녕하세요. 바른권 입니다.
다름이아니오라 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
-
우주인(김재훈)
2013.02.14 14:10
파워쉘 모듈이 잘 안되시나보네요....
이런 경우 파워쉘에서 간단히 .net framework를 사용할 수 있습니다.
$users=([System.DirectoryServices.DirectorySearcher]"(objectclass=user)").FindAll()
$users|% {$_.Properties.accountexpires}|%{[System.DateTime]::FromFileTime($_)}