PowerShell 检查用户组成员身份

PowerShell Check User Group Membership

我正在编写一个 powershell 脚本来更改 GPO 所有权,并且我能够将 GPO 的所有权更改为新用户。我想要做的是验证 GPO 的当前所有者不再是雇员。这是针对学校的情况,有学生和员工。学生属于 "Student Domain Users",而员工仅属于 "Domain Users"。我可以拉出一个成员所属的所有组,但是,我想使用 [bool] 来设置 true 或 false。

这就是我正在使用的

Get-ADPrincipalGroupMembership -Identity 12345 | select SamAccountName

SamAccountName
--------------
Domain Users
Organization Management
Enterprise Admins
Domain Admins
Schema Admins

在上面的示例中,我可以看到列出了 Domain Admins。我试图只用这段代码把它拉出来,我什至不知道这是否可能。这是我尝试过并且 none 有效的方法

Get-ADPrincipalGroupMembership -Identity 12345 | select SamAccountName | select Domain Admins

Get-ADPrincipalGroupMembership -Identity 12345 | where {SamAccountName -like "Domain Admin"}

在此先感谢您的帮助。

这就是我想用它作为验证过程的一种方式 - 这验证了这个人根本不再在系统中,我们需要清理东西。

$adtest = [bool] (Get-ADUser -Filter { SamAccountName -eq $input })

如果他们在系统中,则他们可能是学生,并且不允许学生访问 GPO,因此我们需要将他们作为所有者删除。最终所有 GPO 都将更改为 Domain Admins 拥有,并且在创建时将默认为 Domain Admins

(Get-ADPrincipalGroupMembership -identity 12345 | select samaccountname).SamAccountName | ? {$_ -eq "Domain Admins" }

# or 

Get-ADPrincipalGroupMembership -identity 12345 | select samaccountname | ? {$_.samAccountName -eq "Domain Admins" }

# Or Check the Domain Admins to see if Domain Admins contain the users you are looking for
Get-ADGroupMember -Identity "Domain Admins" | ? { $_.name -eq 12345 }

第一个示例为您提供带名称的字符串响应,"Domain Admins" 如果存在。

第二个示例只为您提供带有 SamAccountName 属性 的对象,因为那是您在 Select 语句

中使用的内容