PowerShell ile Remote Management ve WinRM

3 Min Read
PowerShell ile Remote Management

PowerShell Uzak Bilgisayar Yönetimi Nedir?

PowerShell ile Remote Management, ağ üzerindeki bilgisayarlara uzaktan bağlanarak komut veya script çalıştırma işlemidir.
Bu özellik, WinRM (Windows Remote Management) protokolü üzerinden çalışır ve sistem yöneticilerine büyük kolaylık sağlar.

PowerShell ile remote management kullanarak:

  • Sunuculara fiziksel erişim olmadan işlem yapabilir,

  • Toplu komut çalıştırabilir,

  • Servis, log veya güncelleme işlemlerini uzaktan yönetebilirsiniz.

Uzak sistemlerde log kontrolü yapmak istersen PowerShell ile Event Log Yönetimi makalesini inceleyebilirsin.

WinRM Nedir ve Nasıl Etkinleştirilir?

WinRM, PowerShell Remoting altyapısının temel bileşenidir.
Uzak bağlantı yapmadan önce hedef bilgisayarlarda etkinleştirilmesi gerekir.

Yerel bilgisayarda etkinleştirmek için:

Enable-PSRemoting -Force

Uzak sistemlerde toplu etkinleştirme için (örneğin GPO veya oturum açma scripti ile):

Invoke-Command -ComputerName PC01,PC02 -ScriptBlock { Enable-PSRemoting -Force }

İpucu: Güvenlik duvarı (Firewall) üzerinde TCP 5985 (HTTP) ve TCP 5986 (HTTPS) portlarının açık olduğundan emin olun.

Güvenlik Ayarları

Bazı ortamlarda güvenli olmayan ağlar için HTTPS kullanımı önerilir.
Sertifika tabanlı bağlantı için:

winrm quickconfig -transport:https

TrustedHosts listesine belirli bilgisayarları ekleyebilirsiniz:

Set-Item WSMan:\localhost\Client\TrustedHosts "SRV-01,SRV-02"

Listeyi doğrulamak:

Get-Item WSMan:\localhost\Client\TrustedHosts

PowerShell Remote Session Komutları

Tek bir uzak bilgisayara bağlanmak için:

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

Bağlantıdan çıkmak:

Exit-PSSession

Birden fazla bilgisayarda aynı anda komut çalıştırmak için:

Invoke-Command -ComputerName SRV-01,SRV-02,SRV-03 -ScriptBlock { Get-Service | Where-Object {$_.Status -eq "Running"} }

Gerçek Senaryo: Ağdaki Tüm Bilgisayarlarda Servis Kontrolü

Aşağıdaki script, belirli bir servis durumunu (örneğin “BITS”) ağdaki tüm cihazlarda kontrol eder:

# PowerShell Remote Management – Servis Kontrol Scripti $computers = Get-Content "C:\Scripts\computerlist.txt" $serviceName = "BITS" foreach ($pc in $computers) { try { $service = Invoke-Command -ComputerName $pc -ScriptBlock { Get-Service -Name $using:serviceName } Write-Host "$pc - $($service.Status)" -ForegroundColor Green } catch { Write-Warning "Bağlantı hatası: $pc" } }

Bu yöntem, ağınızdaki tüm sistemlerin servis durumlarını kolayca izlemeyi sağlar.

 Uzak Komutları Script’ten Çalıştırma

Uzak bir bilgisayarda script dosyası çalıştırmak:

Invoke-Command -ComputerName SRV-01 -FilePath "C:\Scripts\Inventory.ps1"

Uzak sistemde komutu yönetici olarak çalıştırmak için:

Invoke-Command -ComputerName SRV-01 -Credential (Get-Credential) -ScriptBlock { Start-Process PowerShell -Verb RunAs }

Remoting Özellikleri ile Performans Artırma

PowerShell 7 ve sonrası sürümlerde:

  • -AsJob parametresiyle arka planda çalıştırma,

  • -ThrottleLimit parametresiyle paralel işlem kontrolü yapılabilir.

Örnek:

Invoke-Command -ComputerName (Get-Content "computers.txt") -ScriptBlock { Get-Process } -AsJob -ThrottleLimit 10

Artık PowerShell kullanarak:

  • WinRM yapılandırmasını yapabilir,

  • Uzak sistemlere güvenli şekilde bağlanabilir,

  • Aynı anda birden fazla cihazda komut çalıştırabilir,

  • Remote script yönetimini otomatikleştirebilirsin.

PowerShell ile Remote Management, IT yöneticilerine merkezi kontrol, hız ve güvenlik sağlar.

Detaylı Bilgi İçin Kaynaklar:

Bu makaleyi paylaş
Takip et:
Tolga CEYHAN, bilgi teknolojilerini severek takip eder ve BT üzerine hali hazırda aktif olarak çalışmaktadır. 2006 yılından 2017 yılına kadar web tasarım yazılım üzerine çalışmalar yaptım. Şuan ise Windows Sistem ve Sistem Güvenliği alanında çalışmalarımı sürdürmekteyim.
Yorum Yap

Bir yanıt yazın

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

Exit mobile version