Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
PowerShell Direct'i kullanarak windows 10 veya üzeri veya Windows Server 2016 ya da daha yeni bir sanal makinede Hyper-V konağınızdan rastgele PowerShell çalıştırabilirsiniz. Ağ yapılandırmasından veya uzaktan yönetim ayarlarından bağımsız olarak PowerShell Direct'i kullanın.
PowerShell Direct'i çalıştırmanın bazı yolları şunlardır:
- Enter-PSSession cmdlet'ini kullanarak etkileşimli oturum olarak
- Invoke-Command cmdlet'ini kullanarak tek bir komut veya betik yürütmek için tek kullanımlık bir bölüm olarak
- New-PSSession, Copy-Item ve Remove-PSSession cmdlet'lerini kullanarak dayanıklı bir oturum olarak (derleme 14280 ve üzeri)
Gereksinimler
İşletim sistemi gereksinimleri:
- Konak: Hyper-V çalıştıran Windows 10, Windows Server 2016 veya üzeri.
- Konuk/Sanal Makine: Windows 10, Windows Server 2016 veya üzeri.
Eski sanal makineleri yönetiyorsanız, Sanal Makine Bağlantısı (VMConnect) kullanın veya bir ağ bağlantısı üzerinden bağlanın.
Yapılandırma gereksinimleri:
- Sanal makinenin ana bilgisayarda yerel olarak çalışması gerekir.
- Sanal makinenin en az bir yapılandırılmış kullanıcı profiliyle açık ve çalışır durumda olması gerekir.
- Ana bilgisayarda Hyper-V yöneticisi olarak oturum açmış olmanız gerekir.
- Sanal makine için geçerli kullanıcı kimlik bilgileri sağlamanız gerekir.
Etkileşimli bir PowerShell oturumu oluşturma ve oturumdan çıkma
PowerShell komutlarını sanal makinede çalıştırmanın en kolay yolu etkileşimli bir oturum başlatmaktır.
Oturum başladığında, yazdığınız komutlar sanal makinede, sanal makinenin kendisinde bir PowerShell oturumuna doğrudan yazdığınız gibi çalışır.
Etkileşimli oturum başlatmak için:
Hyper-V ana bilgisayarında PowerShell'i Yönetici olarak açın.
Sanal makine adını veya GUID'yi kullanarak etkileşimli bir oturum oluşturmak için aşağıdaki komutlardan birini çalıştırın:
Enter-PSSession -VMName <VMName> Enter-PSSession -VMId <VMId>İstendiğinde sanal makinenin kimlik bilgilerini girin.
Sanal makinenizde komutları çalıştırın. PowerShell isteminizin ön eki olarak VMName değerini aşağıdaki gibi görmeniz gerekir:
[VMName]: PS C:\>Çalıştırdığınız tüm komutlar sanal makinenizde yürütülür. Bu komutların sanal makinede çalıştığından emin olmak için
ipconfigveyahostnamekomutunu test edin.İşiniz bittiğinde, oturumu kapatmak için aşağıdaki komutu çalıştırın:
Exit-PSSession
Uyarı
Oturumunuz bağlanamıyorsa olası nedenler için sorun giderme bölümüne bakın.
Bu cmdlet'ler hakkında daha fazla bilgi edinmek için bkz. Enter-PSSession ve Exit-PSSession.
Invoke-Command ile betik veya komut çalıştırma
Invoke-Command ile PowerShell Direct, sanal makinede bir komut veya betik çalıştırmanız gereken ancak bu noktadan sonra sanal makineyle etkileşime devam etmeniz gerekmeyen durumlar için mükemmeldir.
Tek bir komut çalıştırmak için:
Hyper-V ana bilgisayarında PowerShell'i Yönetici olarak açın.
Sanal makine adını veya GUID'yi kullanarak oturum oluşturmak için aşağıdaki komutlardan birini çalıştırın:
Invoke-Command -VMName <VMName> -ScriptBlock { command } Invoke-Command -VMId <VMId> -ScriptBlock { command }İstendiğinde sanal makinenin kimlik bilgilerini girin.
komutu sanal makinede çalışır. Komut çıktı oluşturuyorsa konsolunuzda görürsünüz. Komut çalıştırılır çalıştırılmaz bağlantı otomatik olarak kapatılır.
Betiği çalıştırmak için:
Hyper-V ana bilgisayarında PowerShell'i Yönetici olarak açın.
Sanal makine adını veya GUID'yi kullanarak oturum oluşturmak için aşağıdaki komutlardan birini çalıştırın:
Invoke-Command -VMName <VMName> -FilePath C:\host\script_path\script.ps1 Invoke-Command -VMId <VMId> -FilePath C:\host\script_path\script.ps1İstendiğinde sanal makinenin kimlik bilgilerini girin.
Betik sanal makinede çalışır. Komut çalıştırılır çalıştırılmaz bağlantı otomatik olarak kapatılır.
Bu cmdlet hakkında daha fazla bilgi için bkz. Invoke-Command.
dosyaları New-PSSession ve Copy-Item ile kopyalama
Uyarı
PowerShell Direct yalnızca Windows 14280 ve sonraki derlemelerde kalıcı oturumları destekler
Kalıcı PowerShell oturumları, bir veya daha fazla uzak makinede eylemleri koordine eden betikler yazarken son derece kullanışlıdır. Oluşturulduktan sonra, siz silmeye karar verinceye kadar arka planda kalıcı oturumlar bulunur. Bu, kimlik bilgilerini geçirerek veya Invoke-Command geçirmeden aynı oturuma tekrar tekrar Enter-PSSession başvurabileceğiniz anlamına gelir.
Aynı belirteçle oturumlar durumu tutar. Kalıcı oturumlar devam ettiğinden, oturumda oluşturduğunuz veya oturuma geçirdiğiniz tüm değişkenler birden çok çağrıda korunur. Kalıcı oturumlarla çalışmak için bir dizi araç kullanabilirsiniz. Bu örnek için New-PSSession ve Copy-Item kullanarak verileri konaktan sanal makineye ve bir sanal makineden konağa taşıyın.
Oturum oluşturmak için dosyaları kopyalayın:
Hyper-V ana bilgisayarında PowerShell'i Yönetici olarak açın.
kullanarak
New-PSSessionsanal makinede kalıcı bir PowerShell oturumu oluşturmak için aşağıdaki komutlardan birini çalıştırın.$s = New-PSSession -VMName <VMName> -Credential (Get-Credential) $s = New-PSSession -VMId <VMId> -Credential (Get-Credential)İstendiğinde sanal makinenin kimlik bilgilerini girin.
Uyarı
14500 öncesi derlemelerde bir hata var. Kimlik bilgilerini
-Credentialbayrağı ile açıkça belirtmezseniz, konuktaki servis kilitlenir ve yeniden başlatılması gerekir. Bu sorunla karşılaşırsanız geçici çözüm yönergeleri için Hata: Uzak oturum sona ermiş olabilir bölümüne bakın.Sanal makineye bir dosya kopyalayın.
Konak makineden sanal makineye kopyalamak
C:\host_path\data.txtiçin şunu çalıştırın:Copy-Item -ToSession $s -Path C:\host_path\data.txt -Destination C:\guest_path\Sanal makineden bir dosya kopyalayın (konakta).
Sanal makineden konağa kopyalamak
C:\guest_path\data.txtiçin şunu çalıştırın:Copy-Item -FromSession $s -Path C:\guest_path\data.txt -Destination C:\host_path\Remove-PSSessionkullanarak sürekli oturumu durdurun.Remove-PSSession $s
Sorun giderme
PowerShell Direct, küçük bir ortak hata iletileri kümesini ortaya çıkartır. Aşağıdaki bölümlerde en yaygın hata iletileri, bazı nedenler ve sorunları tanılamaya yönelik araçlar açıklanmaktadır.
-VMName veya -VMID parametreleri yok
Sorun:
Enter-PSSession, Invoke-Commandveya New-PSSession parametresi -VMName-VMId yoktur.
Olası nedenler:
En olası sorun, ana bilgisayar işletim sisteminizin PowerShell Direct'i desteklememesidir.
Aşağıdaki komutu çalıştırarak Windows derlemenizi de kontrol edebilirsiniz:
[System.Environment]::OSVersion.Version
Desteklenen bir derleme çalıştırıyorsanız PowerShell sürümünüz PowerShell Direct'i desteklemez. PowerShell Direct ve JEA için ana sürüm 5 veya üzeri olmalıdır.
Aşağıdaki komutu çalıştırarak PowerShell sürüm derlemenizi de kontrol edebilirsiniz:
$PSVersionTable.PSVersion
Hata: Uzak oturum sona ermiş olabilir
Uyarı
Enter-PSSession, 10240 ve 12400 arasındaki konak derlemeleri için tüm hatalar "Uzak oturum sona ermiş olabilir" şeklinde raporlanır.
Hata mesajı:
Enter-PSSession: Windows PowerShell'in işleyemediği bir hata oluştu. Uzak oturum sona ermiş olabilir.
Olası nedenler:
- Sanal makine var ancak çalışmıyor.
- Konuk işletim sistemi PowerShell Direct'i desteklemez. Bkz . gereksinimler.
- PowerShell henüz konukta kullanılamıyor
- İşletim sisteminin önyüklemesi tamamlanmamış
- İşletim sistemi düzgün önyüklenemiyor
- Bazı önyükleme zamanı olaylarının kullanıcı girişi gerekiyor
Konakta hangi VM'lerin çalıştığını denetlemek için Get-VM cmdlet'ini kullanın.
Hata mesajı:
New-PSSession: Windows PowerShell'in işleyememe hatası oluştu. Uzak oturum sona ermiş olabilir.
Olası nedenler:
- Daha önce listelenen nedenlerden biri, hepsi için geçerlidir
New-PSSession - Geçerli derlemelerde
-Credentialile kimlik bilgilerini açıkça geçirmeniz gereken bir hata. Bu hata oluştuğunda, tüm hizmet konuk işletim sisteminde kilitleniyor ve yeniden başlatılması gerekiyor. Oturumun Hala Enter-PSSession ile kullanılabilir olup olmadığını de kontrol edebilirsiniz.
Kimlik bilgisi sorununu geçici olarak çözmek için VMConnect kullanarak sanal makinede oturum açın, PowerShell'i açın ve aşağıdaki PowerShell komutuyla vmicvmsession hizmetini yeniden başlatın:
Restart-Service -Name vmicvmsession
Hata: Parametre kümesi çözümlenemiyor
Hata mesajı:
Enter-PSSession: Parametre kümesi, belirtilen adlandırılmış parametreler kullanılarak çözümlenemez.
Olası nedenler:
Sanal makinelere bağlanırken kullanamazsınız
-RunAsAdministrator.Bir Windows kapsayıcısına bağlanırken,
-RunAsAdministratorbayrağı açık kimlik bilgileri olmadan Yönetici bağlantılarına izin verir. Sanal makineler konağa zımni yönetici erişimi vermediğinden, kimlik bilgilerini açıkça girmeniz gerekir.
Yönetici kimlik bilgilerini sanal makineye -Credential parametresi ile veya istendiğinde manuel olarak girerek geçirebilirsiniz.
Hata: Kimlik bilgisi geçersiz
Hata mesajı:
Enter-PSSession: Kimlik bilgisi geçersiz.
Olası nedenler:
- Konuk kimlik bilgileri doğrulanamadı
- Sağlanan kimlik bilgileri yanlıştı.
- Konukta kullanıcı hesabı yok (işletim sistemi daha önce önyükleme yapmamış)
- Yönetici olarak bağlanıyorsanız: Yönetici etkin kullanıcı olarak ayarlanmadı. Daha fazla bilgi için bkz. Yerleşik Yönetici Hesabını Etkinleştirme ve Devre Dışı Bırakma.
Hata: Giriş VMName parametresi hiçbir sanal makineye çözümlenmiyor.
Hata mesajı:
Enter-PSSession: Girdi VMName parametresi hiçbir sanal makineyle eşleşmiyor.
Olası nedenler:
- Hyper-V Yöneticisi değilsiniz.
- Sanal makine yok.
Kullandığınız kimlik bilgilerinin Hyper-V yönetici rolüne sahip olup olmadığını denetlemek ve konakta yerel olarak çalıştırılan ve önyüklenen VM'leri görmek için Get-VM cmdlet'ini kullanın.
Örnekler ve kullanıcı kılavuzları
PowerShell Direct, Yeterli Yönetimi (JEA) destekler.
GitHub'da örneklere göz atın.