如何仅显示组的组名称用户是powershell中的成员

时间:2017-03-30 16:19:31

标签: powershell active-directory

所以我有以下脚本,但它列出了AD组的全名。 (例如<?php echo json_encode([$imagepath]))如何仅指定组的名称,以便它仅列出名称本身。 CN=GroupName,OU=OUName,DC=DomainName,DC=com之后的部分。我试过CN=,但没有运气。

$group.Name

另外,作为第二个问题,有哪些方法可以根据组名开头的内容进行过滤?

3 个答案:

答案 0 :(得分:1)

您可以使用#define eigen_assert(X) do { if(!(X)) throw std::runtime_error(#X); } while(false); // make sure Eigen is not included before your define: #include <Eigen/Core>

进行查找
Get-ADGroup

对于第二部分,您可以使用Import-Module ActiveDirectory $userlist = Get-Content "C:\Scripts\US_User_List.txt" foreach ($username in $userlist) { $grplist = (Get-ADUser $username –Properties MemberOf).MemberOf foreach ($group in $grplist) { (Get-ADGroup $group).name } } / Where-Object过滤器。

?

答案 1 :(得分:1)

这是一种方式:

foreach ( $name in $names ) {
  Get-ADUser $name -Properties memberOf |
    Select-Object -ExpandProperty memberOf |
    Get-ADPathname -Format Leaf -ValuesOnly |
    Where-Object { ($_ -like "this*") -or ($_ -like "that*") } |
    Sort-Object | 
    ForEach-Object {
      [PSCustomObject] @{
        "Name" = $name
        "memberOf" = $_
      }
    }
}

您可以根据需要调整Where-Object脚本块中的过滤器。

您可以从此处获取Get-ADPathname.ps1脚本:

Windows IT Pro - Use PowerShell to Handle Active Directory Paths

关于Where-Object过滤器的说明 - 如果您想说“名称不以此开头的组”,您可以这样写:

Where-Object { -not (($_ -like "this*") -or ($_ -like "that*")) }

答案 2 :(得分:0)

有一种简单的方法:Get-ADPrincipalGroupMembership -Identity blabla | Select-Object Name

Get-ADPrincipalGroupMembership输出用户所属的组对象,并附带默认的AD模块。