Windows Server 2008에서 DirectoryServices를 사용하여 powershell로 AD 속성 나열

Windows Server 2008에서 DirectoryServices를 사용하여 powershell로 AD 속성 나열

Windows Server 2008 DC에서 사용자 이름 및 해당 pwdlastset 속성 목록을 가져오려고 합니다. adutils가 설치되어 있지 않기 때문에 디렉토리 서비스를 사용하고 있습니다. 스크립트는 작동하지만 저는 powershell에 대한 경험이 없어서 출력 형식을 개선하는 방법을 알고 싶습니다. 현재 사용자 이름과 날짜는 각각 새 줄에 인쇄됩니다. 나는 다음과 같은 것을 얻습니다 :

사용자1

pwdlastsetdate

사용자 2

pwdlastsetdate

어떻게하면 같은 것을 얻을 수 있습니까?

사용자1;pwdlastsetdate

user2;pwdlastsetdate

감사합니다!

이것은 내가 사용하고 있는 스크립트입니다:

$SR=New-Object DirectoryServices.DirectoryEntry("GC://OU=OrganisationName,OU=Users,DC=site,DC=orgname,DC=de")
$searcher=New-Object DirectoryServices.DirectorySearcher($SR)
$searcher.Filter="(&(objectCategory=User))"
$results=$searcher.findall()
foreach ($usr in $results)
{
    $usrdata = $usr.Properties
    $usrdata.name
    [DateTime]::FromFileTime($usrdata.pwdlastset[0]).ToString("d")
}

답변1

다음과 같이 하여 사용자 정의 배열을 만들 수 있습니다.

$SR=New-Object DirectoryServices.DirectoryEntry("GC://OU=OrganisationName,OU=Users,DC=site,DC=orgname,DC=de")
$searcher=New-Object DirectoryServices.DirectorySearcher($SR)
$searcher.Filter="(&(objectCategory=User))"
$results=$searcher.findall()

$allinfo = @()

foreach ($usr in $results)
{
    $info = "" | Select Name,Date
    $usrdata = $usr.Properties

    #Without [0] you get curly brackets in username output

    $info.Name = $usrdata.name[0]
    $info.Date = [DateTime]::FromFileTime($usrdata.pwdlastset[0]).ToString("d")
    $allinfo += $info
}

이제 format-table을 사용하여 간단히 인쇄하거나 형식을 지정할 수 있는 정보가 포함된 배열이 생겼습니다.

$allinfo

$allinfo | format-table

$allinfo | export-csv -NoTypeInformation c:\allinfo.csv

관련 정보