【问题标题】:Active directory - Powershell 90 days with filterActive Directory - Powershell 90 天过滤器
【发布时间】:2014-12-03 01:21:20
【问题描述】:

我有一些代码可以从 Active Directory 中的特定位置导出 90 天未登录的所有帐户并将它们导出到电子表格。

我们有一些帐户是为休长假的人准备的,因此我们不想列出这些帐户。以前,我们使用使用“评论”属性的过滤器将这些过滤掉,当其中有“el”时,它会忽略这些。

您能否建议我如何将此过滤器添加到以下代码中。

$Date=get-date    
$Days=90
$DIR='TEST.test.uk/TEST/Users & Desktops/NormalUsers'

Get-QADUser -SearchRoot $DIR -sizeLimit 0 | where {
$_.lastlogontimestamp -and
(($Date-$_.lastlogontimestamp).days -gt $Days) 
} | Select-Object logonName, DisplayName, Comment | export-csv users90.csv

我尝试将$_.comment -ne "el" -and 添加到 where 但没有用。

请帮忙。

【问题讨论】:

  • 你的意思是描述字段吗?此外,如果“el”只是一个前缀,您可以使用 -notlike "el*" 没有 Quest cmdlet,但默认情况下它们可能不会返回评论。在Get-ADUSer 中,您需要指定默认值之外的属性,例如Get-aduser -Properties Comment
  • 不,不是描述,在广告记录的属性编辑器选项卡中,有一个称为“评论”的选项,由于系统旧,因此必须使用它而不是描述。跨度>
  • 没关系。我以前从未见过有人使用它,所以我想澄清一下。我认为您需要为您的 cmdlet 使用 -IncludeProperties Comment

标签: windows powershell active-directory export days


【解决方案1】:

您无法过滤不存在​​的内容。 $_.Comment 很可能为 null,因为它不包含在 Get-QADUser 的默认属性集中。从Documentation我可以看到,你需要使用-IncludedProperties Comment

Get-QADUser -SearchRoot $DIR -sizeLimit 0 -IncludedProperties Comment

现在您的Where-Object 子句应该可以按预期工作。不确定您要调用的其他属性,但您可以随时使用Get-QADPSSnapinSettings检查默认列表

【讨论】:

  • 正是我想要的,我怎么会错过像包含​​这样简单的东西。为快速响应而欢呼。
  • @很高兴我能帮上忙。您可以考虑将答案标记为已接受以帮助社区。​​span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多