【发布时间】:2022-01-12 19:25:20
【问题描述】:
我是 IT 界的新手,但有以下问题:我正在根据某些标准从 AD 中导出用户(代码很杂乱但有效)。当我在 foreach 部分之前导出 CSV 文件时,它一切正常,但是我需要在我的连接列中以 0 开头的所有行前面添加 9 作为扩展属性 1 和 2 的数字。我正在尝试导入CSV 文件,然后再次编辑导出。
代码:
$cost = @{Name="Cost";Expression={$_.extensionattribute1,$_.extensionattribute2 -join ''}}
$id = @{Name="SAP ID";Expression={$_.samaccountname}}
get-aduser -properties samaccountname,co,extensionattribute1,extensionattribute2 -filter {(co -eq "Dxxxx") -and (enabled -eq "true") -and (samaccountname -like "1*" -or samaccountname -like "2*" -or samaccountname -like "3*")} | select $id,$cost | export-csv C:\Users\xxxx\Favorites\CCDxxx.csv -notypeinformation -encoding UTF8
$csv = import-csv C:\Users\xxxx\Favorites\CCDxxx.csv
$var = foreach($line in $csv){
if($cost -like "0*"){
$newcost = "9"+$cost
write-host $sam ";" $newcost}
if($cost -notlike "0*"){
$newcost = $cost
write-host $sam ";" $cost}
}
$var | export-csv C:\Users\xxxx\Favorites\CCxxx1.csv -notypeinformation -encoding UTF8
脚本会运行,但我缺乏知识不会导出任何内容。任何帮助将不胜感激。
附:如果我是出于您在这里的高标准提出的问题,请原谅我,但我会学习的。谢谢, 问候。
【问题讨论】:
-
请注意,对于 AD Cmdlet 使用基于
ScriptBlock的过滤器,即使它可能工作也不是真正支持的。您应该按照 Microsoft 的建议使用 查询字符串。作为使用ScriptBlock时可能发生的情况的示例:stackoverflow.com/questions/70126195/…
标签: powershell csv