PowerShell ile Çoklu Sunucu Inventory Çıkarma

0 Cavablar 5 Baxış
·
İştirakçılar
Mövzunu Açan #0
PowerShell kullanarak birden fazla sunucu üzerinde otomatik envanter alma yöntemleri, özellikle büyük ölçekli altyapılarda zaman ve iş gücü tasarrufu sağlar. Bu süreçte, farklı sunucu türleri ve ortamlar dikkate alınmalı, uygun bağlantı ve güvenlik yapılandırmaları yapılmalıdır. İşte temel adımlar ve dikkat edilmesi gereken noktalar:

  1. Hedef Sunucu Listesi ve Bağlantı Yöntemi:

Sunucu isimleri veya IP adreslerini içeren bir liste hazırlayın. Bu listeyi bir text dosyası veya CSV formatında tutabilirsiniz. Ayrıca, uzak PowerShell oturumu açmak için WinRM veya SSH yapılandırmalarının doğru şekilde ayarlandığından emin olun.
Örnek:
  • servers.txt veya servers.csv dosyasına sunucu adreslerini ekleyin.
  • PowerShell remoting'in etkin ve güvenli olduğundan emin olun.

    1. Otomasyon Scriptleri:

    PowerShell ile Invoke-Command veya Enter-PSSession komutları kullanılarak uzak makinelerde komutlar çalıştırılır. Çoklu sunucu için foreach döngüsü veya ForEach-Object -Parallel (PowerShell 7+) tercih edilir.
    Örneğin:
    KOD
    123456789  
    $servers = Get-Content -Path 'servers.txt'  
    foreach ($server in $servers) {  
        Invoke-Command -ComputerName $server -ScriptBlock {  
            # Envanter komutları burada  
            Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'  
            # Diğer bilgiler  
        }  
    }  
    


    1. Toplanan Verilerin İşlenmesi:

    Her sunucudan alınan bilgiler birleştirilmeli ve rapor haline getirilmeli. Bu amaçla, çıktılarını CSV veya JSON formatında kaydedip, merkezi bir rapor oluşturabilirsiniz. Ayrıca, hata yönetimi ve loglama yapmanız, başarısız olan bağlantıları veya hataları tespit etmenize yardımcı olur.

    1. Güvenlik ve Yetkilendirme:

    Uzak PowerShell bağlantıları için uygun kullanıcı izinleri ve güvenlik politikaları belirlenmeli. Ayrıca, scriptlerin çalıştığı ortamda gerekli yetkilere sahip olunmalı.

    1. Örnek Uygulama:

    Aşağıdaki örnek, temel bir envanter alma scriptidir; geliştirilerek detaylandırılabilir:
    KOD
    12345678910111213  
    $servers = Get-Content -Path 'servers.txt'  
    $results = foreach ($server in $servers) {  
        try {  
            $info = Invoke-Command -ComputerName $server -ScriptBlock {  
                Get-ComputerInfo | Select-Object CsName, WindowsVersion, OsHardwareAbv, OsArchitecture  
            }  
            [PSCustomObject]@{Sunucu=$server; Bilgi=$info}  
        } catch {  
            [PSCustomObject]@{Sunucu=$server; Hata='Bağlantı başarısız'}  
        }  
    }  
    $results | Export-Csv -Path 'envanter.csv' -NoTypeInformation  
    


    Bu yöntem, büyük ağlarda otomatik envanter çıkarma işlemini kolaylaştırır. Sizler hangi araç veya metodları tercih ediyorsunuz? Otomasyon süreçlerinizde karşılaştığınız en büyük zorluklar nelerdir?
  • Cavab vermək üçün daxil olmalısınız.

    0 sitat seçildi