【问题标题】:Powershell Splitting an array of user objects into two arrays based on propertyPowershell根据属性将用户对象数组拆分为两个数组
【发布时间】:2011-11-15 20:36:24
【问题描述】:

我正在尝试将通过 $users = Get-QADUser -searchroot 'domain.net/OU1/OU2/Users' 检索到的用户对象数组拆分为基于其“AccountIsExpired”属性的两个数组。

$users = $users | where {!($_.AccountIsExpired)} 可以,但这只给了我一部分用户。但是,这确实会过滤掉一些用户对象。

我构建此代码以将 $users 拆分为两个数组 ($include, $exclude):

[Object[]]$include = @();
[Object[]]$exclude = @();
foreach ($user in $users) {
    if (!($_.AccountIsExpired)) {
        $include += $user;
    } else {
        $exclude += $user;
    }
}
$users = $include;

除了创建第二个数组之外,我看不出这两位代码之间的区别...

【问题讨论】:

  • 好的,有时您只需在浏览器窗口中查看代码即可解决您的问题 -.- 以下是有效的代码:[Object[]]$include = @(); [对象[]]$排除=@(); foreach ($user in $users) { if (!($user.AccountIsExpired)) { # 从 where 过滤器中复制 $_... $include += $user; } 其他 { $exclude += $user; } } $users = $include; $排除;
  • 抱歉不清楚,谢谢!

标签: arrays powershell


【解决方案1】:

使用 group-object 怎么样?

类似$groups=$users | group-object AccountIsExpired

【讨论】:

  • 是的!看起来很不错,刚刚在命令行上尝试过,应该也可以在我的脚本中使用...稍后再试。
  • 像魅力一样工作。谢谢大家!
猜你喜欢
  • 2019-05-05
  • 1970-01-01
  • 2022-01-18
  • 2015-03-14
  • 2018-10-07
  • 2014-05-02
  • 2013-12-04
  • 2019-12-28
  • 1970-01-01
相关资源
最近更新 更多