AD grubu üyelerini PowerShell ile dışarı aktarma
Bazen Active Directory grup üyelerini CSV dosyasına aktarmak isteyebilirsiniz. Örneğin, tüm AD grubu üyelerini, yalnızca belirli bir kuruluş birimini veya birden çok grubu dışa aktarmanız gerekir. Bu makalede, AD grubu üyeliğini PowerShell ile CSV dosyasına nasıl aktaracağınızı öğreneceksiniz.
giriiş
Export-ADGroupMembers.ps1 PowerShell betiği, ayarladığınız distinguishedName'e karşı çalışacaktır. Bundan sonra üyeler de dahil olmak üzere AD gruplarını CSV dosyasına aktaracaktır. CSV dosyasını Microsoft Excel veya CSV dosya uzantısını destekleyen başka bir uygulamayla açabilirsiniz.
Komut dosyası aşağıdaki bilgileri dışa aktaracaktır:
İsim
Kategori
-
Kapsam
Üyeler
Not: Export-ADGroupMembers.ps1 PowerShell betiği, bir Active Directory grubunun üyelerini alır. Üyeler kullanıcılar, gruplar ve bilgisayarlar olabilir.
Active Directory grup üyeleri PowerShell betiğini dışarı aktarma
Başlamadan önce dosyaları doğru yere yerleştirmek istiyorsunuz. Yönetim Sunucusunun veya Etki Alanı Denetleyicisinin (C:) sürücüsünde Scripts ve Temp adında iki klasör oluşturmanızı öneririz.
Export-ADGroupMembers.ps1 PowerShell betiğini indirip C:\Scripts klasörüne yerleştirin.
Komut dosyasını çalıştırırken hataları önlemek için dosyanın engellemesinin kaldırıldığından emin olun. PowerShell betiğini çalıştırırken dijital olarak imzalanmamış hata makalesinde daha fazlasını okuyun.
Diğer bir seçenek de aşağıdaki kodu kopyalayıp Not Defteri'ne yapıştırmaktır. Ona Export-ADGroupMembers.ps1 adını verin ve C:\scripts klasörüne yerleştirin.
<#
.SYNOPSIS
Export-ADGroupMembers.ps1
.DESCRIPTION
Export Active Directory group members to CSV file.
.LINK
www.alitajran.com/export-ad-group-members-powershell
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 03/22/2022 - Initial version
V2.00, 03/25/2023 - Added extract contacts and groups + optimization for faster results
#>
# Get year and month for CSV export file
$DateTime = Get-Date -f "yyyyMMddhhmm"
# Set CSV file name
$CSVFile = "C:\temp\ADGroups_" + $DateTime + ".csv"
# Set distinguishedName as searchbase, you can use one DN or multiple DNs
# Or use the root domain like DC=exoip,DC=local
$DNs = @(
"DC=exoip,DC=local"
)
# Create empty array for CSV data
$CSVOutput = @()
# Create empty array for AD groups
$ADGroups = @()
# Loop through DNs
foreach ($DN in $DNs) {
# Add every DN to AD groups
$ADGroups += Get-ADGroup -Filter * -SearchBase $DN
}
# Set progress bar variables
$i = 0
$tot = $ADGroups.count
foreach ($ADGroup in $ADGroups) {
# Set up progress bar
$i++
$status = "{0:N0}" -f ($i / $tot * 100)
Write-Progress -Activity "Exporting AD Groups" -status "Processing Group $i of $tot : $status% Completed" -PercentComplete ($i / $tot * 100)
# Ensure Members variable is empty
$Members = ""
# Get group members which are also groups and add to string
$MembersArr = (Get-ADGroup -filter { Name -eq $ADGroup.Name } -Properties Members ).Members | Get-ADObject | select Name, objectClass, distinguishedName
if ($MembersArr) {
foreach ($Member in $MembersArr) {
$MemDN = $Member.distinguishedName
$UserObj = Get-ADUser -filter { DistinguishedName -eq $MemDN }
if ($UserObj.Enabled -eq $False) {
continue
}
if ($Member.objectClass -eq "user") {
$Members = $Members + ",U-" + $Member.Name
}
elseif ($Member.objectClass -eq "contact") {
$Members = $Members + ",C-" + $Member.Name
}
else {
$Members = $Members + ",G-" + $Member.Name
}
}
# Check for members to avoid error for empty groups
if ($Members) {
$Members = $Members.Substring(1, ($Members.Length) - 1)
}
}
# Set up hash table and add values
$HashTab = $null
$HashTab = [ordered]@{
"Name" = $ADGroup.Name
"Category" = $ADGroup.GroupCategory
"Scope" = $ADGroup.GroupScope
"Members" = $Members
}
# Add hash table to CSV data array
$CSVOutput += New-Object PSObject -Property $HashTab
}
# Export report to CSV file
$CSVOutput | Sort-Object Name | Export-Csv -Encoding UTF8 -Path $CSVFile -NoTypeInformation #-Delimiter ";"Satır 30: Hedef ayırt ediciAdı düzenleyin. Bir DN'niz veya birden fazla DN'niz olabilir (bununla ilgili daha fazla bilgiyi aşağıda farklı örneklerle bulabilirsiniz).
Ayırt edici bir isim alın
Ayırt edici ad değerini PowerShell betiğine eklemeniz gerekir. Active Directory'de ayırt edici adı almak için aşağıdaki adımları izleyin:
Active Directory Kullanıcıları ve Bilgisayarları'nı başlatın
Hedefi sağ tıklayın ve Özellikler'i tıklayın
-
Özellik Düzenleyici sekmesine gidin
Özellikler listesinde distuingedName özelliğini bulun
Dizeyi açmak için çift tıklayın ve değeri kopyalayın
Not: Özellik Düzenleyicisi sekmesini görmüyorsanız, Görünüm'deki menü çubuğundaki Active Directory Kullanıcıları ve Bilgisayarları'nı tıklayın ve <'yi etkinleştirinGelişmiş Özellikler.
AD grubu üyelerini CSV'ye aktar
PowerShell'i yönetici olarak çalıştırın. Komut dosyaları klasörünün yolunu değiştirin. AD grubu üyelerini CSV dosyasına aktarmak için PowerShell betiğini çalıştırın. Tamamlanana kadar bekleyin.
PS C:\> cd c:\scripts
PS C:\scripts> .\Export-ADGroupMembers.ps1Komut dosyaları klasörüne gidin ve ADGroups_ dosyasını gördüğünüzü doğrulayın. CSV dosyasını favori uygulamanızla açın. Örneğimizde Microsoft Excel var.
OU'daki AD grubu üyelerini dışa aktar
Kuruluş birimi ayırt edici adını alın ve satır 30'u değiştirin. Örneğimizde bu, kuruluş birimi Grupları'dır.
"OU=Groups,OU=Company,DC=exoip,DC=local"Birden çok kuruluş birimindeki AD grubu üyelerini dışarı aktarma
Kuruluş birimlerinin ayırt edici Adını alın ve satır 30'u değiştirin. Örneğimizde. Gruplar1 ve Gruplar2 kuruluş birimleridir.
"OU=Groups1,OU=Company,DC=exoip,DC=local",
"OU=Groups2,OU=Company,DC=exoip,DC=local"Belirli bir gruptaki AD grubu üyelerini dışa aktar
Grubun ayırt edici adını alın ve satır 30'u değiştirin. Örneğimizde bu, Pilot grubudur.
"CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local"AD grubu üyelerini birden fazla grupta dışa aktarın
Grupların ayırt edici Adını alın ve satır 30'u değiştirin. Örneğimizde Pilot ve İK gruplarıdır.
"CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local",
"CN=HR,OU=Groups,OU=Company,DC=exoip,DC=local"Bu, AD grubu üyeliğini CSV'ye aktarmanıza yardımcı oldu mu?
Devamını oku: Üyeleri bir AD grubundan diğerine kopyalama »
Çözüm
PowerShell ile AD grubu üyelerini CSV'ye nasıl aktaracağınızı öğrendiniz. Her kuruluşta çok sayıda grup vardır ve bunları CSV dosyasına aktarmak mükemmeldir. PowerShell betiğiyle hangi Active Directory gruplarını dışa aktarmak istediğinizi seçebilirsiniz.
Bu makaleyi beğendiniz mi? Ayrıca dağıtım grubu üyelerini PowerShell ile CSV'ye aktarma seçeneğini de beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.

