首页 > 解决方案 > 导入 CSV 按 EmployeeID 属性查找 AD 帐户并导出到 CSV

问题描述

早上好,

我需要一个 Powershell 脚本来导入 csv,通过 AD 中的 EmployeeID 属性查找用户,然后导出 csv 以验证帐户是否已禁用。我只需要在导出中显示名称、员工 ID 和启用/禁用。

我对 Powershell 还是很陌生,我通常可以剪切/粘贴和操作现有脚本来做我需要的事情,但我似乎无法让它工作,现在我的代码在老鼠拿到它后看起来就像瑞士奶酪。这就是我所拥有的,但我不确定我是否接近需要的东西。

#Script Starts
$Users = Import-Csv "\folder\Test.csv"

Import-Module ActiveDirectory
$path = Split-Path -parent ".\folder\*.*"

#Create log date
$logdate = Get-Date -Format yyyy-MM-dd-THH.mm.ss
$logfile = $path + "\logs\$logdate.logfile.txt"

ForEach ($User In $Users)
{
   # Retrieve values from the csv by header name.
   $FirstName = $User.FirstName
   $LastName = $User.LastName
   $ID = $User.Employee 

   #Search AD for Attributes
   $UserSN = (Get-ADUser -LDAPFilter "(employeeID=$ID)").sAMAccountName
   $UserDN = (Get-ADUser -Identity $UserSN -Properties DisplayName).DisplayName
   $Enabled = (Get-ADUser -Identity $UserSN -Properties Enabled).Enabled
   Export-Csv -Path $logdate.ADEnabled-Disabled.csv -Append
} 
#Finish

标签: powershellcsvattributesimport-csvexport-csv

解决方案


为了Export-Csv,您需要某种类型的输入。目前您没有导出任何内容。

理想情况下,您希望创建一个包含所有项目的数组,然后导出该数组。

$x = @()
ForEach ($User In $Users)
{
   $x += [pscustomobject]@{
     FirstName = $User.FirstName
     LastName = $User.LastName
     #etc...
   }
} 

$x | Export-Csv -Path "$logdate.ADEnabled-Disabled.csv"

你有一些小问题,但我认为这会让你朝着实际结果努力。


推荐阅读