получение некоторых атрибутов, другие отсутствуют в цикле запросов - PullRequest
1 голос
/ 15 апреля 2019

У меня есть сценарий PS, который зацикливает AD, чтобы получить атрибут lastlogon плюс другие. Я хочу получить displayName, SamAccountName, whenCreated, когдаChanged, отличительное имя и время последнего входа в систему. Теперь все работает нормально, за исключением того, что в выходном CSV отсутствуют атрибуты displayName, whenCreated и whenChanged.

Я озадачен тем, что это работает для некоторых атрибутов, а не для других.

Вот мой код:

Import-Module ActiveDirectory

function Get-ADUsersLastLogon() {
  $dcs = Get-ADDomainController -Filter {Name -like "*"}
  $users = Get-ADUser -Filter * -SearchBase "ou=Other Users,ou=Users,ou=Items,dc=mydc,dc=,dc=com"
  $time = 0
  $exportFilePath = "c:\tmp\lastLogon $(get-date -f dd-MM-yyyy).csv"
  $columns = "name;username;whencreated;whenchanged;DNname;datetime"

  Out-File -FilePath $exportFilePath -Force -InputObject $columns

  foreach ($user in $users) {
    foreach ($dc in $dcs) {
      $hostname = $dc.HostName
      $currentUser = Get-ADUser $user.SamAccountName |
                     Get-ADObject -Server $hostname -Properties lastLogon

      if ($currentUser.LastLogon -gt $time) {
        $time = $currentUser.LastLogon
      }
    }

    $dt = [DateTime]::FromFileTime($time)
    $row = $user.displayName + ";" + $user.SamAccountName + ";" +
           $user.whenCreated + ";" + $user.whenChanged + ";" +
           $user.distinguishedName + ";" + $dt

    Out-File -FilePath $exportFilePath -Append -NoClobber -InputObject $row

    $time = 0
  }
}

Get-ADUsersLastLogon
...