Genel

Active Directory’de Kullanıcı Yönetimi için PowerShell Scripti

📌 Active Directory’de Kullanıcı Yönetimi için PowerShell Scripti
Tek bir PowerShell scriptiyle, kullanıcıların Manager bilgilerini değiştirebilir, pasif bir OU altına taşıyabilir, gruplardan çıkarabilir ve hesaplarını devre dışı bırakabilirsiniz. Bu işlemleri hızlı ve etkili bir şekilde gerçekleştirmek için aşağıdaki adımları takip edebilirsiniz: güncelleme yaptıkça adımlar artacaktır.


➡️ Manager Bilgisi kaldırma:

Kullanıcının mevcut yöneticisini tamamen boş bırakabilirsiniz.

➡️ Gruplardan Çıkarma:

Kullanıcıyı “Domain Users” grubu hariç tüm gruplardan çıkararak, gereksiz üyelikleri temizleyebilirsiniz.
➡️ Yeni OU’ya Taşıma:

Kullanıcıyı belirlenen yeni bir OU’ya taşıyarak organizasyonel düzenlemeleri kolaylaştırabilirsiniz.
➡️ Hesap Devre Dışı Bırakma:

Son adımda, kullanıcı hesabını devre dışı bırakarak işlemi tamamlayabilirsiniz.
Bu tür işlemler, özellikle ayrılan çalışanların hesaplarını yönetmek veya organizasyonel değişiklikleri uygulamak için oldukça faydalıdır. Daha fazla detay ve script için GitHub sayfamı ziyaret edebilirsiniz:

# =====================================================
# PowerShell AD Kullanıcı Yönetim Scripti
# Derleme: 10
# Versiyon: 1.1
# Yazar: Emrah Tolu
# =====================================================

# Script bilgilerini göster
Write-Host "=================================" -ForegroundColor Cyan
Write-Host " AD Kullanıcı Yönetim Scripti" -ForegroundColor Green
Write-Host " Derleme: 10 | Versiyon: 1.1" -ForegroundColor Yellow
Write-Host " Yazar: Emrah Tolu" -ForegroundColor Magenta
Write-Host "=================================" -ForegroundColor Cyan
Start-Sleep -Seconds 2  # Bilgi ekranını 2 saniye göster

# Kullanıcı listesinin bulunduğu dosya
$Users = Get-Content "C:\scripts\userdisable.txt"

# Yeni OU (Organizational Unit)
$NewOU = "OU=ISTEN_AYRILANLAR,OU=FINANS,DC=emrahtolu,DC=local"

# Kullanıcıya işlem seçmesi için menü göster
Write-Host "`nNe yapmak istersiniz? Seçim yapın:"
Write-Host "1 - Manager bilgisini kaldır"
Write-Host "2 - Domain Users hariç tüm gruplardan çıkar"
Write-Host "3 - Kullanıcıyı yeni OU'ya taşı"
Write-Host "4 - Kullanıcıyı devre dışı bırak"
$Secim = Read-Host "Seçiminizi girin (1, 2, 3, 4)"

# Kullanıcıları işleme al
foreach ($User in $Users) {
    $ADUser = Get-ADUser -Identity $User -ErrorAction SilentlyContinue

    if ($ADUser) {
        Write-Host "İşlem başlıyor: $User" -ForegroundColor Cyan

        switch ($Secim) {
            "1" {
                # 1. Kullanıcının "Manager" alanını BOŞALT
                Set-ADUser -Identity $User -Clear Manager
                Write-Host " - Manager bilgisi kaldırıldı" -ForegroundColor Green
            }

            "2" {
                # 2. Kullanıcıyı "Domain Users" hariç tüm gruplardan çıkar
                $Groups = Get-ADUser $User -Property MemberOf | Select-Object -ExpandProperty MemberOf
                foreach ($Group in $Groups) {
                    if ($Group -notmatch "CN=Domain Users,") {
                        Remove-ADGroupMember -Identity $Group -Members $User -Confirm:$false
                        Write-Host " - Çıkarıldı: $Group" -ForegroundColor Green
                    }
                }
            }

            "3" {
                # 3. Kullanıcıyı yeni OU'ya taşı
                Move-ADObject -Identity $ADUser.DistinguishedName -TargetPath $NewOU
                Write-Host " - Kullanıcı taşındı: $NewOU" -ForegroundColor Green
            }

            "4" {
                # 4. Kullanıcıyı devre dışı bırak
                Disable-ADAccount -Identity $User
                Write-Host " - Kullanıcı devre dışı bırakıldı." -ForegroundColor Yellow
            }

            default {
                Write-Host "Hatalı seçim! Lütfen 1-4 arasında bir değer girin." -ForegroundColor Red
            }
        } # switch kapandı
    } else {
        Write-Host "HATA: Kullanıcı bulunamadı - $User" -ForegroundColor Red
    }
} # foreach kapandı

Write-Host "Seçilen işlem tamamlandı." -ForegroundColor Magenta

(0)