查找具有特定AD属性的AD用户NOT null


12

我正在寻找一个脚本/ Powershell命令,该命令将列出在teletexterminalidentifier属性中具有 NULL 值的所有AD用户,因此他们必须设置一个值。

默认情况下,未设置此属性,但是我们有一个可修改此属性(包含十六进制字符串)的应用程序,因此,我正在寻找所有将此属性设置为某些值的用户的列表。

谢谢!


2
你有尝试过吗?
Alex McKenzie

1
是的,但是我想我终于想通了,主要是通过阅读帮助文件进行的:) Get-ADUser -Filter'teletexterminalidentifier -ge 0'| Export-Csv c:\ list.csv似乎可以工作。我该怎么做,但是要同时导出teletexterminalidentifier属性的值?
约翰

Answers:


10

您应该可以使用以下方法吸引用户:

Get-ADUser -Filter 'teletexterminalidentifier -like "*"'

然后,您可以通过以下命令过滤所需的内容:

Get-ADUser -Filter 'teletexterminalidentifier -like "*"' | Select-Object name,teletexterminalidentifier | Export-Csv file.csv

在哪里Select-Object,您可以选择要从名称中获取信息的字段。


不幸的是,我得到Get-ADUser:错误解析查询:“ teletexterminalidentifier”-类似于“ *”错误消息:位置“ 1”处出现“语法错误”。
2014年

您导入模块了吗?
Colyn1337

是。当我将命令更改为Get-ADUser -Filter'teletexterminalidentifier -like“ *”'| export-csv c:\ list6.csv它起作用。只是对语法进行了少许修改。
约翰

4

我认为您正在寻找的是Where-Object cmdlet。以下是一些伪代码可以帮助您:

Get-ADUser -Filter * | Where-Object {$_.teletexterminalidentifier -ne $null} | Export-Csv c:\list.csv

该命令提示我提供“过滤器”的值PS C:\ Users \ admin \ Desktop> Get-ADUser | 哪里对象{$ _。teletexterminalidentifier -ne $ null} | 在命令管道位置1处的Export-Csv c:\ list4.csv cmdlet Get-ADUser提供以下参数的值:(键入!?以获取帮助。)过滤器:
Johan 2014年

1
@Johan我在示例中添加了过滤器参数。
Colyn1337

1

如果要基于此属性筛选用户,则必须将-properties开关添加到Get-ADuserCmdlet。实际上,如果没有此开关,它将仅加载用户对象的基本属性(成员)。

因此,这是实现所需内容的完整命令:

Get-ADUser -filter * -Properties * | ? {$_.teletexterminalidentifier -ne $null} | Select-Object CN,SamAccountName,Teletexterminalidentifier

它将产生这种结果: 在此处输入图片说明

然后,您将能够将结果导出为所需的格式。

希望这可以帮助 !

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.