Çağırma Komutu Örnekleri


Bu kılavuzda, uzak bilgisayarlarda PowerShell komutlarını ve komut dosyalarını yürütmek için invoke-komutunu nasıl kullanacağınızı öğreneceksiniz.

İçindekiler:

  • Çağırma Komutu Gereksinimleri
  • Çağırma Komutu Örnekleri

Başlayalım.

Çağırma Komutu Gereksinimleri

Invoke komutunu kullanabilmeniz için uzaktaki bilgisayarın aşağıdaki özelliklere sahip olması gerekir:

  1. Windows Uzaktan Yönetim hizmetinin çalışıyor olması gerekir
  2. Windows Güvenlik Duvarında Windows Uzaktan Yönetimine İzin Verme

Bir sonraki bölümde, grup ilkesini kullanarak birden fazla bilgisayar için bunun nasıl etkinleştirileceğini anlatacağım.

Varsayılan olarak Windows Uzaktan Yönetim hizmeti çalışmıyor ve güvenlik duvarı gelen bağlantıyı engelliyor. Etki alanına katılan tüm bilgisayarlarda bu ayarları denetlemek için grup ilkesini kullanabilirsiniz.

Bu ayarları mevcut bir GPO'ya ekleyebilir veya yeni bir GPO oluşturabilirsiniz. Bu örnekte yeni bir GPO oluşturacağım.

1. Mevcut bir GPO oluşturun veya düzenleyin. Benimkini etki alanının köküne bağladım ve buna PSRemoting adını verdim. Etki alanının kökündeki bağlantı, bu GPO'yu tüm kullanıcılara ve bilgisayarlara uygulayacaktır. Kapsamı sınırlamak için bunu bir kuruluş birimine bağlayabilirsiniz.

2. GPO'yu düzenleyin ve Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Sistem Hizmetleri'ne gidin.

3. Windows Uzaktan Yönetim'i (WS-Yönetim) seçin ve hizmet başlatma modunu Otomatik olarak ayarlayın.

4. Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Gelişmiş Güvenlik Özellikli Windows Defender Güvenlik Duvarı'na gidin

5. Gelen kurala sağ tıklayın ve “Yeni Kural”ı seçin

Kural türü ekranında önceden tanımlıyı seçin ve “Windows Uzaktan Yönetim”i seçin ve ardından İleri'ye tıklayın.

“Etki Alanı, Özel” profilini seçin ve Genel profilin işaretini kaldırın. Sonrakine tıkla

“Bağlantıya izin ver”i seçin ve Son'a tıklayın

İpucu: Güvenlik nedeniyle, yalnızca belirli yetkili bilgisayarların PowerShell komutlarını uzaktan kullanmasına izin vermenizi öneririm. Güvenlik duvarı kuralındaki kapsam ayarlarını kullanarak bunu sınırlayabilirsiniz. Uzak IP adresi bölümünde bilgisayarınızın veya izin vermek istediğiniz başka bir bilgisayarın IP adresini listeleyin.

Bu GPO ayarlarını tamamlar.

6. gpupdate'i çalıştırın veya Bilgisayarı Yeniden Başlatın

Daha sonra, yeni GPO'yu kaldırmak için uzaktaki bilgisayarların politikalarının yenilenmesi gerekir. Her 90 dakikada bir kendi başlarına yenilenecekler, ancak bilgisayarda gpupdate'i yenilemeyi zorlamak için yenilenecekler. Bu, Windows Uzaktan Yönetim hizmetini başlatacak ve uzak bilgisayarlara güvenlik duvarı kuralını ekleyecektir.

Şimdi hizmetleri ve güvenlik duvarını kontrol edeceğim.

Hizmet şu anda çalışıyor.

Güvenlik Duvarı kuralı eklendi.

Çağırma Komutu Örnekleri

Burada PowerShell invoke komutunun kullanımına ilişkin bazı örnekler verilmiştir.

Örnek 1: Uzak bilgisayardaki hizmetleri alma

scriptblock parametresi çalıştırılacak PowerShell komutunu belirtir.

invoke-command -ComputerName pc1 -scriptblock {Get-Service} 

Örnek 2: Birden fazla bilgisayarda hizmet alma

PowerShell komutlarını birden fazla uzak bilgisayarda çalıştırmak için bunları virgülle ayırmanız yeterlidir. Ana bilgisayar adını veya IP adresini kullanabilirsiniz.

invoke-command -ComputerName pc1, srv-vm1 -scriptblock {Get-Service} 

Örnek 3. Uzak Bilgisayarda Komut Dosyası Çalıştırma

Bu örnek, getinfo.ps1 komut dosyasını pc1 ve srv-vm1 uzak bilgisayarlarında çalıştıracaktır.

Invoke-Command -FilePath c:\scripts\getinfo.ps1 -ComputerName pc1, srv-vm1

Örnek 4: Windows Sürümünü Uzak Bilgisayara Alma

Uzak bilgisayarlardan Windows sürüm bilgilerini almak için systeminfo komutunu kullanın.

invoke-command -ComputerName pc1 -scriptblock {systeminfo} 

Örnek 5: Tüm bilgisayarlarda komutları bir metin dosyasından çalıştırma

Eğer geniş bir bilgisayar listeniz varsa, bunları bir metin dosyasına yerleştirebilirsiniz. Örneğin, bilgisayarlar.txt adlı bir dosyada bilgisayarların bir listesi var.

Invoke-Command -ComputerName (Get-Content c:\it\computers.txt) -scriptblock {systeminfo}

Örnek 6: Kimlik Bilgilerini Ayarlayın

Bilgisayar farklı bir güvenlik bağlamındaysa kimlik bilgilerini belirtmeniz gerekebilir.

$Credential = Get-Credential
Invoke-Command -ComputerName pc1 -Credential $Credential -ScriptBlock { Get-service}

Örnek 7: Uzak Bilgisayardan Olay Günlüklerini Alma

Bu örnekte, uzaktaki bir bilgisayardan olay kimliği 4624'ü alacağım

invoke-command -ComputerName pc1 -scriptblock {Get-WinEvent @{logname='security';ID=4624} -MaxEvents 5}

Örnek 8: PowerShell Sürümünü Alın

Bu örnek uzak bilgisayarlarda PowerShell sürümünü alacaktır

Invoke-Command -ComputerName pc1, srv-vm1 -ScriptBlock {$PSVersionTable.PSVersion}

Örnek 9: Birden Çok Komut Çalıştırma

Bu örnekte uzak bilgisayarda get-process ve get-service'i çalıştırıyorum.

Invoke-Command -ComputerName pc1 -ScriptBlock {(get-process), (get-service)}

Yukarıdaki örneklerin size PowerShell komutlarını uzaktan nasıl çalıştıracağınıza dair bir fikir vereceğini umuyoruz. Daha fazla bilgi edinmek için Microsoft çağırma komutu belgelerine göz atın.

Invoke komutunun alternatifi psexec komutudur. PsExec komutu, uzak komutlarda işlemleri yürütmenize olanak tanıyan hafif bir yardımcı programdır, aynı zamanda programları başlatmanıza ve konsolla etkileşimde bulunmanıza da olanak tanır.

İlgili makaleler