我试图将这两个变量从函数中转移到txt或csv文件中

时间:2015-04-23 22:10:07

标签: powershell

我有一个有趣的问题。我创建了一个函数来获取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
}

1 个答案:

答案 0 :(得分:0)

在您的函数中,创建一个对象数组,其中每个对象的类型为System.Object,并且具有类型为NoteProperty的属性,并以UserName,LastLogon等命名。然后,您可以将该数组导出到CSV很容易。有关示例,请参阅我对以下问题的回答:How to use two echo commands to print data on one line using PowerShell