Aracılığıyla paylaş


Enable-PSRemoting

Bilgisayarı uzak komutları alacak şekilde yapılandırılır.

Sözdizimi

Enable-PSRemoting
      [-Force]
      [-SkipNetworkProfileCheck]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Bu cmdlet yalnızca Windows platformunda kullanılabilir.

Enable-PSRemoting cmdlet'i, bilgisayarı WS-Management teknolojisi kullanılarak gönderilen PowerShell uzak komutlarını alacak şekilde yapılandırılır. WS-Management tabanlı PowerShell uzaktan iletişim özelliği şu anda yalnızca Windows platformunda desteklenmektedir.

PowerShell uzaktan iletişim, Windows Server platformlarında varsayılan olarak etkindir. windows'un desteklenen diğer sürümlerinde PowerShell uzaktan iletişimini etkinleştirmek ve devre dışı bırakılırsa uzaktan iletişimi yeniden etkinleştirmek için Enable-PSRemoting kullanabilirsiniz.

Komut alan her bilgisayarda bu komutu yalnızca bir kez çalıştırmanız gerekir. Yalnızca komut gönderen bilgisayarlarda çalıştırmanız gerekmez. Yapılandırma dinleyicileri başlattığından, yalnızca gerektiğinde çalıştırmak akıllıca olur.

Bilgisayar genel ağdayken Windows'un istemci sürümlerinde PowerShell uzaktan iletişimini etkinleştirmeye normalde izin verilmez, ancak SkipNetworkProfileCheck parametresini kullanarak bu kısıtlamayı atlayabilirsiniz. Daha fazla bilgi için SkipNetworkProfileCheck parametresinin açıklamasına bakın.

Tek bir bilgisayarda yan yana birden çok PowerShell yüklemesi bulunabilir. Enable-PSRemoting çalıştırıldığında, cmdlet'ini çalıştırdığınız belirli yükleme sürümü için uzaktan iletişim uç noktası yapılandırılır. Bu nedenle PowerShell 6.2 çalıştırırken Enable-PSRemoting çalıştırırsanız PowerShell 6.2 çalıştıran bir uzaktan iletişim uç noktası yapılandırılır. PowerShell 7 önizlemesini çalıştırırken Enable-PSRemoting çalıştırırsanız, PowerShell 7 önizlemesini çalıştıran bir uzaktan iletişim uç noktası yapılandırılır.

Enable-PSRemoting gerektiğinde iki uzaktan iletişim uç noktası yapılandırması oluşturur. Uç nokta yapılandırmaları zaten varsa, bunların etkinleştirilmesi yeterlidir. Oluşturulan yapılandırmalar aynıdır ancak farklı adlara sahiptir. Birinde oturumu barındıran PowerShell sürümüne karşılık gelen basit bir ad bulunur. Diğer yapılandırma adı, oturumu barındıran PowerShell sürümü hakkında daha ayrıntılı bilgiler içerir. Örneğin, PowerShell 6.2'de Enable-PSRemoting çalıştırırken PowerShell.6adlı iki yapılandırılmış uç nokta alırsınız PowerShell.6.2.2. Bu, PowerShell.6 basit adını kullanarak en son PowerShell 6 ana bilgisayar sürümüne bağlantı oluşturmanıza olanak tanır. Veya powershell.6.2.2 uzun adını kullanarak belirli bir PowerShell ana bilgisayar sürümüne bağlanabilirsiniz.

Yeni etkinleştirilen uzaktan iletişim uç noktalarını kullanmak için, Invoke-Command,New-PSSessionEnter-PSSession cmdlet'lerini kullanarak uzak bağlantı oluştururken bunları ConfigurationName parametresiyle ada göre belirtmeniz gerekir. Daha fazla bilgi için bkz. Örnek 4.

Enable-PSRemoting cmdlet'i aşağıdaki işlemleri gerçekleştirir:

  • Aşağıdaki görevleri gerçekleştiren Set-WSManQuickConfig cmdlet'ini çalıştırır:
    • WinRM hizmetini başlatır.
    • WinRM hizmetindeki başlangıç türünü Otomatik olarak ayarlar.
    • Herhangi bir IP adresinde istekleri kabul etmek için bir dinleyici oluşturur.
    • WS-Management iletişimler için güvenlik duvarı özel durumunu etkinleştirir.
    • Gerekirse basit ve uzun ad oturumu uç noktası yapılandırmalarını oluşturur.
    • Tüm oturum yapılandırmalarını etkinleştirir.
    • Uzaktan erişime izin vermek için tüm oturum yapılandırmalarının güvenlik tanımlayıcısını değiştirir.
  • Önceki değişiklikleri etkili hale getirmek için WinRM hizmetini yeniden başlatır.

Bu cmdlet'i Windows platformunda çalıştırmak için Yönetici olarak çalıştır seçeneğini kullanarak PowerShell'i başlatın. Bu cmdlet, PowerShell'in Linux veya macOS sürümlerinde kullanılamaz.

Dikkat

Bu cmdlet, Windows PowerShell tarafından oluşturulan uzak uç nokta yapılandırmalarını etkilemez. Yalnızca PowerShell sürüm 6 ve üzeri ile oluşturulan uç noktaları etkiler. Windows PowerShell tarafından barındırılan PowerShell uzaktan iletişim uç noktalarını etkinleştirmek ve devre dışı bırakmak için bir Windows PowerShell oturumu içinden Enable-PSRemoting cmdlet'ini çalıştırın.

PowerShell uzaktan iletişimini kullanma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Örnekler

Örnek 1: Bir bilgisayarı uzak komutları alacak şekilde yapılandırma

Bu komut, bilgisayarı uzak komutları alacak şekilde yapılandırıyor.

Enable-PSRemoting

WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.

Örnek 2: Bir bilgisayarı, bir onay istemi olmadan uzak komutları alacak şekilde yapılandırma

Bu komut, bilgisayarı uzak komutları alacak şekilde yapılandırıyor. Zorla parametresi kullanıcı istemlerini gizler.

Enable-PSRemoting -Force

WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.

Örnek 3: İstemcilerde uzaktan erişime izin verme

Bu örnekte, Windows işletim sisteminin istemci sürümlerinde ortak ağlardan uzaktan erişime nasıl izin ver iletişiminin olduğu gösterilmektedir. Farklı Windows sürümleri için güvenlik duvarı kuralının adı farklı olabilir. Kuralların listesini görmek için Get-NetFirewallRule kullanın. Güvenlik duvarı kuralını etkinleştirmeden önce, yapılandırmanın ortamınıza uygun olduğunu doğrulamak için kuraldaki güvenlik ayarlarını görüntüleyin.

Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name

Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP

Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any

Varsayılan olarak, Enable-PSRemoting özel ağlardan ve etki alanı ağlarından uzaktan erişime izin veren ağ kuralları oluşturur. Komut, aynı yerel alt ağının ortak ağlarından uzaktan erişime izin vermek için SkipNetworkProfileCheck parametresini kullanır. komut, onay iletilerini engellemek için Zorla parametresini belirtir.

SkipNetworkProfileCheck parametresi, varsayılan olarak aynı yerel alt ağının ortak ağlarından uzaktan erişime izin veren Windows işletim sisteminin sunucu sürümlerini etkilemez.

NetSecurity modülündeki Set-NetFirewallRule cmdlet'i, herhangi bir uzak konumdan ortak ağlardan uzaktan erişime izin veren bir güvenlik duvarı kuralı ekler. Bu, farklı alt ağlardaki konumları içerir.

Örnek 4: Yeni etkinleştirilen uç nokta yapılandırmasına uzak oturum oluşturma

Bu örnekte bir bilgisayarda PowerShell uzaktan iletişimini etkinleştirme, yapılandırılmış uç nokta adlarını bulma ve uç noktalardan birinde uzak oturum oluşturma işlemleri gösterilmektedir.

İlk komut, bilgisayarda PowerShell uzaktan iletişimini etkinleştirir.

İkinci komut uç nokta yapılandırmalarını listeler.

Üçüncü komut, powershell.7 uç noktasını ada göre belirterek aynı makinede bir uzak PowerShell oturumu oluşturur. Uzak oturum en son PowerShell 7 sürümüyle (7.3.0) barındırılır.

Son komut, oturumu barındıran PowerShell sürümünü görüntülemek için uzak oturumdaki $PSVersionTable değişkenine erişir.

Enable-PSRemoting -Force

Get-PSSessionConfiguration

$session = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7

Invoke-Command -Session $session -ScriptBlock { $PSVersionTable }

WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.

Name          : PowerShell.7
PSVersion     : 7.3
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed,
                BUILTIN\Administrators AccessAllowed,
                BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.7.3.0
PSVersion     : 7.3
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed,
                BUILTIN\Administrators AccessAllowed,
                BUILTIN\Remote Management Users AccessAllowed

Name                           Value
----                           -----
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSEdition                      Core
PSRemotingProtocolVersion      2.3
Platform                       Win32NT
SerializationVersion           1.1.0.1
GitCommitId                    6.2.2
WSManStackVersion              3.0
PSVersion                      6.2.2
OS                             Microsoft Windows 10.0.18363

Not

Windows sürümüne bağlı olarak güvenlik duvarı kuralının adı farklı olabilir. Sisteminizdeki kuralların adlarını listelemek için Get-NetFirewallRule cmdlet'ini kullanın.

Parametreler

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

Tür:SwitchParameter
Diğer adlar:cf
Position:Named
Default value:False
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Force

Komutu, kullanıcı onayı istemeden çalışmaya zorlar.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-SkipNetworkProfileCheck

Bu cmdlet'in, bilgisayar bir genel ağdayken Windows işletim sisteminin istemci sürümlerinde uzaktan iletişimin etkinleştirildiğini gösterir. Bu parametre, ortak ağlar için yalnızca aynı yerel alt ağının bilgisayarlarından uzaktan erişime izin veren bir güvenlik duvarı kuralı sağlar.

Bu parametre, varsayılan olarak genel ağlar için yerel bir alt ağ güvenlik duvarı kuralına sahip olan Windows işletim sisteminin sunucu sürümlerini etkilemez. Yerel alt ağ güvenlik duvarı kuralı bir sunucu sürümünde devre dışı bırakılırsa, Enable-PSRemoting bu parametrenin değerinden bağımsız olarak yeniden etkinleştirir.

Yerel alt ağ kısıtlamasını kaldırmak ve ortak ağlardaki tüm konumlardan uzaktan erişimi etkinleştirmek için NetSecurity modülündeki Set-NetFirewallRule cmdlet'ini kullanın.

Bu parametre PowerShell 3.0'da kullanıma sunulmuştur.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-WhatIf

Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.

Tür:SwitchParameter
Diğer adlar:wi
Position:Named
Default value:False
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

Girişler

None

Nesneleri bu cmdlet'e yöneltemezsiniz.

Çıkışlar

String

Bu cmdlet, sonuçlarını açıklayan dizeleri döndürür.

Notlar

Bu cmdlet yalnızca Windows platformlarında kullanılabilir.

Windows işletim sisteminin sunucu sürümlerinde Enable-PSRemoting, uzaktan erişime izin veren özel ve etki alanı ağları için güvenlik duvarı kuralları oluşturur ve ortak ağlar için yalnızca aynı yerel alt ağının bilgisayarlarından uzaktan erişime izin veren bir güvenlik duvarı kuralı oluşturur.

Windows işletim sisteminin istemci sürümlerinde, Enable-PSRemoting kısıtlanmamış uzaktan erişime izin veren özel ve etki alanı ağları için güvenlik duvarı kuralları oluşturur. Aynı yerel alt ağdan uzaktan erişime izin veren genel ağlara yönelik bir güvenlik duvarı kuralı oluşturmak için SkipNetworkProfileCheck parametresini kullanın.

Windows işletim sisteminin istemci veya sunucu sürümlerinde, yerel alt ağ kısıtlamasını kaldıran ve uzaktan erişime izin veren ortak ağlar için bir güvenlik duvarı kuralı oluşturmak üzere, Aşağıdaki komutu çalıştırmak için NetSecurity modülündeki Set-NetFirewallRule cmdlet'ini kullanın: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Enable-PSRemoting, tüm oturum yapılandırmalarının Enabled özelliğinin değerini $Trueolarak ayarlayarak tüm oturum yapılandırmalarını etkinleştirir.

Enable-PSRemoting Deny_All ve Network_Deny_All ayarlarını kaldırır. Bu, yerel kullanım için ayrılmış oturum yapılandırmalarına uzaktan erişim sağlar.