我正在尝试获取 Windows Server 2008 DC 上的用户名及其 pwdlastset 属性的列表。我正在使用目录服务,因为没有安装 adutils。该脚本正在运行,但我对 powershell 不熟悉,想知道如何改进输出格式。目前,用户名和日期分别打印在新行中。我得到如下结果:
用户1
上次设置密码日期
用户2
上次设置密码日期
我怎样才能得到类似的东西
用户1;上次设置密码的日期
用户2;上次设置密码的日期
谢谢你!
这是我正在使用的脚本:
$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