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.
PowerShell Remoting WinRM makalesi kapak görseli

Yirmi sunucuda aynı kontrolü yapmanız gerektiğinde ne yaparsınız — her birine tek tek RDP ile mi bağlanırsınız? Bu yaklaşım beş sunucuda katlanılabilir, yirmisinde günün yarısını götürür. PowerShell Remoting (WinRM) tam olarak bu ölçeklenemeyen döngüyü kırmak için var: tek bir konsoldan onlarca makineye eşzamanlı komut gönderebiliyorsunuz.

WinRM’i Aktifleştirme

Modern Windows Server sürümlerinde WinRM genellikle varsayılan olarak etkin durumda, ama 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. Yirmi sunucuda aynı anda disk doluluk kontrolü yapmak istediğinizde:

$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ıyor:

$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 Tarafını İhmal Etmeyin

Varsayılan WinRM trafiği (port 5985) şifrelenmemiştir; üretim ortamında HTTPS (port 5986) ve sertifika tabanlı kimlik doğrulama kullanılmalı. TrustedHosts listesinde * yerine sadece gerçekten yönetilecek sunucu/domain’i belirtmek de aynı derecede önemli. Daha ileri gitmek isteyenler için JEA (Just Enough Administration), kullanıcılara tam yönetici yetkisi vermek yerine sadece ihtiyaç duydukları komutlara erişim tanımlayan kısıtlı endpoint’ler oluşturmayı mümkün kılıyor.

Kendi ortamımda her sabah, kritik uygulama sunucularındaki belirli servislerin (IIS, SQL, özel uygulama servisleri) çalışır durumda olduğunu tek bir script ile kontrol eden, çalışmayan varsa otomatik yeniden başlatıp bana bildirim gönderen bir rutin kullanıyorum. “Her şey ayakta mı?” sorusunun cevabını artık ben aramıyorum, script benim yerime arıyor.

Kısaca

PowerShell Remoting, tek makine yönetiminden “filo” yönetimine geçişin anahtarı. HTTPS, JEA ve sınırlı TrustedHosts gibi temel güvenlik önlemleriyle kurulduğunda, onlarca sunucuyu tek kişi ile verimli şekilde yönetmenizi mümkün kılıyor.

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.