【发布时间】:2016-04-28 18:30:27
【问题描述】:
我有一个从外部源 (NetSuite) 自动生成的 csv 文件 我希望使用 csv 文件中的数据来更新 Active Directory 用户帐户以添加或更新“经理”
NetSuite 为我提供了一个 csv 文件,其中包含电子邮件和管理器作为 2 个列标题。 电子邮件 - 包含员工的电子邮件地址,经理包含采用 Last,First 格式的经理姓名。
我想把这两列都转换成可以用的数据
Set-AdUser -Identity user.name -manager first.last
目标 1 是从电子邮件地址列中删除 @domain 目标 2 是将 Last, First 重新排序为 first.last
Import-Csv c:\test.csv
Email | Supervisor
user.1@test.com | "Number1, Manager"
user.2@test.com | "Number2, Manager"
我希望能够将其导出为如下所示的 csv 文件
Email | Supervisor
user.1 | Manager.Number1
user.2 | Manager.Number2
所以我想在 AD 中自动化 Employee - Manager 字段的工作流程是: 1. NetSuite 定时导出 csv 文件 2. PowerShell 脚本用于导入 NetSuite csv 并按所述编辑数据。 3. 将可用数据导出到新的 csv 4. 从新的 csv 到 Set-AdUser -Manager 的 PowerShell 脚本
我寻求指导的只是第 2 步和第 3 步
这可能吗?如果我自己解决这个问题,我会更新。
编辑
我已经弄清楚了目标 1 现在我需要做的就是从列中获取“Last, First”数据并将其更改为“First.Last”
edit 2 - 这似乎不能安静地工作......
$txt = import-csv .\book1.csv | % {
$_.Email = $_.Email -replace "@test.com", ""
$_
}
export-csv -InputObject $txt -NoTypeInformation .\newbook1.csv
【问题讨论】:
-
欢迎来到 StackOverflow,在此之前您可能需要阅读 how to ask a question。提供一些上下文来解释您需要什么,到目前为止您尝试了什么,以及为什么它没有按预期工作(即:错误消息等)。还可以考虑花时间格式化您的问题,以便读者容易理解。您可能需要编辑您的问题,以包括您在上面的 cmets 上发布的说明。
-
谢谢纳乔。我试图提供一些上下文。并将我的解决方案代码移动到 sn-p
-
搜索
-split和-join运算符 -
你的 csv 文件中的分隔符是什么。我认为它应该是一个逗号。那么您的 csv 中的值如何在 manager 列中包含逗号。请在您的问题中粘贴确切的源 csv 内容。
标签: csv powershell