Merkezi olarak Sysmon Güncelleme

Yine bir tarama işlemi gerçekleştirirken sysmon sürümünde zafiyet olduğunu gördük. İlla zafiyet için düşünmeyin bu dosya bazen sistemlere mavi ekranda verdirebiliyor. Sürekli güncel tutmak gerekebiliyor. Sysmon uygulaması sysinternals paketi içinde exe olarak dağıtılıyor. Önce makineden mevcut sysmon sürümünü kaldırıp, sonra yeni versiyonu makineye kopyalayıp yeni sysmon sürümünü yüklememiz gerekiyor Elimizde bir çok sunucu var hepsine tek tek girip update işlemi gerçekleştirmek zaman alacaktır ve keyif kaçıracaktır.

Hadi bunu powershell ile gerçekleştirelim. Belirttiğim alan içerisinde yer alan dosyayı al hedef ip adreslerinin ilgili dizini içerisine aktar. txt içerisine ben zafiyetli ip adreslerimi ekledim sadece kullanılan cihazlarda güncelleme gerçekleşsin diye. Gereksiz yere ihtiyacı olmayan bir makineye ek bir uygulama kurmak, servis açmak vs gibi durumlardan kaçınmakta fayda var.

Ben bu makaleyi yazarken mevcut güncel sürüm v15.11 idi. Script her çalıştığında gidip mevcut sürümü kaldırıp yükleme işlemi gerçekleştirmesin diye v15.11 e eşit olmayan sürümlerde işlemi gerçekleştirmesi için koşul yazdım. Sunucu listesi ve sysmon mevcut güncel sürümünü sistemlerin erişebileceği ortak bir alana koydum. Sunucuda ilgili script çalıştığında bilgileri ortak alandan alarak gerçekleştirecektir.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# sunucu listesi
$txtDosya = Import-Csv "\\xxx\SYSVOL\xxxx\softwaresetup\Sysmon\sysmonupdate.txt" -Header ServerName
# Hostname'i al
$hostname = $env:COMPUTERNAME
# Sysmon versiyonunu al
$sysmonVersion = (Get-Command -Name sysmon).FileVersionInfo.ProductVersion
# sunucu listesinin her birini tek tek kontrol et
try {
foreach ($satir in $txtDosya.ServerName) {
# Satır ile hostname'i karşılaştır
if ($satir -eq $hostname) {
# Eşleşme bulundu, scripti çalıştır
Write-Host "Eşleşme bulundu! Sysmon güncelleniyor..."
# Eğer sysmon versiyonu 15.11 değilse güncelle
if ($sysmonVersion -ne "15.11") {
Write-Host "Sysmon versiyonu $sysmonVersion. Güncelleniyor..."
# Eski Sysmon sürümünü kaldır
& sysmon -u
# Yeni Sysmon sürümünü yükle
& "\\xxx\SYSVOL\xxxx\softwaresetup\Sysmon\Sysmon.exe" -i -accepteula
Write-Host "Sysmon güncellendi."
} else {
Write-Host "Sysmon zaten en son sürümde ($sysmonVersion). Güncelleme gerekmiyor."
}
# Buraya başka işlemleri ekleyebilirsiniz
break
}
}
} catch {
Write-Host "Hata: $_"
}
# sunucu listesi $txtDosya = Import-Csv "\\xxx\SYSVOL\xxxx\softwaresetup\Sysmon\sysmonupdate.txt" -Header ServerName # Hostname'i al $hostname = $env:COMPUTERNAME # Sysmon versiyonunu al $sysmonVersion = (Get-Command -Name sysmon).FileVersionInfo.ProductVersion # sunucu listesinin her birini tek tek kontrol et try { foreach ($satir in $txtDosya.ServerName) { # Satır ile hostname'i karşılaştır if ($satir -eq $hostname) { # Eşleşme bulundu, scripti çalıştır Write-Host "Eşleşme bulundu! Sysmon güncelleniyor..." # Eğer sysmon versiyonu 15.11 değilse güncelle if ($sysmonVersion -ne "15.11") { Write-Host "Sysmon versiyonu $sysmonVersion. Güncelleniyor..." # Eski Sysmon sürümünü kaldır & sysmon -u # Yeni Sysmon sürümünü yükle & "\\xxx\SYSVOL\xxxx\softwaresetup\Sysmon\Sysmon.exe" -i -accepteula Write-Host "Sysmon güncellendi." } else { Write-Host "Sysmon zaten en son sürümde ($sysmonVersion). Güncelleme gerekmiyor." } # Buraya başka işlemleri ekleyebilirsiniz break } } } catch { Write-Host "Hata: $_" }
# sunucu listesi
$txtDosya = Import-Csv "\\xxx\SYSVOL\xxxx\softwaresetup\Sysmon\sysmonupdate.txt" -Header ServerName

# Hostname'i al
$hostname = $env:COMPUTERNAME

# Sysmon versiyonunu al
$sysmonVersion = (Get-Command -Name sysmon).FileVersionInfo.ProductVersion

# sunucu listesinin her birini tek tek kontrol et
try {
    foreach ($satir in $txtDosya.ServerName) {
        # Satır ile hostname'i karşılaştır
        if ($satir -eq $hostname) {
            # Eşleşme bulundu, scripti çalıştır
            Write-Host "Eşleşme bulundu! Sysmon güncelleniyor..."

            # Eğer sysmon versiyonu 15.11 değilse güncelle
            if ($sysmonVersion -ne "15.11") {
                Write-Host "Sysmon versiyonu $sysmonVersion. Güncelleniyor..."
                
                # Eski Sysmon sürümünü kaldır
                & sysmon -u
                
                # Yeni Sysmon sürümünü yükle
                & "\\xxx\SYSVOL\xxxx\softwaresetup\Sysmon\Sysmon.exe" -i -accepteula
                
                Write-Host "Sysmon güncellendi."
            } else {
                Write-Host "Sysmon zaten en son sürümde ($sysmonVersion). Güncelleme gerekmiyor."
            }

            # Buraya başka işlemleri ekleyebilirsiniz
            break
        }
    }
} catch {
    Write-Host "Hata: $_"
}

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir