gpt4 book ai didi

powershell - 编辑 CSV 标题

转载 作者:行者123 更新时间:2023-12-03 00:16:44 26 4
gpt4 key购买 nike

我有个要求。作为其中的一部分,我正在尝试将 Exchange 邮箱上的 ACL 导出到 CSV 并稍后再导入。 Exchange 邮箱权限的属性之一是数组,因此我们的 CSV header 具有 $_.AccessRights作为数组的标题,因为我们使用 Select {$_.AccessRights}导出这个数组。

导入时出现问题是因为Import-Csv不会喜欢这个。我试图找到一种方法来编辑 $_.仅用于该属性的标题并在再次导入之前重新写入文件。试过Import-Csv -HeaderGet-Object-replace到目前为止没有运气。还有其他想法吗?

编辑:我实际上不只是想做 Import-Csv但实际上试图运行 run Add-MailboxPermission - 用于在邮箱上导入 ACL 的 Exchange 脚本。所以,我试图运行的代码是

Import-Csv $ACLExportFile | foreach { Add-MailboxPermission -Identity $_.Identity -user $_.user -AccessRights $_.AccessRights | Out-File $LogACLImport -append }

其中 $ACLExportFile 是我之前使用导出的权限文件
Get-Mailbox -identity $OldUser | Get-MailboxPermission | Select {$_.AccessRights}, Deny, InheritanceType, User, Identity, IsInherited, IsValid | Export-Csv $ACLExportFile

我得到的示例文件是
Uploaded to Google Drive here

最佳答案

不确定是否理解问题。
看看Select-Object CmdLet,你可以提供一个属性参数,可以是一个新的计算属性。要创建计算属性,请使用哈希表。有效的键是:
-- 名称(或标签)
-- 表达式或

-Property @{Name="AccessRights";Expression={$_.AccessRights}}

编辑 :
在您的情况下,当您导出时,您应该使用:
Get-Mailbox -identity $OldUser | Get-MailboxPermission | Select @{Name="AccessRights"; Expression={$_.AccessRights}}, Deny, InheritanceType, User, Identity, IsInherited, IsValid | Export-Csv $ACLExportFile

这样您就可以像这样导入:
Import-Csv $ACLExportFile | foreach { Add-MailboxPermission -Identity $_.Identity -user $_.user -AccessRights $_.AccessRights | Out-File $LogACLImport -append }

关于powershell - 编辑 CSV 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32527593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com