사용자가 속한 모든 그룹을 얻는 방법은 무엇입니까?


135

PowerShell Get-ADGroupMember cmdlet은 특정 그룹의 구성원을 반환합니다. 특정 사용자가 속한 모든 그룹을 가져 오는 cmdlet 또는 속성이 있습니까?


나는 내 실수를 수정 : Get-Member이어야한다 Get-ADGroupMember.


질문은 명확하지 않습니다. 다시 프레임 워크하거나 예제를 추가 할 수 있습니까?
Mohit Chakraborty

1
참조 stackoverflow.com/questions/668321/...technet.microsoft.com/en-us/library/dd315351.aspx을 . Get-Member가 생각하는대로 작동합니까?
tiago2014

@Mohit Chakraborty가 이제 더 명확합니까?
Primoz

1
빨리 사용할 수 있습니다 net user /domain username. Get Groups에서 사용자가 구성원 인
Mohamed

답변:


282

Get-ADPrincipalGroupMembership이이를 수행합니다.

Get-ADPrincipalGroupMembership username | select name

name
----
Domain Users
Domain Computers
Workstation Admins
Company Users
Company Developers
AutomatedProcessingTeam

1
이것은 방금 가장 복잡하고 긴 바람을 사용하여 이것을 찾는 것을 막았습니다. powershell에 이와 같은 것이 있지만 어디서나 찾을 수 없다는 것을 알았습니다. +1
Tim Alexander

7
이것은 사용 가능한 ActiveDirectory 모듈에 따라 다릅니다. PowerShell 스크립트를 실행중인 클라이언트 컴퓨터 나 하위 클라이언트에서는 반드시 작동하지는 않습니다. 그렇게하려면 이 솔루션을 사용 하십시오 .
Daniel.S

5
위의 내용에서 오류가 발생했습니다 ( "서버에서 내부 오류로 인해 서버에서 요청을 처리 할 수 ​​없습니다"– 서버에서 사용할 수없는 기능 일 수 있음). get-aduser $username -Properties memberof | select -expand memberof그래도 잘 작동했습니다.
JohnLBevan

5
서버가 아닌 Windows 10 워크 스테이션에있는 경우 여기 에서 RSAT를 설치 한 다음 import-module activedirectorypowershell 명령 행 을 입력 하면 실행됩니다.
James Toomey

3
모듈이 설치되어 있지 않은 경우 : RSAT-AD-PowerShell을-WindowsFeature 설치
Preben Huybrechts

81

모듈이 필요없는 단일 회선은 현재 기록 된 사용자를 사용합니다.

(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf

이 vbs / powershell 기사에 대한 제안 : http://technet.microsoft.com/en-us/library/ff730963.aspx


5
고맙습니다.이 모듈없는 버전에 감사드립니다. 변수를에서 $env:username로 변경하고 다른 사용자 조회를위한 변수 대체를 쉽게 수행하도록 $username설정했습니다 $username = "testuser".
projectdp

여기 다시 내 길을 봤어! AD 도구를 사용할 수없는 임의의 상황에서 여전히 유용합니다.
Nathan

43

현재 로그온 한 사용자의 그룹 멤버쉽을 얻기 위해 Canoas가 게시 한 것보다 더 간결한 대안입니다.

이 블로그 게시물 에서이 방법을 발견했습니다 .http : //www.travisrunyard.com/2013/03/26/auto-create-outlook-mapi-user-profiles/

([ADSISEARCHER]"samaccountname=$($env:USERNAME)").Findone().Properties.memberof

정규식을 사용하여 LDAP guff를 제거하고 그룹 이름 만 남기는 더 나은 버전입니다.

([ADSISEARCHER]"samaccountname=$($env:USERNAME)").Findone().Properties.memberof -replace '^CN=([^,]+).+$','$1'

[ADSISEARCHER] 유형 가속기 사용에 대한 자세한 내용은 스크립팅 가이 블로그 ( http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/24/use-the-powershell-adsisearcher-type) 에서 확인할 수 있습니다. -accelerator-to-search-active-directory.aspx


1
"0"인수와 함께 "FindOne"을 호출하는 예외 : "samaccountname = 검색 필터가 유효하지 않습니다."
달라스

이상합니다 .... 방금 다시 테스트했지만 완전히 다른 환경의 Windows 7에서도 여기에서도 제대로 작동합니다.
Daniel.S

지금도 여전히 Win 7에서 다시 시도했지만 정상적으로 작동합니다. 아마도 이것을 처음 시도 할 때 오타가 있었을 것입니다. 포리스트 "거프"를 제거하기 위해 교체를 추가해 주셔서 감사합니다.
Dallas

2
| Sort-Object더 잘 읽을 수 있도록 추가 하고 훌륭하게 작동 합니다.
Martin Hollingsworth

31

CMD에서 구식 길 :

net user mst999 /domain 

1
또한 별도의 AD 도구없이 클라이언트 컴퓨터에서 작동
라스트

4
불행히도-그룹 이름이 길면 (즉,> 21 자)
자르면

그 하나는 다른 모든 방법을 능가합니다! 브라보
StayCool

24
(GET-ADUSER Identity USERNAME Properties MemberOf | Select-Object MemberOf).MemberOf

감사! 이것은 효과가 있었다. 단점은 반환 된 값이 문자열이라는 것입니다.
shaiss

3
| get-adgroup은 그룹 객체를 출력합니다. 훌륭한!
8DH

1
또는 현재 로그인 한 사용자의 사용자 이름을 얻기 위해 $ env : USERNAME을 사용하십시오
Dave Lucre

6

Get-ADPrincipalGroupMembership이 작동하지 않으면 해당 사용자로 로그인하여 사용해보십시오.

$id = [Security.Principal.WindowsIdentity]::GetCurrent()
$groups = $id.Groups | foreach-object {$_.Translate([Security.Principal.NTAccount])}
$groups | select *

$id = [Security.Principal.WindowsIdentity]("username")
Bitcoin Murderous Maniac

1
이것은 하나의 라이너로 멋지게 단축 [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | % {$_.Translate([Security.Principal.NTAccount])}됩니다.
alx9r

5

사용자의 그룹 멤버십을 가져옵니다.

$strUserName = "Primoz"
$strUser = get-qaduser -SamAccountName $strUserName
$strUser.memberof

사용자의 그룹 멤버십 가져 오기를 참조 하십시오.

Quest의 Active Directory 용 무료 PowerShell 명령 도 참조하십시오 .

[ 편집 : Get-ADPrincipalGroupMembership 명령은 Windows 2008 R2 v2 이후 Powershell에 포함되어 있습니다. 아래의 kstrauss의 답변을 참조하십시오.]


2
실제로 Quest cmdlet을 사용하면 더 쉬운 방법이 있습니다. Get-QADGroup-Primoz 포함
fenster

18
GET-ADPrincipalGroupMembership 지금 PowerShell을에 내장되어 이것은 더 이상 가장 좋은 대답입니다
롭 대포를

1
Get-ADPrincipalGroupMembership을 사용하는 것이 훨씬 낫기 때문에 투표에 실패했습니다. 이 downvote를 실행 취소하고 싶지만 할 수는 없습니다. 내장 옵션이 존재 함을 나타 내기 위해 답변을 편집합니다.
Abraham

4

Get-Member.NET 멤버를 나열하는 cmdlet입니다 object. 이것은 사용자 / 그룹 멤버쉽과 관련이 없습니다. 다음과 같이 현재 사용자의 그룹 멤버쉽을 얻을 수 있습니다.

PS> [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | 
         Format-Table -auto

BinaryLength AccountDomainSid    Value
------------ ----------------    -----
          28 S-1-5-21-...        S-1-5-21-2229937839-1383249143-3977914998-513
          12                     S-1-1-0
          28 S-1-5-21-...        S-1-5-21-2229937839-1383249143-3977914998-1010
          28 S-1-5-21-...        S-1-5-21-2229937839-1383249143-3977914998-1003
          16                     S-1-5-32-545
...

임의의 사용자 그룹 정보에 액세스해야하는 경우 Quest AD cmdlet 사용에 대한 @tiagoinu 제안이 더 나은 방법입니다.


4

먼저 activedirectory 모듈을 가져옵니다.

import-module activedirectory

그런 다음이 명령을 발행하십시오.

Get-ADGroupMember -Identity $group | foreach-object {
    Write-Host $_.SamAccountName
}

지정된 그룹의 구성원이 표시됩니다.


OP는 반대를 요구합니다. 지정된 사용자가 속한 모든 그룹을 가져옵니다.
8DH

4

단순한 라이너 일 때 긴 스크립트가 필요하지 않습니다.

QUEST 명령

(Get-QADUser -Identity john -IncludedProperties MemberOf | Select-Object MemberOf).MemberOf

MS AD 명령

(GET-ADUSER Identity john Properties MemberOf | Select-Object MemberOf).MemberOf

MS AD cmd가 빠르지 만 퀘스트를 좋아하는 사람들이 더 낫습니다.

스티브


4

Get-Member는 사용자의 그룹 멤버쉽을 얻기위한 것이 아닙니다. 로컬 시스템에서 사용자가 속한 그룹 목록을 얻으려면 다음을 수행하십시오.

$query = "ASSOCIATORS OF {Win32_Account.Name='DemoUser1',Domain='DomainName'} WHERE ResultRole=GroupComponent ResultClass=Win32_Account"

Get-WMIObject -Query $query | Select Name

위 쿼리에서 DemoUser1을 원하는 사용자 이름으로 바꾸고 DomainName을 로컬 컴퓨터 이름 또는 도메인 이름으로 바꿉니다.


이 쿼리는 시간이 많이 걸리고 환경에 여러 사용자와 그룹이있는 경우 매우 느리게 응답합니다.
randeepsp

답을 편집하는 사람은 올바른 방법으로 편집하십시오. OP가 DemoUser1을 원하는 사용자 이름으로 바꿀 것을 제안했습니다. 그리고 그 의미를 완전히 바꿨습니다.
ravikanth

4

사용하다:

Get-ADPrincipalGroupMembership username | select name | export-CSV username.csv

명령의 출력을 CSV 파일 로 파이프 합니다.


4

현재 사용자에 대한 세부 정보를 제공해야합니다. Powershell이 ​​필요하지 않습니다.

whoami /groups


3

한 줄입니다.

(get-aduser joe.bloggs -properties *).memberof

의 끝 :)


이를 a로 파이프 select -expandproperty memberof하면 출력을 좀 더 읽기 / 유용하게 만듭니다.
벤 툴

2

Get-ADPrincipalGroupMembershipRecursive라는 PowerShell 함수를 작성했습니다. 사용자, 컴퓨터, 그룹 또는 서비스 계정의 DSN을 허용합니다. 계정의 memberOf 속성에서 초기 그룹 목록을 검색 한 다음 해당 그룹의 멤버 자격을 재귀 적으로 확인합니다. 약식 코드는 다음과 같습니다. 주석이 포함 된 전체 소스 코드는 여기에서 찾을 수 있습니다 .

function Get-ADPrincipalGroupMembershipRecursive( ) {

    Param(
        [string] $dsn,
        [array]$groups = @()
    )

    $obj = Get-ADObject $dsn -Properties memberOf

    foreach( $groupDsn in $obj.memberOf ) {

        $tmpGrp = Get-ADObject $groupDsn -Properties memberOf

        if( ($groups | where { $_.DistinguishedName -eq $groupDsn }).Count -eq 0 ) {
            $groups +=  $tmpGrp           
            $groups = Get-ADPrincipalGroupMembershipRecursive $groupDsn $groups
        }
    }

    return $groups
}

# Simple Example of how to use the function
$username = Read-Host -Prompt "Enter a username"
$groups   = Get-ADPrincipalGroupMembershipRecursive (Get-ADUser $username).DistinguishedName
$groups | Sort-Object -Property name | Format-Table

2

아래는 잘 작동합니다.

get-aduser $username -Properties memberof | select -expand memberof

사용자 목록이있는 경우 :

$list = 'administrator','testuser1','testuser2'
$list | `
    %{  
        $user = $_; 
        get-aduser $user -Properties memberof | `
        select -expand memberof | `
        %{new-object PSObject -property @{User=$user;Group=$_;}} `
    }

1

Get-QADUser -SamAccountName LoginID | % {$ _. MemberOf} | Get-QADGroup | 이름을 선택하십시오


1

특정 사용자에게 다음과 같은 작업을 수행 할 수 없었습니다.

Get-ADPrincipalGroupMembership username

문제를 해결하지 않으려는 오류가 발생했습니다.

그러나 Get-ADUser를 사용하여 다른 솔루션을 생각해 냈습니다. 계정 이름을 모르면 사용자의 실제 이름에 와일드 카드를 기반으로 할 수 있기 때문에 조금 더 좋습니다. 그냥 채우 PartOfUsersName 와 멀리 간다.

#Get the groups that list of users are the member of using a wildcard search

[string]$UserNameLike = "*PartOfUsersName*" #Use * for wildcards here
[array]$AccountNames = $(Get-ADUser -Filter {Name -like $UserNameLike}).SamAccountName

ForEach ($AccountName In $AccountNames) {
Write-Host "`nGETTING GROUPS FOR" $AccountName.ToUpper() ":"
(Get-ADUser -Identity $AccountName -Properties MemberOf|select MemberOf).MemberOf|
    Get-ADGroup|select Name|sort name
    }

이 솔루션으로 나를 안내해 준 schmeckendeugler 및 8DH에 대한 거대한 소품 둘 다 +1


1

여기에 많은 훌륭한 답변이 있지만 개인적으로 찾고있는 것이 누락되었습니다. 일단 알아 낸 후에-나중에 찾아야 할 경우를 대비하여 게시하거나 실제로 다른 사람을 도울 수 있다고 생각했습니다.

Get-ADPrincipalGroupMembership username | Format-Table -auto

이를 제시하는 두 번째 방법은 다음과 같이 관심있는 개별 열을 지정하는 것입니다.

Get-ADPrincipalGroupMembership username | select name, GroupScope, GroupCategory

그러면 사용자 이름이 속한 모든 AD 그룹이 제공되지만 각 그룹의 기본 속성은 모두 표 형식으로 표시됩니다.

이것이 제공하는 주요 이점은 메일 그룹과 보안 그룹을 한 눈에 볼 수 있다는 것입니다. Universal, DomainLocal 및 Global을 한눈에 볼 수 있습니다.
왜이 마지막 비트에 관심이 있습니까?

  • 유니버설 그룹은 포리스트의 모든 도메인에있는 사용자, 그룹 및 컴퓨터를 구성원으로 포함하는 보안 또는 메일 그룹입니다. 포리스트의 모든 도메인에있는 리소스에 대한 유니버설 보안 그룹 권한을 부여 할 수 있습니다.
  • 글로벌 그룹은 자체 도메인, 구성원 서버 및 도메인 워크 스테이션 및 트러스 팅 도메인에서 사용할 수있는 그룹입니다. 모든 위치에서 글로벌 그룹 권한을 부여 할 수 있으며 글로벌 그룹은 로컬 그룹의 구성원이 될 수 있습니다. 그러나 글로벌 그룹에는 자체 도메인의 사용자 계정 만 포함될 수 있습니다.
  • 도메인 로컬 그룹은 유니버설 그룹, 글로벌 그룹, 자체 도메인의 다른 도메인 로컬 그룹 및 포리스트의 모든 도메인 계정을 포함 할 수있는 보안 또는 메일 그룹입니다. 도메인 로컬 그룹에있는 동일한 도메인에만있는 리소스에 대한 권한을 도메인 로컬 보안 그룹에 부여 할 수 있습니다.

0
Import-Module ActiveDirectory
Get-ADUser -SearchBase "OU=Users,DC=domain,DC=local" -Filter * | foreach-object {
write-host "User:" $_.Name -foreground green
    Get-ADPrincipalGroupMembership $_.SamAccountName | foreach-object {
        write-host "Member Of:" $_.name
    }
}

사용자를 나열해야하는 OU를 반영하도록 -SearchBase 값을 변경하십시오. :)

그러면 해당 OU의 모든 사용자가 나열되고 이들이 속한 그룹이 표시됩니다.



0
   Get-ADUser -Filter { memberOf -RecursiveMatch "CN=Administrators,CN=Builtin,DC=Fabrikam,DC=com" } -SearchBase "CN=Administrator,CN=Users,DC=Fabrikam,DC=com"  -SearchScope Base
                  ## NOTE: The above command will return the user object (Administrator in this case) if it finds a match recursively in memberOf attribute. 

0

이것은 이름을 얻는 가장 간단한 방법입니다.

Get-ADPrincipalGroupMembership "YourUserName"

# Returns distinguishedName : CN=users,OU=test,DC=SomeWhere GroupCategory : Security GroupScope : Global name : testGroup objectClass : group objectGUID : 2130ed49-24c4-4a17-88e6-dd4477d15a4c SamAccountName : testGroup SID : S-1-5-21-2114067515-1964795913-1973001494-71628

select 문을 추가하여 응답을 정리하거나 OU의 모든 사용자가 자신이 속한 모든 그룹을 얻도록합니다.

foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){ Get-ADPrincipalGroupMembership $user.samaccountName | select name}


0

재귀를 얻으려면 다음을 사용할 수 있습니다.

<# 
    .SYNOPSIS   
        Get all the groups that a user is MemberOf.

    .DESCRIPTION
        This script retrieves all the groups that a user is MemberOf in a recursive way.

    .PARAMETER SamAccountName
        The name of the user you want to check #>

Param (
    [String]$SamAccountName = 'test',
    $DomainUsersGroup = 'CN=Domain Users,CN=Users,DC=domain,DC=net'
)


Function Get-ADMemberOf {
    Param (
        [Parameter(ValueFromPipeline)]
        [PSObject[]]$Group,
        [String]$DomainUsersGroup = 'CN=Domain Users,CN=Users,DC=grouphc,DC=net'
    )
    Process {
        foreach ($G in $Group) {
            $G | Get-ADGroup | Select -ExpandProperty Name
            Get-ADGroup $G -Properties MemberOf| Select-Object Memberof | ForEach-Object {
                Get-ADMemberOf $_.Memberof
            }
        }
    }
}


$Groups = Get-ADUser $SamAccountName -Properties MemberOf | Select-Object -ExpandProperty MemberOf
$Groups += $DomainUsersGroup
$Groups | Get-ADMemberOf | Select -Unique | Sort-Object

0

위의 거의 모든 솔루션은 ActiveDirecotry 은 대부분의 경우 기본적으로 사용 불가능할 수 모듈을 .

아래 방법을 사용했습니다. 약간 간접적이지만 내 목적을 달성했습니다.

사용 가능한 모든 그룹 나열

Get-WmiObject -Class Win32_Group

그런 다음 사용자가 속한 그룹을 나열하십시오.

[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups

를 통해 비교를 통해 비교를 수행 할 수 있습니다 SIDs. 로그인 한 사용자에게 적용됩니다. 내가 틀렸다면 정정 해주세요. PowerShell에 완전히 새로운 것이었지만 작업 약속을 위해이 작업을 수행해야했습니다.


이미 관리자 그룹의 구성원 인 사용자를 확인하는 경우 "관리자 권한으로 실행"으로 PowerShell을 시작해야합니다. 그렇지 않으면 두 번째 명령에 대해 그룹이 올바르게 나열되지 않습니다. 이것 밖으로 ... 창 ...
Ruifeng Ma

0

사용자 입력 및 고급 출력 형식 :

[CmdletBinding(SupportsShouldProcess=$True)] 
Param( 
    [Parameter(Mandatory = $True)] 
    [String]$UserName 
) 
Import-Module ActiveDirectory 
If ($UserName) { 
    $UserName = $UserName.ToUpper().Trim() 
    $Res = (Get-ADPrincipalGroupMembership $UserName | Measure-Object).Count 
    If ($Res -GT 0) { 
        Write-Output "`n" 
        Write-Output "$UserName AD Group Membership:" 
        Write-Output "===========================================================" 
        Get-ADPrincipalGroupMembership $UserName | Select-Object -Property Name, GroupScope, GroupCategory | Sort-Object -Property Name | FT -A 
    } 
}

0

나중에 참조 할 수 있도록 여기에 넣으십시오. 이메일 이전 중입니다. 각 사용자 계정과 해당 그룹 구성원을 알아야하고 각 그룹과 해당 구성원을 알아야합니다.

아래 코드 블록을 사용하여 각 사용자의 그룹 멤버 자격에 대한 CSV를 출력하고 있습니다.

Get-ADUser -Filter * |`
  ForEach-Object { `
    $FileName = $_.SamAccountName + ".csv" ; `
    $FileName ; `
    Get-ADPrincipalGroupMembership $_ | `
      Select-Object -Property SamAccountName, name, GroupScope, GroupCategory | `
        Sort-Object -Property SamAccountName | `
          Export-Csv -Path $FileName -Encoding ASCII ; `
  }

그룹과 각 회원의 수출 과정은 다소 복잡했지만 아래는 작동합니다. 출력 파일 이름에는 그룹 유형이 포함됩니다. 따라서 필요한 전자 메일 그룹은 Universal 및 Global 메일 그룹이어야합니다. 필요하지 않은 TXT 파일을 삭제하거나 이동할 수 있어야합니다.

Get-ADGroup -Filter * | `
 Select-Object -Property Name, DistinguishedName, GroupScope, GroupCategory | `
  Sort-Object -Property GroupScope, GroupCategory, Name | `
   Export-Csv -Path ADGroupsNew.csv -Encoding ASCII

$MyCSV = Import-Csv -Path .\ADGroupsNew.csv -Encoding ASCII

$MyCSV | `
 ForEach-Object { `
  $FN = $_.GroupScope + ", " + $_.GroupCategory + ", " + $_.Name + ".txt" ; `
  $FN ; `
  Get-ADGroupMember -Identity $_.DistinguishedName | `
   Out-File -FilePath $FN -Encoding ASCII ; $FN=""; `
  }

0

제시 된 모든 의견을 연구하면 시작점을 얻었지만 (고마워) 몇 가지 해결되지 않은 문제가 남았습니다. 결과적으로 여기에 내 대답이 있습니다. 제공된 코드 스 니펫은 요청 된 것보다 약간 더 많은 작업을 수행하지만 유용한 디버깅 정보를 제공합니다.

[array] $script:groupsdns = @()
function Get-ADPrincipalGroupMembershipRecursive() 
{
  Param( [string] $dn, [int] $level = 0, [array] $groups = @() )

  #if(($groupsdns | where { $_.DistinguishedName -eq $dn }).Count -ne 0 ) { return $groups } # dependency on next statement
  #$groupsdns += (Get-ADObject $dn -Properties MemberOf) # Get-ADObject cannot find an object with identity
  if ($script:groupsdns.Contains($dn)) { return $groups }
  $script:groupsdns += $dn
  $mo = $Null
  $mo = Get-ADObject $dn -Properties MemberOf # Get-ADObject cannot find an object with identity
  $group = ($dn + " (" + $level.ToString())
  if ($mo -eq $Null) { $group += "!" }
  $group += ")"
  $groups += $group
  foreach( $groupdn in $mo.MemberOf )
  {
    $groups = Get-ADPrincipalGroupMembershipRecursive -dn $groupdn -level ($level+1) -groups $groups
  }
  if ($level -le 0) 
  { 
    $primarygroupdn = (Get-ADUser -Identity $dn -Properties PrimaryGroup).PrimaryGroup 
    $groups = Get-ADPrincipalGroupMembershipRecursive -dn $primarygroupdn -level ($level+1) -groups $groups
  }
  return $groups
}
$adusergroups = Get-ADPrincipalGroupMembershipRecursive -dn $aduser.DistinguishedName
$adusergroups | ft -AutoSize | `
              Out-File -Width 512 Get-ADPrincipalGroupMembershipRecursive.txt #-Append #-Wrap # | Sort-Object -Property Name

죄송합니다. 설명을 잊어 버렸습니다. 먼저 다음을 수행하십시오. $ aduserDistinguishedName = "CN = name, OU = ..."$ aduser = Get-ADUser -ID $ aduserDistinguishedName-속성 *
ES44AC SD70MAC

0

다른 회원 그룹에 문의 할 수있는 권한이 없지만 그룹 회원에게 문의 할 수있는 권한이있는 경우 다음을 수행하여 어느 사용자가 어떤 그룹에 액세스 할 수 있는지에 대한 맵을 작성할 수 있습니다.

$groups = get-adgroup -Filter * | sort name | select Name
$users = @{}
foreach($group in $groups) {
    $groupUsers = @()
    $groupUsers = Get-ADGroupMember -Identity $group.Name | Select-Object SamAccountName
    $groupUsers | % {
        if(!$users.ContainsKey($_.SamAccountName)){
            $users[$_.SamAccountName] = @()
        }
        ($users[$_.SamAccountName]) += ($group.Name)
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.