Powershell 更改哈希值表中列之间的列标题

Powershell 更改哈希值表中列之间的列标题,powershell,powershell-3.0,Powershell,Powershell 3.0,我有一个表变量,可以像csv文件一样处理 "SamAccountName","lastLogonTimestamp","AccountExpires","givenname","sn","distinguishedName","employeeNumber","employeeID","Description","extensionattribute8","userAccountControl" "value1","value1","value1","value1","value1","valu

我有一个表变量,可以像csv文件一样处理

"SamAccountName","lastLogonTimestamp","AccountExpires","givenname","sn","distinguishedName","employeeNumber","employeeID","Description","extensionattribute8","userAccountControl"
"value1","value1","value1","value1","value1","value1","value1","value1","value1","value1","value1"
"value2","value2","value2","value2","value2","value2","value2","value2","value2","value2","value2"
"value3","value3","value3","value3","value3","value3","value3","value3","value3","value3","value3"
我想做的是将两个标题名
givenname
更改为
FirstName
,将
sn
更改为
LastName

注意:我还想更改
lastLogonTimestamp
AccountExpires
的值,但我已经有了执行此操作的工作代码。此代码如下所示

$listOfBadDateValues = '9223372036854775807', '9223372036854770000', '0'
$maxDateValue = '12/31/1600 5:00 PM'

$tableFixed = $table | % { 
    if ($_.lastLogonTimestamp) {
        $_.lastLogonTimestamp = ([datetime]::FromFileTime($_.lastLogonTimestamp)).ToString('g')
    }; if (($_.AccountExpires) -and ($listOfBadDateValues -contains $_.AccountExpires)) {
        $_.AccountExpires = $null
    } else {
        if (([datetime]::FromFileTime($_.AccountExpires)).ToString('g') -eq $maxDateValue) {
            $_.AccountExpires = $null
        } Else {
            $_.AccountExpires = ([datetime]::FromFileTime($_.AccountExpires)).ToString('g')
        }
};$_}

如何编写代码,以便将两个标题名更改为FirstName和LastName?

您只需将对象导入select语句,以“别名”属性名即可

$yourObject | Select-Object -Property @{N='MyNewName1';E={$_.ExistingName1}}, @{N='MyNewName2';E={$_.ExistingName2}} 

最直接的方法是使用您想要的名称构造一个新对象,而不是返回
$\uu
。用这种方法,我必须将对象附加到表中,然后删除其他对象。然后对列重新排序。我认为一个更简单的方法是导出到csv文件,并在第一行使用-replace。它也不是最干净的,但我不必处理新建、删除旧列和重新排序列的问题。我希望有一种简单的方法来访问和使用-替换表中的这两个字符串,但我想不是。您可以使用Select对象完成所有这些操作-更改值、重新排列列等。但是,如果希望它简单明了,您可能应该从CSV导入对象,只需使用新的对象类型PSObject-Property@{…并将它们附加到新的$CollectionFobjects。