Ç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:
- Windows Uzaktan Yönetim hizmetinin çalışıyor olması gerekir
- 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.













