Windows PowerShell Uzaktan Kumandası
WS-Management protokolünü kullanan Windows PowerShell uzaktan kumandası, bir veya daha fazla uzak bilgisayarda herhangi bir Windows PowerShell komutunu çalıştırmanıza izin verir. Kalıcı bağlantılar kurmanıza, 1: 1 etkileşimli oturumlar başlatmanıza ve birden çok bilgisayarda komut dosyası çalıştırmanıza olanak tanır. Windows PowerShell uzaktan kumandasını kullanmak için, uzak bilgisayarın uzaktan yönetim için yapılandırılması gerekir. Windows PowerShell uzaktan kumandasını yapılandırdıktan sonra, birçok uzaktan kumanda stratejisi kullanılabilir. Bu belgenin geri kalanında bunlardan sadece birkaçı listelenmiştir.
Etkileşimli Oturum Başlatma
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, bağlandığınız bilgisayarın adını gösterecek şekilde değişir. O andan itibaren, herhangi komutlar uzak bilgisayarda istemi vadede yazdığınız ve sonuçlar yerel bilgisayarda görüntülenir.
Etkileşimli oturumu sonlandırmak için şunu yazın:
Exit-PSSession
Uzak Komut Çalıştırma
Bir veya birçok uzak bilgisayarlarda herhangi bir komutu ç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 aşağıdakileri yazın:
invoke-command -computername Server01, Server02 {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
Komut Dosyası Çalıştırma
Bir veya birçok uzak bilgisayarlarda bir komut dosyası çalıştırmak için, Invoke-Command cmdlet'inin DosyaYolu parametresini kullanın. Komut dosyasının yerel bilgisayarınızda açık veya erişilebilir olması gerekir. Sonuçlar yerel bilgisayarınıza döndürülür.
Örneğin, aşağıdaki komutu server01 ve Server02 uzak bilgisayarlarda DiskCollect.ps1 komut dosyasını çalıştırır.
invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1
Kalıcı Bağlantı Kurun
Veri paylaşan bir dizi ilişkili komutu çalıştırmak için, uzak bilgisayarda bir oturum oluşturun ve sonra oluşturduğunuz oturumda komutları çalıştırmak için Invoke-Command cmdlet'ini kullanın. Uzak oturum oluşturmak için New-PSSession cmdlet'ini kullanın.
Örneğin, aşağıdaki komut Server01 bilgisayarında uzak oturum ve Server02 bilgisayarında başka bir uzak oturum oluşturur. Oturum nesnelerini $ s değişkenine kaydeder.
$s = new-pssession -computername Server01, Server02
Artık oturumlar kurulduğuna göre, içinde herhangi bir komutu çalıştırabilirsiniz. Oturumlar kalıcı olduğundan, bir komutta veri toplayabilir ve sonraki komutta kullanabilirsiniz.
Örneğin, aşağıdaki komutu $ s değişkeninde oturumlarda bir Get-Düzeltme komutu çalıştırır ve $ h değişkeni sonuçlarını kaydeder. $ H değişkeni $ s içinde oturumların her birinde oluşturulur, ancak yerel oturumda yok.
invoke-command -session $s {$h = get-hotfix}
Şimdi $ h değişkenindeki verileri aşağıdaki gibi sonraki komutlarda kullanabilirsiniz. Sonuçlar yerel bilgisayarda görüntülenir.
invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"} }