Linux’ta Yardım Alma Yöntemleri: man Komutu Rehberi

Active Directory ortamında bir şeyler ters gittiğinde, PowerShell konsolunun başında çaresizce ne yapacağını düşünen bir sysadmin’in halini çok iyi biliyorum. “Bu cmdlet’in parametresi neydi?”, “Hangi flag’i kullanmam lazım?” sorularıyla boğuşmak yerine, aslında ihtiyacın olan her şey zaten elinizin altında. Windows Server ve Active Directory yönetiminde man komutu ve onun Windows ekvivalentleri, seni bu çaresizlikten kurtaracak en güçlü araçlar arasında.

man Komutu Nedir ve Windows’ta Karşılığı Ne?

Linux/Unix dünyasından gelen sysadmin’ler man komutunu iyi bilir. Terminal’e man ls yazarsın, karşına o komutun tüm parametreleri, açıklamaları ve örnekleriyle birlikte kapsamlı bir belge gelir. Peki Windows Server ortamında, özellikle Active Directory yönetirken bu işi nasıl yapıyoruz?

Windows’ta man komutunun doğrudan bir ekvivalenti yok ama PowerShell’in Get-Help cmdlet’i bu boşluğu fazlasıyla dolduruyor. Hatta bazı açılardan Linux’taki man komutundan daha işlevsel olduğunu söyleyebilirim. Bunun yanında help takma adı (alias) ve -? parametresi de hayat kurtaran alternatifler.

Windows Server 2019/2022 üzerinde Active Directory Yönetimi yaparken bu araçları etkin kullanmak, hem sorun giderme sürenizi kısaltır hem de yeni cmdlet’leri öğrenme eğrinizi ciddi ölçüde düzleştirir.

Get-Help: PowerShell’in man Komutu

Get-Help, PowerShell’in yerleşik yardım sistemidir. Active Directory modülündeki herhangi bir cmdlet hakkında detaylı bilgi almak için birincil başvuru noktanız burası olmalı.

Temel kullanım şöyle:

Get-Help Get-ADUser

Bu komut sana cmdlet’in ne işe yaradığını, sözdizimini ve parametre listesini gösterir. Ama bu sadece başlangıç. Get-Help‘in asıl gücü parametrelerinde gizli.

Get-Help Parametreleri

-Full: Komutun tüm belgelerini gösterir, parametre açıklamaları dahil.

-Detailed: Full’dan biraz daha az, ama temel parametreler için yeterli detayda bilgi verir.

-Examples: Sadece kullanım örneklerini gösterir, hızlı başvuru için ideal.

-Online: Belgeyi Microsoft’un resmi sitesinde tarayıcıda açar.

-Parameter: Belirli bir parametre hakkında detaylı bilgi verir.

-ShowWindow: Yardım içeriğini ayrı bir pencerede gösterir, kaydırma yapmak için ideal.

Active Directory Senaryolarında Get-Help Kullanımı

Diyelim ki bir kullanıcının şifresini sıfırlamanız gerekiyor ama Set-ADAccountPassword cmdlet’inin parametrelerini tam hatırlamıyorsunuz.

Get-Help Set-ADAccountPassword -Full

Bu komutu çalıştırdığınızda karşınıza şu yapıda bir çıktı gelir: Komutun açıklaması, sözdizimi, her parametre için tip bilgisi, zorunlu olup olmadığı ve pipeline’dan değer alıp almadığı. Gerçek hayatta bu kadar detay çoğu zaman sizi Google’a gitmekten kurtarır.

Sadece örnekleri görmek istiyorsanız:

Get-Help Set-ADAccountPassword -Examples

Çıktıda şuna benzer örnekler görürsünüz:

# Örnek: Belirli bir kullanıcının şifresini sıfırlamak
$NewPassword = (Read-Host -Prompt "Yeni şifre girin" -AsSecureString)
Set-ADAccountPassword -Identity "ahmet.yilmaz" -NewPassword $NewPassword -Reset

Yardım Veritabanını Güncellemek

Önemli bir not: PowerShell’i yeni kurduğunuzda veya yeni bir Windows Server ortamı kurduğunuzda, yardım dosyaları genellikle tam olarak yüklü gelmez. Get-Help çalıştırdığınızda “yardım dosyası bulunamadı” ya da çok kısa açıklamalar görürseniz, ilk yapmanız gereken şu komutu çalıştırmak:

Update-Help -Force -Verbose

Bu komut Microsoft sunucularından güncel yardım dosyalarını indirir. İnternet bağlantısı olmayan ortamlarda (ki AD ortamlarında bu sık karşılaşılan bir durum) şu alternatifi kullanabilirsiniz:

# Önce internete erişimi olan bir makinede yardım dosyalarını kaydedin
Save-Help -DestinationPath "\fileserverPSHelp" -Force

# Sonra kapalı ortamdaki sunucuda bu klasörden güncelleyin
Update-Help -SourcePath "\fileserverPSHelp" -Force

Bu adımı atlamak, Get-Help’i yarım kapasitede kullanmak anlamına gelir. Özellikle -Full parametresiyle beklediğiniz detaylı açıklamaları göremezsiniz.

help Takma Adı ve -? Kullanımı

Get-Help dışında iki kısa yol daha var. Bunların farkını anlamak önemli.

help komutu: Get-Help‘in bir wrapper’ı aslında. Farkı şu: çıktıyı sayfa sayfa gösterir (sayfalama yapar), yani ekrana sığmayan uzun yardım metinlerinde Spacebar veya Enter ile ilerlersiniz. Özellikle terminal pencerenizde kaydırma yapmaktan hoşlanmıyorsanız tercih edin.

help Get-ADGroupMember

-? parametresi: Hızlı sözdizimi özeti için biçilmiş kaftan. Direkt komutun yanına ekliyorsunuz:

Get-ADUser -?

Bu özellikle “bu parametrenin adı tam olarak neydi?” sorusunu yanıtlamak için mükemmel. Tam belgeye ihtiyacınız yoksa -? ile 5 saniyede işinizi görürsünüz.

Wildcard ile Cmdlet Keşfi

Active Directory’de bir işlem yapmak istiyorsunuz ama hangi cmdlet’i kullanacağınızı bilmiyorsunuz. Mesela “disabled” olan kullanıcılarla ilgili bir şeyler yapmak istiyorsunuz. İşte burada wildcard araması devreye giriyor:

Get-Help *ADUser*

Bu komut, adında “ADUser” geçen tüm cmdlet’leri listeler. Çıktıda Get-ADUser, New-ADUser, Set-ADUser, Remove-ADUser gibi cmdlet’leri görürsünüz.

Daha geniş bir arama için:

Get-Help *AD*

Bu biraz fazla sonuç getirebilir. Daha odaklı bir arama için Get-Command ile birleştirmek daha işlevsel:

Get-Command -Module ActiveDirectory | Where-Object {$_.Name -like "*Group*"}

Bu komut ActiveDirectory modülünde “Group” kelimesini içeren tüm cmdlet’leri gösterir. Grup yönetimiyle ilgili tüm araçlara tek komutla ulaşmış olursunuz.

Get-Help ile Gerçek Dünya AD Senaryoları

Senaryo 1: Toplu Kullanıcı Oluşturma Scriptini Yazmak

Yeni bir proje ekibi kurulacak, 15 kullanıcı hesabı oluşturmanız gerekiyor. New-ADUser cmdlet’ini daha önce çok kullanmadınız.

Get-Help New-ADUser -Full | more

Burada | more eklemek, uzun çıktıyı sayfalara böler. -Full parametresiyle her bir parametrenin ne anlama geldiğini, hangi değerleri alabileceğini öğrenirsiniz. Özellikle -AccountPassword, -PasswordNeverExpires, -Enabled gibi kritik parametrelerin davranışını anlamak için bu adımı atlamayın.

Örnekleri inceledikten sonra şu yapıda bir script hazırlarsınız:

# Kullanıcı oluşturma örneği - Get-Help New-ADUser -Examples çıktısından öğrendik
$SecurePassword = ConvertTo-SecureString "TempPass123!" -AsPlainText -Force

New-ADUser `
    -Name "Mehmet Kaya" `
    -GivenName "Mehmet" `
    -Surname "Kaya" `
    -SamAccountName "mehmet.kaya" `
    -UserPrincipalName "[email protected]" `
    -Path "OU=ProjEkibi,DC=sirket,DC=local" `
    -AccountPassword $SecurePassword `
    -PasswordNeverExpires $false `
    -ChangePasswordAtLogon $true `
    -Enabled $true

Senaryo 2: Belirli Bir OU’daki Devre Dışı Hesapları Bulmak

Güvenlik denetimi sırasında devre dışı bırakılmış ama silinmemiş hesapları raporlamanız gerekiyor. Get-ADUser‘ın -Filter ve -SearchBase parametrelerini doğru kullanmak için:

Get-Help Get-ADUser -Parameter Filter
Get-Help Get-ADUser -Parameter SearchBase

Tek tek parametre yardımı almak, bazen -Full çıktısının içinde kaybolmaktan daha pratik. Bu iki komuttan sonra ne yapmanız gerektiğini anlarsınız:

Get-ADUser -Filter {Enabled -eq $false} `
    -SearchBase "OU=Kullanicilar,DC=sirket,DC=local" `
    -Properties LastLogonDate, DistinguishedName | `
    Select-Object Name, SamAccountName, LastLogonDate | `
    Export-Csv "devre_disi_hesaplar.csv" -NoTypeInformation -Encoding UTF8

Senaryo 3: Grup Üyeliklerini Yönetmek

Bir kullanıcının hangi gruplara üye olduğunu görmek ve yeni gruba eklemek için hangi cmdlet’leri kullanacağınızı bilmiyorsunuz:

Get-Help Get-ADPrincipalGroupMembership -Examples
# Kullanıcının mevcut grup üyeliklerini listele
Get-ADPrincipalGroupMembership -Identity "ahmet.yilmaz" | 
    Select-Object Name, GroupCategory, GroupScope | 
    Sort-Object Name

About Konuları: Kavramsal Yardım

Get-Help‘in az bilinen ama çok değerli bir özelliği var: “about” konuları. Bunlar belirli bir cmdlet hakkında değil, PowerShell kavramları ve Active Directory hakkında açıklayıcı makaleler.

Get-Help about_ActiveDirectory

Veya tüm about konularını listelemek için:

Get-Help about_*

Bu konular arasında şunlar bulunur:

  • about_ActiveDirectory_Filter: AD sorgularında filter sözdizimini açıklar
  • about_ActiveDirectory_Identity: Identity parametresinin nasıl çalıştığını anlatır
  • about_ActiveDirectory_ObjectModel: AD nesne modelini açıklar

Özellikle about_ActiveDirectory_Filter konusu, Get-ADUser -Filter yazarken hangi sözdizimini kullanmanız gerektiği konusunda sizi aydınlatır. LDAP filtresi mi, PowerShell filtresi mi, ne fark var gibi soruların cevabını burada bulursunuz.

Get-Help about_ActiveDirectory_Filter -Full

Get-Member: Nesne Yapısını Anlamak

man ve Get-Help konusundan biraz sapıyorum ama şunu söylemeden geçemem: Active Directory objelerinin hangi property’lere sahip olduğunu anlamak için Get-Member cmdlet’i inanılmaz değerli.

Get-ADUser -Identity "ahmet.yilmaz" -Properties * | Get-Member

Bu komut size bir AD kullanıcı nesnesinin sahip olduğu tüm özellikleri ve metodları listeler. “Bu kullanıcının hangi alanlarını sorgulayabilirim?” sorusunun cevabı burada. Get-Help‘i bilgi almak için kullanıyorsunuz, Get-Member‘ı da çalışacağınız nesneyi tanımak için.

Çevrimdışı Ortamlarda Yardım Stratejisi

Pek çok kurumsal Active Directory ortamı internet erişimi olmayan ya da kısıtlı sunucularda çalışır. Bu durumda Get-Help -Online kullanamaz, Update-Help de internet istemez. Bunun için bir strateji geliştirmeniz gerekiyor.

Seçenek 1: Yardım dosyalarını önceden kaydedin

Daha önce bahsettiğim Save-Help ve Update-Help -SourcePath kombinasyonu bu sorunu çözer. Bunu periyodik olarak yaparak yardım dosyalarınızı güncel tutun.

Seçenek 2: Yardım içeriğini HTML’e aktarın

Get-Help Get-ADUser -Full | Out-File "C:DocsGetADUser_Help.txt" -Encoding UTF8

Tüm sık kullandığınız AD cmdlet’leri için bu dosyaları oluşturup bir paylaşım klasöründe tutabilirsiniz. Ekibinizdeki diğer sysadmin’ler de faydalanır.

Seçenek 3: ISE veya VS Code entegrasyonu

PowerShell ISE içinde F1 tuşu, imlecin altındaki cmdlet için Get-Help çalıştırır. VS Code’da PowerShell uzantısı kuruluysa benzer bir işlevsellik sunar. Bunları da alternatif olarak kullanabilirsiniz.

Get-Help Kullanımında Pratik İpuçları

Yıllar içinde edindiğim birkaç pratik alışkanlık var, bunları paylaşayım.

Önce -Examples, sonra -Full: Yeni bir cmdlet öğrenirken önce örneklere bakın. Örnekler çoğu zaman cmdlet’i nasıl kullanacağınızı göstermek için yeterli. Parametrenin detayına ihtiyaç duyarsanız -Full‘a geçin.

Büyük çıktıları sayfalayın: Uzun help çıktılarını | more veya help alias’ı ile sayfalayın. Terminal’de yukarı kaydırarak okumak yorucu.

Arama yaparken -Name kullanın: Belirli bir işlev için cmdlet ararken:

Get-Help -Name "*disable*" -Category Cmdlet

Category parametresiyle sonuçları daraltın: -Category parametresi ile sonuçları Cmdlet, Function, Alias gibi tiplere göre filtreleyebilirsiniz.

Get-Help -Category Cmdlet *ADAccount*

Bu şekilde sadece cmdlet’leri görerek alias ve function karmaşasından kurtulursunuz.

Linux man ile PowerShell Get-Help Karşılaştırması

Linux’tan Windows Server’a geçiş yapan veya her iki ortamda da çalışan sysadmin’ler için bu iki aracın mantığını karşılaştırmak faydalı.

Linux’ta man ls yazarsınız, sayfalar halinde belge gelir, q ile çıkarsınız. Basit, hızlı, evrensel.

PowerShell’de Get-Help Get-ADUser yazarsınız. Fark şu: PowerShell yardımı dinamik olarak güncellenebilir, çevrimiçi versiyona yönlendirebilir, belirli parametreler için ayrı yardım alabilirsiniz. Bunların hiçbiri Linux’taki man komutunda yok.

Öte yandan Linux man her zaman kurulu gelir, offline çalışır, her komut için otomatik olarak bir sayfa vardır. PowerShell’de Update-Help çalıştırmazsanız yarım yardım alırsınız.

Her iki yaklaşımın da güçlü yanları var. Ama Active Directory yönetimi gibi karmaşık bir alanda PowerShell’in dinamik ve aranabilir yardım sistemi, statik man sayfalarından üstün.

Modül Bazlı Yardım

Active Directory dışında da çalışıyorsanız, hangi modülün hangi cmdlet’leri sunduğunu bilmek önemli. Önce modülleri listeleyin:

Get-Module -ListAvailable | Where-Object {$_.Name -like "*Active*"}

Sonra o modülün tüm komutlarını ve bunlar için yardım alın:

Get-Command -Module ActiveDirectory | ForEach-Object {
    Write-Host "--- $($_.Name) ---"
    Get-Help $_.Name -Synopsis
}

Bu küçük script, ActiveDirectory modülündeki tüm cmdlet’lerin kısa açıklamalarını sırayla listeler. Modülü ilk öğrenirken veya yeni bir ekip üyesine sunum yaparken çok işe yarar.

Sonuç

Active Directory yönetiminde Get-Help ve ilgili araçları etkin kullanmak, sizi sürekli Google’a veya Stack Overflow’a koşmaktan kurtarır. Evet, internet araması bazen daha hızlı hissettirebilir. Ama doğru parametreyi bulmak için forumlarda 10 dakika kaybolmak yerine, Get-Help Set-ADUser -Examples ile 30 saniyede işe yarayan bir örnek görmek çok daha verimli.

Önerdiğim alışkanlık şu: Her yeni AD cmdlet’ini kullanmadan önce en az Get-Help CmdletAdi -Examples çalıştırın. Zamanla hangi parametrelerin nerede olduğunu ezberlersiniz ama o noktaya kadar bu alışkanlık hem hata yapmanızı önler hem de cmdlet’leri daha derinlemesine öğrenmenizi sağlar.

Update-Help‘i düzenli çalıştırmayı unutmayın, yardım dosyaları eskise yarım bilgiyle çalışıyorsunuz demektir. Ve internet erişimi olmayan ortamlar için Save-Help ile merkezi bir yardım deposu oluşturun. Ekibinizin geri kalanı da teşekkür edecektir.

Son olarak şunu söyleyeyim: En iyi sysadmin her şeyi ezberden bilen değil, bilgiye nasıl hızlı ulaşacağını bilen kişidir. Get-Help tam da bu beceriyi destekleyen araçtır.

Yorum yapın