Powershell 如何在特定列中显示具有空项的所有值

Powershell 如何在特定列中显示具有空项的所有值,powershell,active-directory,Powershell,Active Directory,我想提出一个CSV文件,其中包含所有用户Name、SamAccountName和Description,但是我们注意到有几个人没有描述。我要寻找的是如何编辑我现有的代码(我知道有一种简单的方法,我就是记不起来了),这样就可以过滤我的输出,这样它只显示没有描述的用户 Get ADUser-Filter*-属性名称,SamAccountName,Description-SearchBase“DC=REMOVED,DC=com”| ? {$\.Enabled-notlike“FALSE”} 选择名称、

我想提出一个CSV文件,其中包含所有用户
Name
SamAccountName
Description
,但是我们注意到有几个人没有描述。我要寻找的是如何编辑我现有的代码(我知道有一种简单的方法,我就是记不起来了),这样就可以过滤我的输出,这样它只显示没有描述的用户

Get ADUser-Filter*-属性名称,SamAccountName,Description-SearchBase“DC=REMOVED,DC=com”|
? {$\.Enabled-notlike“FALSE”}
选择名称、SamAccountName、描述|
导出Csv“C:\scripts\NoDescriptionUsers.Csv”

您需要在
Where对象
脚本块中添加另一个条件,因为您不能用LDAP查询过滤空值。一项建议:

Get ADUser-Filter*-属性名称,SamAccountName,Description-SearchBase“DC=REMOVED,DC=com”|
? {$\.Enabled-notlike“FALSE”-和[string]::IsNullOrEmpty($\.Description.Trim())}|
选择名称、SamAccountName、描述|
导出Csv“C:\scripts\NoDescriptionUsers.Csv”
我个人也会将启用的检查移动到
Get ADUser
中的过滤器中,以加快速度。现在DC将只向您发送已启用的用户,而不是所有用户。尝试:

Get ADUser-Filter{Enabled-eq$true}-Properties Name,SamAccountName,Description-SearchBase“DC=REMOVED,DC=com”|
? {[string]::IsNullOrEmpty($\u.Description.Trim())}|
选择名称、SamAccountName、描述|
导出Csv“C:\scripts\NoDescriptionUsers.Csv”

您需要在
Where对象
脚本块中添加另一个条件,因为您不能用LDAP查询过滤空值。一项建议:

Get ADUser-Filter*-属性名称,SamAccountName,Description-SearchBase“DC=REMOVED,DC=com”|
? {$\.Enabled-notlike“FALSE”-和[string]::IsNullOrEmpty($\.Description.Trim())}|
选择名称、SamAccountName、描述|
导出Csv“C:\scripts\NoDescriptionUsers.Csv”
我个人也会将启用的检查移动到
Get ADUser
中的过滤器中,以加快速度。现在DC将只向您发送已启用的用户,而不是所有用户。尝试:

Get ADUser-Filter{Enabled-eq$true}-Properties Name,SamAccountName,Description-SearchBase“DC=REMOVED,DC=com”|
? {[string]::IsNullOrEmpty($\u.Description.Trim())}|
选择名称、SamAccountName、描述|
导出Csv“C:\scripts\NoDescriptionUsers.Csv”

除了更清晰的意图之外,
[string]::IsNullOrEmpty($\uu.Description)
有优势!($\.Description)
因为这是我应该回答的。我确认了这一点,但在你回答之前,我找到了另一个解决方案,它添加了条件$\.Description,比如$null,同样有效,我可能会使用你的,因为它看起来更正式(开玩笑,但很严肃)。我还采纳了您的建议,将启用的检查移到了筛选器中。非常感谢您的帮助。LDAP当然可以过滤空值:
“(!(description=*)”
@Matt更容易阅读,也更简单,但两者都应该可以工作。我通常使用
?{$\u.Description}
我自己,但我也遇到过一些奇怪的情况@MathiasR.Jessen不会也匹配“nothing”?无论如何,让我换一种说法,没有一种方法可以使用
-filter
AFAIK.)除了更清晰的意图之外,
[string]::IsNullOrEmpty($\uu.Description)
是否比
有优势!($\.Description)
因为这是我应该回答的。我确认了这一点,但在你回答之前,我找到了另一个解决方案,它添加了条件$\.Description,比如$null,同样有效,我可能会使用你的,因为它看起来更正式(开玩笑,但很严肃)。我还采纳了您的建议,将启用的检查移到了筛选器中。非常感谢您的帮助。LDAP当然可以过滤空值:
“(!(description=*)”
@Matt更容易阅读,也更简单,但两者都应该可以工作。我通常使用
?{$\u.Description}
我自己,但我也遇到过一些奇怪的情况@MathiasR.Jessen不会也匹配“nothing”?无论如何,让我换一种说法,没有一种方法可以使用
-filter
AFAIK.)除了更清晰的意图之外,
[string]::IsNullOrEmpty($\uu.Description)
是否比
有优势!($\.Description)
因为这是我应该回答的。我确认了这一点,但在你回答之前,我找到了另一个解决方案,它添加了条件$\.Description,比如$null,同样有效,我可能会使用你的,因为它看起来更正式(开玩笑,但很严肃)。我还采纳了您的建议,将启用的检查移到了筛选器中。非常感谢您的帮助。LDAP当然可以过滤空值:
“(!(description=*)”
@Matt更容易阅读,也更简单,但两者都应该可以工作。我通常使用
?{$\u.Description}
我自己,但我也遇到过一些奇怪的情况@MathiasR.Jessen不会也匹配“nothing”?无论如何,让我换一种说法,没有一种方法可以使用
-filter
AFAIK.)