Estou tentando obter uma lista de nomes de usuários e seus atributos pwdlastset em um DC do Windows Server 2008. Estou usando serviços de diretório porque não há adutils instalados. O script está funcionando, mas sou inexperiente com PowerShell e gostaria de saber como melhorar a formatação da saída. Atualmente, os nomes e as datas dos usuários são impressos em uma nova linha. Eu recebo algo assim:
usuário1
pwdlastsetdate
usuário2
pwdlastsetdate
Como posso conseguir algo como
usuário1;pwdúltimadata
usuário2;pwdúltimadata
Obrigado!
Este é o script que estou usando:
$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")
}
Responder1
Você poderia criar um array personalizado fazendo algo assim:
$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
}
Agora você tem um array com as informações que você pode simplesmente imprimir ou formatar usando format-table
$allinfo
$allinfo | format-table
$allinfo | export-csv -NoTypeInformation c:\allinfo.csv