我有一个有趣的问题。我创建了一个函数来获取OU中的所有用户,并检查他们最后一次登录到任何一个域控制器。现在我的问题是,我在powershell窗口中得到了正确的输出,我似乎无法将输出转换为txt或csv文件。任何帮助都会有很大帮助
$currentdate = Get-Date
$currentdate | Out-File report.txt -Append
function Get-ADUserLastLogon([string]$userName,$array,$datetime)
{
$dcs = Get-ADDomainController -Filter {Name -like "*"}
$time = 0
foreach($dc in $dcs)
{
$hostname = $dc.HostName
$user = Get-ADUser $userName | Get-ADObject -Properties lastLogon
if($user.LastLogon -gt $time)
{
$time = $user.LastLogon
}
}
$dt = [DateTime]::FromFileTime($time)
Write-Host $username "last logged on at:" $dt "`n"
}
$users = get-aduser -filter * -SearchBase "ou=Example,dc=Adatum,dc=co,DC=nz" -pr DistinguishedName
$i = 0
write-host "Getting all users in $ou"
while($true)
{
$i++
Get-ADUserLastLogon -UserName $users[$i] -array $i
if($users[$i] -eq $null)
{
break
}
$usrindex = $i
$dt | out-file report.txt -Append
$username | out-file report.txt -Append
}
答案 0 :(得分:0)
在您的函数中,创建一个对象数组,其中每个对象的类型为System.Object
,并且具有类型为NoteProperty
的属性,并以UserName,LastLogon等命名。然后,您可以将该数组导出到CSV很容易。有关示例,请参阅我对以下问题的回答:How to use two echo commands to print data on one line using PowerShell