powershell - 如何从 Powershell 中的 Get-ADuser cmdlet 输出中排除多个用户?
问题描述
我正在尝试为外部客人登记系统导出特定办公室中所有用户的列表。除了一些用户(大约 20 个左右)不被添加到公共目录之外,我需要将它们从输出中排除。
这是我到目前为止所拥有的...
Get-ADUser -Filter {City -eq "Dallas"} -Properties GivenName, Surname, EmailAddress, Name |
Select GivenName, Surname, EmailAddress, Name |
Sort-Object -Property GivenName |
Export-Csv $env:USERPROFILE\Desktop\ADusers.csv -NoTypeInformation -Force
例如,我希望避免长过滤线...
-filer {(name -ne "name 1")(name -ne "name 2")...} etc
理想情况下,我想创建一个列出指定用户的变量。这样我以后可以轻松修改。
$excluded = "Name 1","Name 2","Name 3","Name 4"
结果符合预期(需要排除的用户除外)...
任何帮助是极大的赞赏!
解决方案
假设没有自定义属性或其他方式来识别这些用户/已经在 ActiveDirectory 中将它们分开,您可以做的一件事就是从您的名称数组构建过滤器字符串
$excluded = "Name 1","Name 2","Name 3","Name 4"
$namefilter = ($excluded | ForEach-Object{"name -ne '$_'"}) -join " -and "
$cityfilter = "City -eq 'Dallas'"
Get-ADUser -Filter ($cityfilter, $namefilter -join " -and ") -Properties GivenName, Surname, EmailAddress, Name
所以过滤器实际上是这样的:
City -eq 'Dallas' -and name -ne 'Name 1' -and name -ne 'Name 2' -and name -ne 'Name 3' -and name -ne 'Name 4'
它可能看起来很复杂,但$cityfilter, $namefilter -join " -and "
允许在不更改代码的情况下丢失其中一个过滤器。因此,如果$excluded
最终为空,代码仍然会成功。你可以很容易地做到这一点,但这是我想减轻的。
推荐阅读
- reactjs - 反应没有结束标签
- javascript - Discord.js,切换命令
- .htaccess - 将文件从根目录传输到另一个目录时的 RewriteRule
- r - 如何使用 R 中的命令 heatmap() 修复错误“x”必须是数字矩阵?
- clojure-core.logic - “事实数据库”不是迷你看人的核心功能吗?
- android - AlertDialog 未显示
- pandas - 如果我在熊猫中四舍五入到小数点后两位,我在熊猫中只得到一位小数
- python - 如何设置绘图的背景颜色和网格线的颜色?
- r - 如何在使用 ggpplot2 创建的条形图的条形图中制作和自定义部分?
- python-2.7 - AttributeError: 'NoneType' 对象没有使用 OpenCV 的属性 'shape'