powershell - Get-ADuser 脚本问题
问题描述
我想将 CSV 文件中的电子邮件地址列表与我们的 Active Directory 进行比较。我很难将所有部分放在一起。
伪代码:
- 将电子邮件地址列表导入到我公司活动目录的查询中。
- 加入电子邮件地址。
- 仅返回那些在 AD 中启用帐户的记录。
代码:
Import-Csv users.csv |
Get-ADUser -Filter {mail -eq $_.mail } |
where {$_.enabled -eq $true} |
Select-Object -Property DistinguishedName, samaccountname, mail, enabled
我想我需要为 SearchBase 添加其他信息,但我不知道如何添加它。
例如:-SearchBase "DC=na,DC=corp,DC=<company name>,DC=com"
在 CSV 文件中是一列。列名是邮件。我试图加入的 AD 属性是邮件。
解决方案
您可以将 csv 导入存储在一个变量中,并获取您拥有的 AD 中的所有电子邮件地址,Compare-Object
在列表之间使用,然后针对结果使用 foreach。
$matchingUsers = New-Object System.Collections.ArrayList
$csv = import-csv users.csv
$emails = $(get-aduser -filter * -Properties mail,Enabled | ? {$_.Enabled -eq $True} | select mail).mail
$comparison = $($(compare-object -ReferenceObject $a -DifferenceObject $b -IncludeEqual)| ? {$_.SideIndicator -eq '=='}).InputObject
foreach($object in $comparison) {
$user = Get-ADUser -Filter {mail -eq $object} -SearchBase "DC=na,DC=corp,DC=,DC=com" -Properties DistinguishedName,samaccountname,mail,enabled
$matchingUsers.Add($user)
}
然后导出$matchingUsers
,格式化为表格,之后您需要的任何内容
推荐阅读
- clearcase - 有没有其他方法可以在 OMAKE 中格式化我的 %echo 输出(而不是使用 cygwin printf.exe,而是使用 OMAKE 它自己的任何本地化语法)
- r - 如何在 R 中使用 draw.pairwise.venn 更改维恩图的背景颜色?
- node.js - 从异步钩子 HTTPINCOMINGMESSAGE 获取 HTTP 标头/正文
- python - HDBSCAN 近似预测总是返回 0 的概率
- kubernetes - 用于获取 Kubernetes 集群的不记名令牌的 Rest 端点
- java - 简易巴士预约席
- javascript - 我有一个简单的博客网站,如果我添加帖子或编辑帖子,并转到存储帖子的主页状态未保存
- c++ - 为什么我的函数接收到错误的指针,并且堆栈已损坏?
- javascript - 无法比较 JSON 对象值(相同的对象值,从 0 到 n)
- tensorflow - 将不同高宽的tensorflow模型转成.pb格式