我正在尝试导入包含以下字段的CSV文件:
Ticket User
1234657 ABC1234
2456875 ABC9876
用户= SamAccountName
我有以下代码:
$File = Import-CSV C:\\file.csv
$File | ForEach { Get-ADUser -Identity ($_.User) -Properties * | Select-Object SamAccountName, DisplayName, @{Name=’Ticket';Expression={$_.ticket}}}
输出如下所示:
SamAccountName DisplayName Ticket
-------------- ----------- ------
ABC1234 John, Doe
ABC9876 Jane, Doe
因此,在输出表格中没有填充票证的情况正在发生...... 我希望它看起来如下:
SamAccountName DisplayName Ticket
-------------- ----------- ------
ABC1234 John, Doe 1234657
ABC9876 Jane, Doe 2456875
有人知道我的代码出错吗?
另外,如果我只做$ _。票证而不是表达式语句,它会将单个票号作为我的标题... 例如:
SamAccountName : ABC1234
DisplayName : John, Doe
Description : New Account
enabled : True
1234657 : {}
SamAccountName : ABC9876
DisplayName : Jane, Doe
Description : New Account
enabled : True
2456875 : {}
答案 0 :(得分:0)
$_
时,<Get-ADUser
是Select-Object
的输出。您需要在foreach循环开始时保存票证。尝试:
$File = Import-CSV C:\\file.csv
$File | ForEach {
#Save ticket
$ticket = $_.ticket
Get-ADUser -Identity ($_.User) -Properties * |
Select-Object SamAccountName, DisplayName, @{Name='Ticket';Expression={$ticket}}
}
答案 1 :(得分:0)
将Get-ADUser的结果传递给Select-Object时,就是$ _中的内容。不是您的原始CSV。这是一个解决方案:
$File | ForEach {$t = $_.Ticket; Get-ADUser -Identity ($_.User) -Properties * | Select-Object SamAccountName, DisplayName, @{Name=’Ticket';Expression={$t}}}