Powershell 筛选要从一个用户复制到另一个用户的组成员身份

Powershell 筛选要从一个用户复制到另一个用户的组成员身份,powershell,active-directory,powershell-2.0,powershell-3.0,active-directory-group,Powershell,Active Directory,Powershell 2.0,Powershell 3.0,Active Directory Group,我目前拥有将一个用户的所有组成员身份复制到另一个用户的工作代码,从这里获取: 我想添加一个过滤器,防止添加以数字开头的组 例如: 123_组-不会添加到新用户 组_123-将添加到新用户 我一直在玩弄Where对象,但无法让它按我希望的方式工作 | Where-Object {$_.MemberOf -Match '[a-z]*'} 这些组在开始时有“CN=…etc.”,我也试着解释,但没有效果(没有输出错误,只是没有我需要/期望的输出)。我不确定我是否只是犯了一个错误,还是应该用另一种方式

我目前拥有将一个用户的所有组成员身份复制到另一个用户的工作代码,从这里获取:

我想添加一个过滤器,防止添加以数字开头的组

例如:

123_组-不会添加到新用户

组_123-将添加到新用户

我一直在玩弄Where对象,但无法让它按我希望的方式工作

| Where-Object {$_.MemberOf -Match '[a-z]*'}
这些组在开始时有“CN=…etc.”,我也试着解释,但没有效果(没有输出错误,只是没有我需要/期望的输出)。我不确定我是否只是犯了一个错误,还是应该用另一种方式来尝试

非常感谢您的帮助/建议

谢谢。

使用.NET的方法检查名称的第一个字符是否为数字:

Get-ADuser $user_to_copy -Properties MemberOf `
  | Select-Object -ExpandProperty MemberOf `
  | Where-Object { -not [System.Char]::IsDigit($_[3]) } `
  | Add-ADGroupMember -Members $user_name
我使用
$\u3]
(第四个字符),因为
memberOf
属性是一个
DiscrimitedName
列表,该列表将以
CN=
开头,后跟组名

更新:如果要筛选出以某个字符串开头的组,请使用以下内容:

$badstring = "Computer"
Get-ADuser $user_to_copy -Properties MemberOf `
  | Select-Object -ExpandProperty MemberOf `
  | Where-Object { -not $_.Substring(3).StartsWith($badstring) } `
  | Add-ADGroupMember -Members $user_name
使用.NET方法检查名称的第一个字符是否为数字:

Get-ADuser $user_to_copy -Properties MemberOf `
  | Select-Object -ExpandProperty MemberOf `
  | Where-Object { -not [System.Char]::IsDigit($_[3]) } `
  | Add-ADGroupMember -Members $user_name
我使用
$\u3]
(第四个字符),因为
memberOf
属性是一个
DiscrimitedName
列表,该列表将以
CN=
开头,后跟组名

更新:如果要筛选出以某个字符串开头的组,请使用以下内容:

$badstring = "Computer"
Get-ADuser $user_to_copy -Properties MemberOf `
  | Select-Object -ExpandProperty MemberOf `
  | Where-Object { -not $_.Substring(3).StartsWith($badstring) } `
  | Add-ADGroupMember -Members $user_name

这完全符合我的要求,谢谢。然而,除了第一个字符,比如以“Computer”或“一月”这样的特定字符串开头的组,如何进行过滤呢?(我希望使用类似regex的东西来修改它以满足其他需求)。太好了,非常感谢-这完全消除了我的困惑!这完全符合我的要求,谢谢。然而,除了第一个字符,比如以“Computer”或“一月”这样的特定字符串开头的组,如何进行过滤呢?(我希望使用类似regex的东西来修改它以满足其他需求)。太好了,非常感谢-这完全消除了我的困惑!