【问题标题】:Change column title between columns in table of hash values更改哈希值表中列之间的列标题
【发布时间】:2016-01-25 18:19:35
【问题描述】:

我有一个可以像 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

注意:我还想更改 lastLogonTimestampAccountExpires 的值,但我已经有了执行此操作的工作代码。这段代码如下...

$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?

【问题讨论】:

标签: powershell powershell-3.0


【解决方案1】:

您可以简单地获取对象并将其通过管道传递给 select 语句以“别名”属性名称。

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

【讨论】:

  • 通过这种方式,我必须将对象附加到表中,并删除其他对象。然后重新排序列。我认为更简单的方法是只导出到 csv 文件,并在第一行使用 -replace。它也不是最干净的,但我不必处理新的、删除旧的和重新排序的列。我希望有一种简单的方法可以访问和使用 -replace 表中的这两个字符串,但我猜不是。
  • 您可以使用 Select-Object 执行所有这些操作 - 更改值、重新排序列等。但是,如果您希望它简单明了,您可能应该从 CSV 导入对象,然后使用 New-Object -Type PSObject -Property @{.... 并将它们附加到新的 $collectionOfObjects 中。
猜你喜欢
  • 2016-12-23
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2013-03-16
相关资源
最近更新 更多