【问题标题】:Powershell get lastlogonDate of all servers in OUPowershell获取OU中所有服务器的lastlogonDate
【发布时间】:2020-10-04 15:11:47
【问题描述】:

我正在尝试使用 Powershell 获取 OU 中所有服务器的最后一次登录日期。

我的脚本能够收集数据,但无法将其写入 csv 报告。 (当前版本仅填充 csv 文件中的服务器名称,而不是操作系统和登录日期字段) 需要帮助调整输出,如果你能提出改进建议也很好

$allservers = get-adcomputer -filter * -searchbase "ou=important, ou=Member Servers, dc=contoso, dc=com" | select-object -expand name
$File = "$(Get-Date -Format ddMMyy_HHmmss)"

foreach ($server in $allservers) {
    Get-ADComputer -Identity $server -Properties * | format-table Name, LastLogonDate, OperatingSystem 
    $Props = [ordered]@{
        ServerName      = $server
        OperatingSystem = $server.OperatingSystem
        LastLogonDate   = $server.LastLogonDate
    }

    $Obj = New-Object psobject -Property $Props
    $obj | Export-Csv -Path .\$File.csv -NoTypeInformation -Encoding UTF8 -Append
}

【问题讨论】:

    标签: windows powershell active-directory export-to-csv


    【解决方案1】:

    我怀疑您认为 foreach 块中的第一个调用实际上是在使用 $server 变量。您确实正在从 AD 加载所有属性,但它们仅以Format-Table 打印到控制台,而不是分配给$server

    如果您将第二个 Get-ADComputer 调用更改为此,它将起作用。 替换

    Get-ADComputer -Identity $server -Properties * | format-table Name, LastLogonDate, OperatingSystem
    

    用这个:

    $server = Get-ADComputer -Identity $server -Properties * 
    $server | format-table Name, LastLogonDate, OperatingSystem 
    

    但是,我可能会用这个替换整个东西,它会做同样的事情:

    $File = "$(Get-Date -Format ddMMyy_HHmmss)"
    Get-ADComputer -Filter * -SearchBase "ou=important, ou=Member Servers, dc=contoso, dc=com" -Properties LastLogonDate,OperatingSystem | 
        Select-Object DistinguishedName, LastLogonDate, OperatingSystem | 
        Export-Csv -Path .\$File.csv -NoTypeInformation -Encoding UTF8
    

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2021-07-09
      相关资源
      最近更新 更多