在Powershell中的CSV文件中获取用户计数和实际用户数据

时间:2018-08-09 08:58:35

标签: powershell powershell-v2.0 powershell-v3.0 powershell-v4.0

我试图通过get-aduser获取用户数和实际用户信息,但失败了。

    Get-ADUser -Server $test -Credential $1cred -Filter{enabled -eq $true} | Where-Object { $_.DistinguishedName -notlike '*OU=.Service Accounts,*' -and $_.samaccountname -notlike '*health*' } | Select-object Samaccountname,surname,givenname | Where { $excludedusers -NotContains$_.Samaccountname } | format-list > 'C:\Scripts\Test\enabled_users_and count.csv'

是当前代码。我可以在format-list之前添加一个.count,例如:

(Get-ADUser -Server $test -Credential $1cred -Filter{enabled -eq $true} | Where-Object { $_.DistinguishedName -notlike '*OU=.Service Accounts,*' -and $_.samaccountname -notlike '*health*' } | Select-object Samaccountname,surname,givenname | Where { $excludedusers -NotContains$_.Samaccountname }).count

但是我只得到用户数,如前所述,我需要两者。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您需要两件事,Count不必是csv中的一个字段,您可以通过最终输出的行数来获取它

您可能需要计数以供控制台使用,但是将其保存在最终输出中在逻辑上是不合适的。 (如果我理解正确)

您可以将其保存到变量中,然后进行导出或计数检查...

$Users = Get-ADUser -Server $test -Credential $1cred -Filter{enabled -eq $true} | 
Where-Object { $_.DistinguishedName -notlike '*OU=.Service Accounts,*' -and $_.samaccountname -notlike '*health*' } |
Where { $excludedusers -NotContains $_.Samaccountname }

导出:

$Users | Select-object Samaccountname,surname,givenname | 
Export-CSV 'C:\Scripts\Test\enabled_users_and count.csv'

检查计数:

$Users.Count