【发布时间】:2020-11-21 05:09:57
【问题描述】:
大家好!
我完全不熟悉 powershell 脚本。我的经理要求我为我们将使用的新系统编写集成脚本。我想捎带我们每晚生成的 HR 集成文件中的标题,并将这些值输入到具有不同标题的 CSV 文件中。新系统需要这些特定的标头。捎带的原因是因为我们在 AD 中没有为 UserStatus 定义的属性。该列中的值对新系统至关重要。它将确定是否从系统中添加或删除用户。
这是我当前的脚本:
$dateString = Get-Date -Format yyyyMMdd
$users = Import-Csv -Path "c:\scripts\XXXXXX\ActiveDirectory_$dateString.csv" -Header `
'PreferredName,Last,EmployeeID,Email,UserStatus'
$OutFile = "C:\Scripts\XXXXXX\Test\DeltaFeed_$dateString.csv"
$Outheader = "Funds,Firstname,Lastname,Employeenumber,Email,Action"
Add-Content -Path $OutFile -Value $Outheader
$userFunds = "XXXX"
$action = if ($_.UserStatus -eq 'A')
{'A'}
elseif ($_.UserStatus -eq 'T')
{'D'}
ForEach ($user in $users)
{
$outstring = $userFunds + "," + $_.PreferredName + "," + $_.Last + "," + $_.EmployeeID + "," + $_.Email + "," + $action
Add-Content -Path $OutFile -Value $outstring
}
我遇到的问题是输出文件有标题,但每列中没有值。我不太确定我在这里做错了什么。我不习惯这种语法。
【问题讨论】:
-
使用
Select-Object或[PSCustomObject]构建一个新的自定义集合,将旧道具映射到新道具...然后使用Export-Csv将内容发送到新文件。 ///// 尝试永远不要手动构建 csv 文件... [grin]
标签: powershell csv integration