PowerShell Direct Nedir, Nasıl Kullanılır?
PowerShell Direct pek tabii bir yenilik, ama özellikten ziyade VM’ler içerisinde PowerShell komutları çalıştırmak için yeni bir yol demek daha doğru olur sanırım. Windows Server 2016 Hyper-V, Windows 10 Hyper-V ve PowerShell 5.0 ile birlikte kullanılabilen PowerShell Direct yöntemi, Hyper-V Host’lar üzerinden VM’ler içerisinde PowerShell komutları çalıştırmanızı sağlayan yeni bir yol sağlıyor.
PowerShell Direct öncesinde, bir Windows VM’i ağa bağlayıp Remote Management ayarlarını yaptıktan ve Windows Firewall üzerinde gerekli kuralları aktif ettikten sonra Enter-PSSession
olsun, Invoke-Command
olsun çeşitli cmdlet’lerin -ComputerName
parametresine ağa bağlı uzak bilgisayarı vererek üzerinde bir komut çalıştırabilir veya bir komut satırı oturumu başlatabilirsiniz. Bu modelde uzak bilgisayarın bir VM veya Physical Server olmasının da pek bir önemi yoktur çünkü iletişim ağ bağlantısı kanalıyla kurulur. Bu yüzden üzerinden ilk kural, üzerinde komut çalıştırılmak istenen uzak bilgisayarın ağa bağlı ve ulaşılabiliyor olması…
Mesela aşağıda iki örnek var. Dikkat ederseniz uzak sunucu ismi -ComputerName
parametresi ile sağlanıyor.
# Server1 isimli uzak sunucuda çalışan process’lerin bir listesini alır
Invoke-Command -ComputerName Server1 -ScriptBlock{Get-Process}
# Server1 isimli uzak sunucuda bir PS oturumu başlatır
Enter-PSSession -ComputerName Server1
Powershell Direct sayesinde, PowerShell 5.0’daki bazı cmdlet’lere eklenen -VMName
veya -VMGuid
parametreleri ile mesela bir Hyper-V Host üzerinde çalışan ama üzerinde hiçbir Remote Management ayarı gerçekleştirilmemiş veya hiçbir şekilde ağa bağlı olmayan (hatta ağ adaptörü bile bulunmayan) bir VM’in sanal işletim sistemi içerisinde komutlar çalıştırabilirsiniz; adı gibi, direkt!