Parsing powershell,其中包含特定于对象的数字字符数

Parsing powershell,其中包含特定于对象的数字字符数,parsing,powershell,object,syntax,where,Parsing,Powershell,Object,Syntax,Where,我查看了一些类似的问题,但找不到这种逻辑的示例—我要寻找的是一种通过powershell中大量返回的用户名进行解析的方法。非服务帐户或信息亭的用户名具有6个分组数字字符的特定命名约定:例如-username123456。我想应该有一种方法可以使用where object命令,但是在technet或其他PS资源上找不到任何语法。从本地域获得回报的一个班轮是: Search-ADAccount -PasswordNeverExpires | Select-Object Name, Enabled

我查看了一些类似的问题,但找不到这种逻辑的示例—我要寻找的是一种通过powershell中大量返回的用户名进行解析的方法。非服务帐户或信息亭的用户名具有6个分组数字字符的特定命名约定:例如-username123456。我想应该有一种方法可以使用where object命令,但是在technet或其他PS资源上找不到任何语法。从本地域获得回报的一个班轮是:

Search-ADAccount -PasswordNeverExpires |  Select-Object Name, Enabled

这将返回密码设置为永不过期的域帐户列表。我只想看到那些具有上述命名约定的^^^我知道你可以用正则表达式实现这一点,但我的正则表达式已经很过时了——如果可以用where对象实现,那将是最佳的。我也研究了使用模式,但它似乎是为了比这更复杂的回报。。。谢谢

它们是否属于特定的OU?然后可以使用-Searchbase参数将搜索范围限制为该OU

否则,正则表达式可能是实现这一点的一个很好的选择

Search-ADAccount -PasswordNeverExpires |  Select-Object Name, Enabled | Where {
    $_.name -match '\D\d{6}$'
}

您假设所有用户名的开头都是[a-z]*。您可能应该放弃它,保留\d{6}$部分,因为除了用户名以6位数字结尾之外,我们不知道用户名的确切细节。这太完美了!我需要回到regex-powershell中,在那里object把我惯坏了。谢谢boeprox+1给你。@TheMadTechnician你是对的。这是一个假设,以问题中提供的用户名为例。我将更新我的答案以删除该假设。您需要\D\D{6}$to与结尾超过六位的字符串不匹配。