2016-03-08 76 views
0

我试图导入具有以下字段的CSV文件:Powershell的获取-ADUser便有和Import-CSV

Ticket  User 
1234657  ABC1234 
2456875  ABC9876 

其中User = SAM帐户

我有以下代码:

$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}} 
} 
+0

这正是我一直在寻找,很简单,但不是在所有的我的心。感谢! –

0

当您将Get-ADUser的结果传递给Select-Object时,这就是$ _中的内容。不是你的原始CSV。这里是一个解决方案:

$File | ForEach {$t = $_.Ticket; Get-ADUser -Identity ($_.User) -Properties * | Select-Object SamAccountName, DisplayName, @{Name=’Ticket';Expression={$t}}}