Bir kullanıcının üyesi olduğu tüm grupları nasıl edinebilirim?


135

PowerShell Get-ADGroupMembercmdlet'i belirli bir grubun üyelerini döndürür. Belirli bir kullanıcının üyesi olduğu tüm grupları almak için bir cmdlet veya özellik var mı?


Hatamı düzelttim: Get-Memberolmalı Get-ADGroupMember.


Soru açık değil. Yeniden çerçeveleyebilir veya bir örnek ekleyebilir misiniz?
Mohit Chakraborty

1
Bkz. Stackoverflow.com/questions/668321/… ve technet.microsoft.com/en-us/library/dd315351.aspx . Get-Member'in ne düşündüğünü yaptığından emin misiniz?
tiago2014

@Mohit Chakraborty Artık daha açık mı?
Primoz

1
hızlı bir şekilde kullanabilirsiniz net user /domain username, ayrıca bir kullanıcının üyesi olduğu Grupları
Mohamed

Yanıtlar:


282

Get-ADPrincipalGroupMembership bunu yapacaktır.

Get-ADPrincipalGroupMembership username | select name

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

1
Bu, beni bulabilmek için en kıvrımlı ve uzun soluklu yöntemi kullanmaktan kurtardı. Powershell'in böyle bir şeye sahip olacağını biliyordu, ancak hiçbir yerde bulamadı. +1
Tim Alexander

7
Bunun, kullanılabilir ActiveDirectory modülüne bağlı olduğunu unutmayın. Bu, PowerShell betiği çalıştırdığınız bir istemci makinede veya alt düzey istemcilerde çalışmayabilir. Bunu yapmak istiyorsanız, bu çözümü kullanın .
Daniel.S

5
Yukarıdakiler bana hatalar veriyordu ("Sunucu, dahili bir hata nedeniyle isteği işleyemedi" - muhtemelen işlev sunucuda kullanılamıyor). get-aduser $username -Properties memberof | select -expand memberofolsa iyi çalıştı.
JohnLBevan

5
Bir sunucu yerine bir Windows 10 iş istasyonundaysanız, buradan RSAT'ı yükleyin , ardından import-module activedirectorypowershell komut satırını yazın , ardından bu çalışmalıdır.
James Toomey

3
Modül takılı değilse: Install-WindowsFeature RSAT-AD-PowerShell
Preben Huybrechts

81

Tek satır, modül gerekli değil, geçerli kayıtlı kullanıcıyı kullanır:

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

Bu vbs / powershell makalesine Qudos: http://technet.microsoft.com/en-us/library/ff730963.aspx


5
Teşekkürler, bu modül olmayan sürümü takdir ediyorum. Ben sadece gelen değişken değişti $env:usernameetmek $usernameve seti $username = "testuser"kolayca diğer kullanıcı aramaları için değişken değişimi yapmak.
25d

Sadece buraya tekrar yolumu googled! AD araçlarının kullanılamadığı rastgele durumlarda yine de yararlıdır.
Nathan

43

Şu anda oturum açmış olan kullanıcı için grup üyeliği almak için Canoas tarafından gönderilene daha kısa bir alternatif.

Bu blog yazısında bu yöntemle karşılaştım: http://www.travisrunyard.com/2013/03/26/auto-create-outlook-mapi-user-profiles/

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

LDAP guff'ını şeritlemek ve yalnızca grup adlarını bırakmak için normal ifadeyi kullanan daha iyi bir sürüm:

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

[ADSISEARCHER] tipi hızlandırıcıyı kullanma hakkında daha fazla bilgi komut dosyası blogunda bulunabilir: http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/24/use-the-powershell-adsisearcher-type -accelerator-to-arama-aktif-directory.aspx


1
Bunların her ikisi de bana hata veriyor: "0" argümanıyla "FindOne" çağrısı özel durumu: "samaccountname = arama filtresi geçersiz."
Dallas

Garip .... Sadece tekrar test ettim, ancak Windows 7'de tamamen farklı bir ortamda ve burada da iyi çalışıyor.
Daniel.S

Hemen şimdi tekrar denedim, hala Win 7'de ve iyi çalışıyor. Belki bunu ilk denediğimde yazım hatası yaşadım. Orman "guff" çıkarmak için yerine eklediğiniz için teşekkür ederiz.
Dallas

2
Harika çalışıyor, | Sort-Objectdaha da okunabilir hale getirmek için ekleyin .
Martin Hollingsworth

31

CMD'den eski okul yolu:

net user mst999 /domain 

1
ayrıca ekstra AD araçları olmayan istemci makinelerde çalışır
Rast

4
Ne yazık ki - grup isimleriniz uzunsa (yani> 21 karakter), o zaman onları kısaltır ...
kiltannen

biri her şekilde atıyor! Bravo
StayCool

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

Teşekkürler! bu işe yaradı. sadece olumsuz, döndürülen değerin bir dize olmasıdır.
shaiss

3
| get-adgroup, grup nesnelerini çıktılar. Parlak!
8DH

1
veya şu anda giriş yapmış olan kullanıcının kullanıcı adını almak için $ env: USERNAME kullanın
Dave Lucre

6

Get-ADPrincipalGroupMembership'in çalışmasını sağlayamazsanız, o kullanıcı olarak giriş yapmayı deneyebilirsiniz.

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

Ne gibi bir şey kullanırsanız kullanıcı olarak oturum açmanız gerekmez$id = [Security.Principal.WindowsIdentity]("username")
Bitcoin Murderous Maniac

1
Bu, tek astar için güzel bir şekilde kısalır [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | % {$_.Translate([Security.Principal.NTAccount])}.
alx9r

5

Bir kullanıcı için grup üyeliği alın:

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

Bkz . Bir Kullanıcı için Grup Üyeliği Alma

Ancak Quest'in Active Directory için Ücretsiz PowerShell Komutlarına da bakın .

[ Düzenle : Get-ADPrincipalGroupMembership komutu, Windows 2008 R2 ile v2'den beri Powershell'de bulunmaktadır. Aşağıdaki kstrauss'un cevabına bakınız.]


2
Aslında Quest cmdlet'leri ile daha kolay bir yol var: Get-QADGroup -Contains Primoz
fenster

18
Get-ADPrincipalGroupMembership artık PowerShell'de yerleşik olduğu için bu en iyi cevap değil
Rob Cannon

1
Get-ADPrincipalGroupMembership'i kullanmak çok daha iyi olacağı için oy verildi. Bu düşüşü geri almak istiyorum, ama yapamam. Cevabı, yerleşik seçeneğin var olduğunu göstermek için düzenleyeceğim.
İbrahim

4

Get-Member.NET üyelerini listelemek için kullanılan bir cmdlet'tir object. Bunun kullanıcı / grup üyeliği ile ilgisi yoktur. Mevcut kullanıcının grup üyeliğini şu şekilde alabilirsiniz:

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
...

Rasgele kullanıcıların grup bilgilerine erişmeniz gerekiyorsa, @tiagoinu Quest AD cmdlet'lerini kullanma önerisi gitmek için daha iyi bir yoldur.


4

İlk olarak, etkin dizin modülünü içe aktarın:

import-module activedirectory

Sonra şu komutu verin:

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

Bu, belirtilen grubun üyelerini görüntüler.


OP tam tersini ister. Belirtilen bir kullanıcının üyesi olduğu tüm grupları alın.
8DH

4

Basit bir astar olduğunda uzun komut dosyalarına gerek yoktur.

QUEST Komutu

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

MS AD Komutu

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

MS AD cmd daha hızlı buluyorum ama bazı insanlar Quest olanlar gibi daha iyi ..

Steve


4

Get-Member, kullanıcının grup üyeliğini almak için değildir. Bir kullanıcının yerel sistemde ait olduğu grupların bir listesini almak istiyorsanız, bunu şu şekilde yapabilirsiniz:

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

Get-WMIObject -Query $query | Select Name

Yukarıdaki sorguda, DemoUser1 yerine istediğiniz kullanıcı adını ve DomainName yerine yerel bilgisayar adınızı veya etki alanı adınızı yazın.


Bu sorgu çok zaman alıcıdır ve çevrede birden fazla kullanıcı ve grup olduğunda çok yavaş yanıt verir
randeepsp

Cevabı kim düzenliyorsa, doğru şekilde düzenlediğinizden emin olun. OP'ye DemoUser1'i istediği kullanıcı adıyla değiştirmesini öneriyordum. Ve bu anlamı tamamen değiştirdiniz.
ravikanth

4

kullanın:

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

Bu, komutun çıktısını bir CSV dosyasına aktarır .


4

Bu size mevcut kullanıcı için ayrıntıları sağlamalıdır. Powershell gerekli değildir.

whoami /groups


3

Sadece bir satır:

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

sonu :)


Bunu bir boruya bağlamak select -expandproperty memberof, çıktıyı biraz daha okunabilir / kullanışlı hale getirecektir.
Ben Thul

2

Get-ADPrincipalGroupMembershipRecursive adlı bir PowerShell işlevi yazdım. Bir kullanıcının, bilgisayarın, grubun veya hizmet hesabının DSN'sini kabul eder. Hesabın memberOf özniteliğinden ilk grup listesini alır, ardından bu grubun üyeliklerini özyineli olarak denetler. Kısaltılmış kod aşağıdadır. Yorumları içeren tam kaynak kodu burada bulunabilir .

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

Aşağıdakiler iyi çalışır:

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

Bir kullanıcı listeniz varsa:

$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 Oturum Açma Kimliği | % {$ _. MemberOf} | Get-QADGroup | isim seç


1

Belirli bir kullanıcı için çalışmak için aşağıdakileri alamadım:

Get-ADPrincipalGroupMembership username

Sorun gidermek istemediğim bir hata attı.

Ancak Get-ADUser kullanarak farklı bir çözüm buldum. Biraz daha iyi seviyorum çünkü hesap adını bilmiyorsanız, kullanıcının gerçek adına göre bir joker karakterden alabilirsiniz. Sadece PartOfUsersName doldurun ve gider.

#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
    }

Beni bu çözüme götürdüğüm için schmeckendeugler ve 8DH'ye büyük aksesuarlar. Her ikinize de +1.


1

Burada birçok mükemmel cevap olsa da, kişisel olarak aradığım bir eksik vardı. Bir kez anladım - daha sonra bulmak istemem durumunda göndermem gerektiğini düşündüm, ya da aslında bir noktada başka birine yardım etmeyi başarıyor:

Get-ADPrincipalGroupMembership username | Format-Table -auto

Bunu sunmak için ikinci bir yaklaşım, ilgilendiğiniz sütunları belirtmektir:

Get-ADPrincipalGroupMembership username | select name, GroupScope, GroupCategory

Bu, kullanıcı adının ait olduğu tüm AD gruplarına verir - ancak her grubun tüm varsayılan özelliklerini tablo olarak güzel bir şekilde biçimlendirir.

Bunun size sağladığı en önemli fayda, dağıtım listeleri ve hangilerinin Güvenlik grupları olduğunu bir bakışta görebilirsiniz. Ayrıca, hangilerinin Evrensel, hangilerinin DomainLocal ve hangilerinin Global olduğunu bir bakışta görebilirsiniz.
Neden bu son parçayı önemsesin ki?

  • Evrensel grup, ormandaki herhangi bir etki alanındaki kullanıcıları, grupları ve bilgisayarları üye olarak içeren bir güvenlik veya dağıtım grubudur. Evrensel güvenlik gruplarına ormandaki herhangi bir etki alanındaki kaynaklarla ilgili haklar ve izinler verebilirsiniz.
  • Genel grup, kendi etki alanında, üye sunucularda ve etki alanının iş istasyonlarında ve güvenilen etki alanlarında kullanılabilen bir gruptur. Tüm bu konumlarda, global bir gruba haklar ve izinler verebilirsiniz ve global grup yerel gruplara üye olabilir. Ancak, genel bir grup yalnızca kendi etki alanından olan kullanıcı hesapları içerebilir.
  • Etki alanı yerel grubu, evrensel grupları, genel grupları, kendi etki alanından diğer etki alanı yerel gruplarını ve ormandaki herhangi bir etki alanından hesapları içerebilen bir güvenlik veya dağıtım grubudur. Etki alanı yerel güvenlik gruplarına, yalnızca etki alanı yerel grubunun bulunduğu etki alanında bulunan kaynaklarda haklar ve izinler verebilirsiniz.

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
    }
}

-SearchBase değerini, kullanıcıları listelemeniz gereken OU'yu yansıtacak şekilde değiştirin :)

Bu, OU'daki tüm kullanıcıları listeleyecek ve hangi gruplara üye olduklarını gösterecektir.



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

Bu sadece isimleri almanın en basit yoludur:

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

Yanıtı kırpmak veya bir OU'daki her kullanıcıyı, kullanıcı oldukları her grupta almak için bir select ifadesi ekleyin:

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


0

Özyinelemeli hale getirmek için şunları kullanabilirsiniz:

<# 
    .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

Yukarıdaki çözümlerin neredeyse tamamı ActiveDirecotry, çoğu durumda varsayılan olarak bulunmayan modülü kullanmıştır .

Aşağıdaki yöntemi kullandım. Biraz dolaylı, ama amacım hizmet etti.

Mevcut tüm grupları listele

Get-WmiObject -Class Win32_Group

Sonra kullanıcının ait olduğu grupları listeleyin

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

Karşılaştırma daha sonra SIDs. Bu, giriş yapan kullanıcı için çalışır. Yanlışım varsa lütfen düzelt. PowerShell için tamamen yeni, ancak bir iş taahhüdü için bunu yapmak zorunda kaldı.


Zaten Yönetici grubunun üyesi olan bir kullanıcıyı kontrol ediyorsanız, PowerShell'i "Yönetici Olarak Çalıştır" ile başlattığınızdan emin olun, aksi takdirde gruplar 2. komut için doğru şekilde listelenmeyecektir ... anlaması biraz zaman aldı bu dışarı ... pencereler ...
Ruifeng Ma

0

Kullanıcı girişi ve fantezi çıktı biçimlendirmesi ile:

[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

Bunu ileride başvurmak üzere buraya koymak. Bir e-posta taşıma işleminin ortasındayım. Her bir kullanıcı hesabını ve ilgili grup üyeliğini ve ayrıca her bir grubu ve ilgili üyelerini de bilmem gerekiyor.

Her kullanıcının grup üyeliği için bir CSV çıktısı için aşağıdaki kod bloğunu kullanıyorum.

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 ; `
  }

Gruplar ve ilgili üyeleri için ihracat süreci biraz kıvrılmış, ancak aşağıdaki işler yapılmıştır. Çıktı dosya adları grubun türünü içerir. Bu nedenle, ihtiyacım olan e-posta dağıtım grupları Evrensel ve Global Dağıtım grupları olmalıdır / olmalıdır. İhtiyacım olmayan sonuçtaki TXT dosyalarını silebilir veya taşıyabilirim.

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

Sunulan tüm yorumları incelemek bana bir başlangıç ​​noktası verdi (bunun için teşekkürler) ama birkaç çözülmemiş sorunla beni terk etti. Sonuç olarak bu benim cevabım. Sağlanan kod snippet'i, istenenden biraz daha fazlasını yapar, ancak yararlı hata ayıklama bilgileri sağlar.

[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

Üzgünüm açıklığa kavuşturmayı unuttum. Önce bunu yapın: $ aduserDistinguishedName = "CN = ad, OU = ..." $ aduser = Get-ADUser -Identity $ aduserDistinguishedName -Properties *
ES44AC SD70MAC

0

Diğer üye gruplara danışma ayrıcalığınız yoksa ancak grup üyelerine danışma ayrıcalığınız varsa, hangi kullanıcının hangi gruplara erişimi olduğu bir harita oluşturmak için aşağıdakileri yapabilirsiniz.

$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)
    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.