Follow
Follow

Uzaktan Yönetimde Güç: PowerShell Remoting (WinRM) Kurulumu ve Güvenli Komut Çalıştırma

PowerShell Remoting (WinRM) kurulumunu, güvenli kimlik doğrulamasını ve onlarca sunucuda aynı anda komut çalıştırma tekniklerini anlatıyorum.

Onlarca sunucuya tek tek RDP ile bağlanıp aynı komutu çalıştırmak, ölçeklenemeyen bir yaklaşımdır. PowerShell Remoting (WinRM), tek bir konsoldan onlarca makineye eşzamanlı komut göndermenizi sağlar.

WinRM’i Aktifleştirme

Modern Windows Server sürümlerinde WinRM genellikle varsayılan olarak etkindir, ancak doğrulamak ve gerekirse aktifleştirmek için:

# Hedef sunucuda çalıştırılır
Enable-PSRemoting -Force
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*.sirket.local" -Force

Tek Bir Sunucuya Bağlanma

Enter-PSSession -ComputerName SRV-WEB01 -Credential (Get-Credential)

Birden Fazla Sunucuda Aynı Anda Komut Çalıştırma

Asıl güç burada ortaya çıkıyor — 20 sunucuda aynı anda disk doluluk kontrolü yapmak:

$sunucular = @("SRV-WEB01", "SRV-WEB02", "SRV-DB01", "SRV-APP01")

Invoke-Command -ComputerName $sunucular -ScriptBlock {
    Get-PSDrive C | Select-Object @{N='Sunucu';E={$env:COMPUTERNAME}}, Used, Free
} -Credential (Get-Credential) | Format-Table -AutoSize

Kalıcı Oturumlar (Persistent Sessions) ile Verimlilik

Her komut için yeni bağlantı kurmak yerine, kalıcı bir oturum açıp birden fazla komutu aynı oturumda çalıştırmak performans kazandırır:

$oturum = New-PSSession -ComputerName SRV-WEB01
Invoke-Command -Session $oturum -ScriptBlock { Get-Service W3SVC }
Invoke-Command -Session $oturum -ScriptBlock { Restart-Service W3SVC }
Remove-PSSession $oturum

Güvenlik: WinRM’i Sıkılaştırmak

  • HTTPS kullanın: Varsayılan WinRM trafiği şifrelenmemiştir (HTTP, port 5985); üretim ortamında HTTPS (port 5986) ve sertifika tabanlı kimlik doğrulama kullanılmalı
  • TrustedHosts’u sınırlayın: * yerine sadece gerçekten yönetilecek sunucu/domain’i belirtin
  • JEA (Just Enough Administration): Kullanıcılara tam yönetici yetkisi yerine, sadece ihtiyaç duydukları komutlara erişim tanımlayan kısıtlı endpoint’ler oluşturun

Sahadan Bir Kullanım: Toplu Servis Sağlık Kontrolü

Her sabah, kritik uygulama sunucularındaki belirli servislerin (IIS, SQL, özel uygulama servisleri) çalışır durumda olduğunu tek bir script ile kontrol edip, çalışmayan varsa otomatik olarak yeniden başlatıp bana bildirim gönderen bir rutin kullanıyorum. Bu, sabah ilk iş “her şey ayakta mı?” kontrolünü tamamen otomatikleştiriyor.

Sonuç

PowerShell Remoting, tek makine yönetiminden “filo” (fleet) yönetimine geçişin anahtarıdır. Doğru güvenlik önlemleriyle (HTTPS, JEA, sınırlı TrustedHosts) kurulduğunda, onlarca sunucuyu tek kişi ile verimli şekilde yönetmenizi mümkün kılar.

Comments
Join the Discussion and Share Your Opinion
Add a Comment

Bir yanıt yazın

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


Newsletter
Join Design Community
Get the latest updates, creative tips, and exclusive resources straight to your inbox. Let’s explore the future of design and innovation together.