Powershell表达式哈希表到CSV
我试图将我从ActiveDirectory中提取的一些数据输出到CSV中,但输出不是我所期望的。如何将这些哈希表值导出到CSV中?我毫不怀疑有一个简单的答案,但我的谷歌fu今天似乎让我失望Powershell表达式哈希表到CSV,powershell,Powershell,我试图将我从ActiveDirectory中提取的一些数据输出到CSV中,但输出不是我所期望的。如何将这些哈希表值导出到CSV中?我毫不怀疑有一个简单的答案,但我的谷歌fu今天似乎让我失望 foreach ($user in $user_data) { @{ name = 'DisplayName'; expression = { $user.DisplayName } }, @{ name = 'Email'; expre
foreach ($user in $user_data)
{
@{ name = 'DisplayName'; expression = { $user.DisplayName } },
@{ name = 'Email'; expression = { $user.EmailAddress } },
@{ name = 'AccountName'; expression = { $user.SamAccountName } },
@{ name = 'Description'; expression = { $user.Description } },
@{ name = "PasswordLastSet"; expression = { [datetime]::FromFileTime($user.pwdLastSet) } },
@{ name = 'Staff Number'; expression = { $user.pager } },
@{ name = 'LastBadPasswordAttempt'; expression = { $user.LastBadPasswordAttempt } },
@{ name = 'LastLogonDate'; expression = { $user.LastLogonDate } },
@{ name = 'logonCount'; expression = { $user.logonCount } },
@{ name = 'Enabled'; expression = { $user.Enabled } } |
Export-Csv $path2 -Append -NoTypeInformation
}
由于您使用的是计算属性语法,因此只需使用
Select Object
即可,而无需循环:
$user_data | Select-Object @{ name = 'DisplayName'; expression = { $_.DisplayName } },
@{ name = 'Email'; expression = { $_.EmailAddress } },
@{ name = 'AccountName'; expression = { $_.SamAccountName } },
@{ name = 'Description'; expression = { $_.Description } },
@{ name = "PasswordLastSet"; expression = { [datetime]::FromFileTime($_.pwdLastSet) } },
@{ name = 'Staff Number'; expression = { $_.pager } },
@{ name = 'LastBadPasswordAttempt'; expression = { $_.LastBadPasswordAttempt } },
@{ name = 'LastLogonDate'; expression = { $_.LastLogonDate } },
@{ name = 'logonCount'; expression = { $_.logonCount } },
@{ name = 'Enabled'; expression = { $_.Enabled } } |
Export-Csv $path2 -NoTypeInformation
对于您想要的输出,我想最好使用自定义对象数组
$users = @()
ForEach($user in $user_data)
{
$users += New-Object PSObject -Property @{
DisplayName = [String]$user.DisplayName;
Email = [String]$user.EmailAddress;
AccountName = [String]$user.SamAccountName;
Description = [String]$user.Description;
PasswordLastSet = [datetime]::FromFileTime($user.pwdLastSet);
StaffNumber = [String]$user.pager;
LastBadPasswordAttempt = [datetime]::FromFileTime($user.LastBadPasswordAttempt);
LastLogonDate = [datetime]::FromFileTime($user.LastLogonDate);
logonCount = [Int]$user.logonCount;
Enabled = [Bool]$user.Enabled;
}
}
$users | Export-Csv -Path $path2 -NoTypeInformation
既然可以输出自定义对象,为什么还要使用哈希表呢。谢谢你们,我知道我正在使用计算属性语法。这可能就是为什么我的谷歌搜索引擎没那么好用的原因。再次感谢