powershell - 输入 .txt 文件并查找 Active Directory 并输出到 .CSV
问题描述
我有一个需要为其计算 AD 用户名的名称列表,该列表的格式与 AD 中的显示名称相同。
我运行了以下代码
Get-Content c:\test\users.txt |
Foreach-Object {Get-ADUser -filter "displayName -like '$($_)'" |
Select-Object SamAccountName,name} |
Export-Csv c:\test\output1.csv
这输出了用户名和名称的列表,但是它只输出了成功的名称解析。
我想做的是能够有一个名字列表来验证。这可能会返回错误,原因有两个:
- 名称不正确
- 用户已离开组织。
例如
input.txt
,将是显示名称格式的名称列表。
我想要的输出:
AD 用户名中存在原始输入 姓名 1 真实用户名 1 姓名 2 真实用户名 2 等错误检查
提前谢谢了
解决方案
您可以在管道中创建自定义对象。同样使用 LDAP 过滤器anr
(不明确的名称解析)可能会更好地处理名称列表,因为它会查找用户的多个属性以查找匹配项。
解决方案可能是这样的:
Get-Content "C:\test\users.txt" |
Foreach-Object {$user=get-aduser -ldapfilter "(anr=$_)"; `
[PSCustomObject]@{Name=$_; Username=$user.samaccountname; Exists=&{$user -ne $null}}} |
Export-Csv "c:\test\output1.csv"
推荐阅读
- swift - 错误:执行被中断,原因:信号 SIGABRT。在快速的操场上
- vue.js - nginx反向代理背后的Nuxt.js应用程序一次加载多个页面
- sequelize.js - 如何根据续集模型的数组类型属性进行选择?
- python - Python列表元素交换未按预期工作
- symfony - Symfony 3.4 - 使用数组作为输入字段的名称
- excel - PlotBy 指令不适用于 xlColumnStacked100 图表
- apache-spark - 三角洲湖中使用的 spark.databricks.delta.snapshotPartitions 配置是什么?
- react-native - SwitchNavigator 中的屏幕 导航时闪烁
- json - 无法将json文件导入spyder
- sql - SQL出现字符替换问题