Uzaktan Komutları Çalıştırma


Tek bir PowerShell komutuyla komutları bir veya yüzlerce bilgisayarda çalıştırabilirsiniz. Windows PowerShell, WMI, RPC ve WS-Management gibi çeşitli teknolojileri kullanarak uzaktan bilgi işlemi destekler.

PowerShell, WMI, WS Yönetimi ve SSH uzaktan iletişimini destekler. PowerShell 7 ve üzeri sürümlerde RPC yalnızca Windows'ta desteklenir.

PowerShell'de uzaktan iletişim hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

  • PowerShell'de SSH Uzaktan İletişimi
  • PowerShell'de WSMan Uzaktan İletişim

Yapılandırma olmadan Windows PowerShell uzaktan iletişimi

Birçok Windows PowerShell cmdlet'i, bir veya daha fazla uzak bilgisayardaki verileri toplamanıza ve ayarları değiştirmenize olanak tanıyan BilgisayarAdı parametresine sahiptir. Bu cmdlet'ler çeşitli iletişim protokolleri kullanır ve herhangi bir özel yapılandırmaya gerek kalmadan tüm Windows işletim sistemlerinde çalışır.

Bu cmdlet'ler şunları içerir:

  • Restart-Computer
  • Test-Connection
  • Clear-EventLog
  • Get-EventLog
  • Get-HotFix
  • Get-Process
  • Get-Service
  • Set-Service
  • Get-WinEvent
  • Get-WmiObject

Tipik olarak, özel yapılandırma olmadan uzaktan iletişimi destekleyen cmdlet'ler BilgisayarAdı parametresine sahiptir ve Oturum parametresine sahip değildir. Bu cmdlet'leri oturumunuzda bulmak için şunu yazın:

Get-Command | Where-Object {
    $_.Parameters.Keys -contains "ComputerName" -and
    $_.Parameters.Keys -notcontains "Session"
}

Windows PowerShell uzaktan iletişimi

WS-Yönetim protokolünü kullanan Windows PowerShell uzaktan iletişimi, herhangi bir Windows PowerShell komutunu bir veya daha fazla uzak bilgisayarda çalıştırmanıza olanak tanır. Kalıcı bağlantılar kurabilir, etkileşimli oturumlar başlatabilir ve uzak bilgisayarlarda komut dosyaları çalıştırabilirsiniz.

Windows PowerShell uzaktan iletişimini kullanmak için uzak bilgisayarın uzaktan yönetim için yapılandırılması gerekir. Talimatlar da dahil olmak üzere daha fazla bilgi için bkz. Uzaktan Gereksinimler Hakkında.

Windows PowerShell uzaktan iletişimini yapılandırdıktan sonra birçok uzaktan iletişim stratejisini kullanabilirsiniz. Bu makale bunlardan sadece birkaçını listeliyor. Daha fazla bilgi için bkz. Remote Hakkında.

Etkileşimli bir oturum başlatın

Tek bir uzak bilgisayarla etkileşimli bir oturum başlatmak için Enter-PSSession cmdlet'ini kullanın. Örneğin, Server01 uzak bilgisayarıyla etkileşimli bir oturum başlatmak için şunu yazın:

Enter-PSSession Server01

Komut istemi uzak bilgisayarın adını görüntüleyecek şekilde değişir. İstemde yazdığınız tüm komutlar uzak bilgisayarda çalışır ve sonuçlar yerel bilgisayarda görüntülenir.

Etkileşimli oturumu sonlandırmak için şunu yazın:

Exit-PSSession

Enter-PSSession ve Exit-PSSession cmdlet'leri hakkında daha fazla bilgi için bkz.:

  • PSSession'a girin
  • Çıkış-PSSession

Uzaktan Komut Çalıştırma

Bir veya daha fazla bilgisayarda bir komut çalıştırmak için Invoke-Command cmdlet'ini kullanın. Örneğin, Server01 ve Server02 uzak bilgisayarlarında Get-UICulture komutunu çalıştırmak için şunu yazın:

Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}

Çıktı bilgisayarınıza geri gönderilir.

LCID    Name     DisplayName               PSComputerName
----    ----     -----------               --------------
1033    en-US    English (United States)   server01.corp.fabrikam.com
1033    en-US    English (United States)   server02.corp.fabrikam.com

Bir Komut Dosyasını Çalıştır

Bir veya daha fazla uzak bilgisayarda komut dosyası çalıştırmak için Invoke-Command cmdlet'inin FilePath parametresini kullanın. Komut dosyası yerel bilgisayarınızda açık veya erişilebilir olmalıdır. Sonuçlar yerel bilgisayarınıza döndürülür.

Örneğin, aşağıdaki komut uzak bilgisayarlarda (Sunucu01 ve Sunucu02) DiskCollect.ps1 komut dosyasını çalıştırır.

Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1

Kalıcı Bir Bağlantı Kurun

Uzak bilgisayarda kalıcı bir oturum oluşturmak için New-PSSession cmdlet'ini kullanın. Aşağıdaki örnek, Server01 ve Server02'de uzak oturumlar oluşturur. Oturum nesneleri $s değişkeninde saklanır.

$s = New-PSSession -ComputerName Server01, Server02

Artık oturumlar oluşturulduğuna göre, oturumlarda herhangi bir komutu çalıştırabilirsiniz. Oturumlar kalıcı olduğundan, bir komuttan veri toplayıp bunu başka bir komutta kullanabilirsiniz.

Örneğin aşağıdaki komut $s değişkenindeki oturumlarda Get-HotFix komutunu çalıştırır ve sonuçları $h dosyasına kaydeder. değişken. $h değişkeni $s içindeki oturumların her birinde oluşturulur, ancak yerel oturumda mevcut değildir.

Invoke-Command -Session $s {$h = Get-HotFix}

Artık $h değişkenindeki verileri aynı oturumda diğer komutlarla kullanabilirsiniz. Sonuçlar yerel bilgisayarda görüntülenir. Örneğin:

Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NT AUTHORITY\SYSTEM"}}

Gelişmiş Uzaktan İletişim

PowerShell şunları yapmanıza olanak tanıyan cmdlet'ler içerir:

  • Hem yerel hem de uzak uçlardan uzak oturumları yapılandırın ve oluşturun
  • Özelleştirilmiş ve kısıtlı oturumlar oluşturun
  • Uzak oturumda gerçekte örtülü olarak çalışan komutları uzak bir oturumdan içe aktarın
  • Uzak oturumun güvenliğini yapılandırma

Windows'ta PowerShell bir WSMan sağlayıcısı içerir. Sağlayıcı, yerel bilgisayardaki ve uzak bilgisayarlardaki yapılandırma ayarları hiyerarşisinde gezinmenize olanak tanıyan bir WSMAN: sürücüsü oluşturur.

WSMan sağlayıcısı hakkında daha fazla bilgi için WSMan Sağlayıcısı ve WS-Yönetim Cmdlet'leri Hakkında bölümlerine bakın veya Windows PowerShell konsolunda Get-Help wsman yazın.

Daha fazla bilgi için bkz.:

  • PowerShell Uzaktan İletişim SSS
  • Kayıt Ol-PSSessionConfiguration
  • İçe Aktarma-PSSession

Uzaktan iletişim hatalarıyla ilgili yardım için bkz. about_Remote_Troubleshooting.

Ayrıca Bakınız

  • about_Remote
  • about_Remote_Requirements
  • about_Remote_Sorun Giderme
  • about_PSSessions
  • about_WS-Management_Cmdlet'ler
  • Invoke-Command
  • İçe Aktarma-PSSession
  • Yeni-PSSession
  • Kayıt Ol-PSSessionConfiguration
  • WSMan Sağlayıcısı

İlgili makaleler