Aracılığıyla paylaş


Uzak Komut Çalıştırma

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

PowerShell WMI, WS-Management 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:

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

Birçok Windows PowerShell cmdlet'i, bir veya daha fazla uzak bilgisayarda veri toplamanıza ve ayarları değiştirmenize olanak tanıyan ComputerName parametresine sahiptir. Bu cmdlet'ler farklı iletişim protokollerini kullanır ve özel yapılandırma olmadan tüm Windows işletim sistemlerinde çalışır.

Bu cmdlet'ler şunlardır:

Genellikle, özel yapılandırma olmadan uzaktan iletişimi destekleyen cmdlet'ler ComputerName parametresine sahiptir ve Session parametresine sahip değildir. Oturumunuzda bu cmdlet'leri bulmak için şunu yazın:

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

Windows PowerShell uzaktan iletişim

Windows PowerShell uzaktan iletişim, WS-Management protokolunu kullanarak bir veya daha fazla uzak bilgisayarda herhangi bir Windows PowerShell komutunu çalıştırmanıza olanak tanır. Kalıcı bağlantılar kurabilir, etkileşimli oturumlar başlatabilir ve uzak bilgisayarlarda betikler çalıştırabilirsiniz.

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

Windows PowerShell uzaktan iletişimini yapılandırdıktan sonra birçok uzaktan iletişim stratejisi kullanabilirsiniz. Bu makalede bunlardan yalnızca birkaçı listelenir. Daha fazla bilgi için bkz . Uzak Hakkında.

Etkileşimli oturum başlatma

Tek bir uzak bilgisayarla etkileşimli 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ıştırılır ve sonuçlar yerel bilgisayarda görüntülenir.

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

Exit-PSSession

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

Uzak Komut Çalıştırma

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

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

Çıkış bilgisayarınıza döndürülür.

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

Betik Çalıştırma

Bir veya birden çok uzak bilgisayarda betik çalıştırmak için cmdlet'in FilePath parametresini Invoke-Command kullanın. Betiğin açık veya yerel bilgisayarınız tarafından erişilebilir olması gerekir. Sonuçlar yerel bilgisayarınıza döndürülür.

Örneğin, aşağıdaki komut betiği Server01 ve Server02 uzak bilgisayarlarda çalıştırır DiskCollect.ps1 .

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

Kalıcı Bağlan oluşturma

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

$s = New-PSSession -ComputerName Server01, Server02

Oturumlar oluşturulduğuna göre, artık bu oturumlarda herhangi bir komutu çalıştırabilirsiniz. Oturumlar kalıcı olduğundan, bir komuttan veri toplayabilir ve başka bir komutta kullanabilirsiniz.

Örneğin, aşağıdaki komut değişkendeki oturumlarda $s bir Get-HotFix komut çalıştırır ve sonuçları değişkene $h kaydeder. $h değişkeni içindeki oturumların $sher birinde oluşturulur, ancak yerel oturumda yoktur.

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

Artık değişkendeki verileri aynı oturumdaki $h 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 iletişim

PowerShell şunları yapmanızı sağlayan cmdlet'ler içerir:

  • Hem yerel hem de uzak uçlardan uzak oturumları yapılandırma ve oluşturma
  • Özelleştirilmiş ve kısıtlanmış oturumlar oluşturma
  • Uzak oturumda örtük olarak çalışan uzak oturumdan komutları içeri aktarma
  • Uzak oturumun güvenliğini yapılandırma

Windows üzerinde PowerShell bir WSMan sağlayıcısı içerir. Sağlayıcı, yerel bilgisayarda ve uzak bilgisayarlarda yapılandırma ayarları hiyerarşisinde gezinmenizi sağlayan bir sürücü oluşturur WSMAN: .

WSMan sağlayıcısı hakkında daha fazla bilgi için bkz . WSMan Sağlayıcısı ve WS-Management Cmdlet'leri Hakkında veya Windows PowerShell konsolunda yazın Get-Help wsman.

Daha fazla bilgi için bkz.

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

Ayrıca bkz: