powershell - 导入 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
解决方案
为了Export-Csv
,您需要某种类型的输入。目前您没有导出任何内容。
理想情况下,您希望创建一个包含所有项目的数组,然后导出该数组。
$x = @()
ForEach ($User In $Users)
{
$x += [pscustomobject]@{
FirstName = $User.FirstName
LastName = $User.LastName
#etc...
}
}
$x | Export-Csv -Path "$logdate.ADEnabled-Disabled.csv"
你有一些小问题,但我认为这会让你朝着实际结果努力。
推荐阅读
- android - 如何将切换按钮添加到右侧工具栏?
- javascript - 如何防止javascript并行运行一些编辑文档的代码?
- python - 为什么 pytest 中的列表与控制台的输出不同?
- django - 密码确认错误未显示在 django 表单中
- jquery - 如何在不使用数据库、PHP、SQL 的情况下存储数据
- c# - c#如何在wcf服务中为登录页面创建Get和Post方法
- c# - GeckoFx 加载页面灰色
- r - 求一天的最小值和最大值对应的时间
- java - 生成消息方法
- c# - 无法将类型 void 隐式转换为 System.Collections.GenericList