【问题标题】:Powershell - cheking var is giving me the right results but Export-CSV gives numbersPowershell - cheking var 给了我正确的结果,但 Export-CSV 给出了数字
【发布时间】:2021-06-10 07:01:15
【问题描述】:

我想要的是 $report_groups val 在 Export-CSV 中为我提供我在终端中获得的输出。但我想不通他为什么给我数字。

$get_AD_Groups = Get-ADGroup -Filter '*' | Select-Object Name
$report_groups = New-Object -TypeName System.Collections.ArrayList

foreach ($item in $get_AD_Groups) {
    $get_users =  $item.Name | Get-ADGroupMember | Select-Object Name
    $disabled_user = 0

foreach ($user in $get_users) {
    $status = $user.Name | Get-ADUser -ErrorAction SilentlyContinue 
    
    if(($status.ObjectClass -eq 'user') -and ($status.Enabled -ne 'True')) {
         $disabled_user++   
    }
}

if ($get_users.Count -eq $disabled_user) {
   $report_groups.Add($item.Name)
}
}

$report_groups | Export-Csv -Path "..\report.csv" -NoTypeInformation -Force -Delimiter ";"

现在,当我在终端中运行 $report_groups 时,我会得到 AD 组的列表,但是一旦我执行 Export-CSV,这就是我得到的:

【问题讨论】:

  • 这意味着您将 STRINGS 发送到导出 cmdlet。您需要发送更复杂的结构化对象 - 例如 PSCustomObject 项目。看一下 >>> '' | select * Length。 [咧嘴]
  • 天哪,这进一步帮助了我。我现在要去某个地方哭x)。
  • 很高兴“帮助”了一点... [grin]
  • 您要查找所有成员(AD 用户)都被禁用的所有 AD 组,对吗?

标签: powershell export-to-csv


【解决方案1】:

再次感谢Lee_Dailey 在这方面的帮助。 已完成更改。

$report_groups = @()

if ($get_users.Count -eq $disabled_user) {
        $fill = [PSCustomObject]@{
            AD_GROUP = $item.Name
        }
        $report_groups += $fill
    }

【讨论】:

    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 2022-08-13
    • 2019-10-31
    • 1970-01-01
    • 2022-01-16
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多