我在一个拥有大约1000名用户的测试环境中工作,我正在尝试使用以下标题创建一个CSV,以便在Elastix中使用:显示名称,用户扩展,秘密,技术。
用户目前没有分配扩展名,随机扩展名也没问题。秘密将是" 123456"对于他们所有人。技术将是" Sip"对所有人来说。
目前我有这个,但我正努力在我的循环中删除每个用户的名字:
$users = get-aduser -filter * | Select Name
$outpath = "C:\scripts\users.csv"
$outputArray =@()
"Display Name, User Extension, Secret, Tech"|out-file $outpath -Force
$ext = 1000
foreach($row in $users)
{
$outputArray += "," + $ext++ + "," + "123456" + "," + "Sip"
}
$outputArray | out-file $outpath -Force
答案 0 :(得分:0)
使用可以使用带有'计算属性的Select-Object cmdlet来执行此操作。和Export-Csv cmdlet。
(注意:在我的原始答案中,我没有在表达式中修改randomExtension变量的脚本范围。在尝试修复时,我在此处找到了解决方案:How can I increase the value of a variable in an expression?
$outputPath = "C:\test\users.csv"
$script:randomExtension = 1000
get-aduser -filter * |
Select @{n='Display Name';e={$_.Name}},
@{n='User Extension';e={$script:randomExtension++; $script:randomExtension}},
@{n='Secret';e={'123456'}},
@{n='Tech';e={'Sip'}} |
Export-Csv -Path $outputPath -NoTypeInformation