如何检查用户是否属于Powershell中特定OU中的特定组

问题描述

|| 这是我的问题。 我有多个表示物理位置的OU,因此它的结构如下。 COMPANY.COM \\ LOC1 \\ Users(用户1,用户2,用户3等...) COMPANY.COM \\ LOC2 \\ Users(用户4,用户5,用户6等) 每个位置都有一个用户应属于的组,我需要进行审核以确保用户属于该组。 OU LOC1,我需要确保OU LOC1中的所有用户(user1,user2,user3)都是安全组LOC1_GRP的一部分,并输出不存在的用户。     

解决方法

        Get-QADUser呢?您可以过滤所有用户,例如不属于特定组的用户,如下所示:
get-qaduser -searchroot \'company.com/LOC1/Users\' | ? {[string]$_.memberof -notmatch \'LOC1_GRP\'}
    ,        应该这样做:
$groupname = \"cn=group-blarr,ou=loc1,dc=company,dc=com\"

Get-ADUser -filter {memberof -ne $groupname} -ResultPageSize 0 -SearchBase \"ou=loc1,dc=com\" -Searchscope 2
    ,        只是为了完成(并纠正)第一个答案: 从PowerShell V1.0开始,用于查询Active-Directory的Quest Cmdlet可用,但是在PowerShell V2.0(W2K8 R2)中,Microsoft实现了自己的(只需导入ActiveDirectory模块) 注意Active-Directory中的
memberOf
属性,因为在创建用户时该属性只是空的,即使该用户是域用户组的成员(primaryGrouID中的代码)也是如此,所以这就是我撤消测试的原因。
PS C:\\> get-adobject -SearchBase \"ou=loc1,dc=com\"  -filter {objectclass -eq \"user\"} -properties memberof | where {!($_.memberof -match \"mygroup\")}