PowerShell检查用户组成员资格

时间:2020-02-14 21:54:08

标签: powershell active-directory group-membership

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

这就是我的工作

Get-ADPrincipalGroupMembership -Identity 12345 | select SamAccountName

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

在上面的示例中,我看到列出了Domain Admins。我试图只用这段代码来解决这个问题,我什至不知道是否可行。这是我尝试过的,但都没有成功

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

1 个答案:

答案 0 :(得分:1)

(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语句中使用的