我正在尝试为外部访客登记系统导出特定办公室中所有用户的列表。除了一些用户(大约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"结果与预期一致(需要排除的用户除外)...
任何帮助都是非常感谢的!
发布于 2019-06-28 23:40:17
假设没有自定义属性或其他方法来标识这些用户/在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最终为空,代码仍然会成功。您可以很容易地简化这一点,但这是我想要减轻的事情。
https://stackoverflow.com/questions/56809423
复制相似问题