我从外部系统收到CSV文件形式的用户帐户列表,并尝试将samAccountname
添加到新帐户。
CSV看起来像这样:
Name;Surname;EMail;Company;Position;Department;Manager
Testie;Testface;[email protected];Our Company;His or her Position;A fancy department name;The Manager
字符串
我想做的是添加一个新的列与用户的SamAccountName
,这样我就可以正确地使用列表它在我的广告后,到现在为止,我发现半打的方法,但没有一个想做正确的。
我得到的最接近的是有一些代码运行没有错误,但在CSV中没有效果或在CSV文件中的错误效果。我已经尝试了foreach
和Foreach-Object
方法,但我不能得到我想要的地方。因为我不是PowerShellMaven,我不能自己解决问题。这里有人可以帮助吗?
这是我的方法之一:
$CSVData = Import-Csv 'C:\test.csv' -Delimiter ';'
foreach ($f in $CSVData) {
$sam = Get-ADUser -Filter "GivenName -eq '$f.Name' -and SurName -eq '$f.Surname'" | Select-Object -ExpandProperty 'SamAccountName'
$CSVData | Select-Object *, @{Name = 'samAccountName'; Expression = { $sam } }
} | Set-Content 'C:\output.csv'
型
我可以张贴更多,但我认为这是没有帮助的,我的猜测是,它将不得不重写无论如何。
1条答案
按热度按时间ars1skjm1#
你的代码有两个主要问题:
1.不能在language keyword(在本例中为
foreach
语句)之后使用管道。'$f.Name'
和'$f.Surname'
不能在过滤器字符串中展开,您可以使用子表达式运算符$( )
来允许这些值展开,如下所示。字符串