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.
cmdlet'i Enable-PSRemoting
, bilgisayarı WS-Management teknolojisi kullanılarak gönderilen PowerShell uzak komutlarını alacak şekilde yapılandırıyor. 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 kullanabilirsiniz Enable-PSRemoting
.
Komut alacak 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 uzak bağlantıları kabul etmeye 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şiminin etkinleştirilmesine 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. çalıştırıldığında Enable-PSRemoting
, cmdlet'ini çalıştırdığınız belirli bir 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 çalıştırırsanız Enable-PSRemoting
PowerShell 6.2 çalıştıran bir uzaktan iletişim uç noktası yapılandırılır. PowerShell 7-preview'ı çalıştırırken çalıştırırsanız Enable-PSRemoting
, 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 çalışırken Enable-PSRemoting
PowerShell.6, PowerShell.6.2.2 adlı iki yapılandırılmış uç nokta alırsınız. 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. Alternatif olarak, daha uzun powershell.6.2.2 adını kullanarak belirli bir PowerShell ana bilgisayar sürümüne de bağlanabilirsiniz.
Yeni etkinleştirilen uzaktan iletişim uç noktalarını kullanmak için, cmdlet'leriniEnter-PSSession
New-PSSession
kullanarak Invoke-Command
uzak bağlantı oluştururken bunları ConfigurationName parametresiyle ada göre belirtmeniz gerekir. Daha fazla bilgi için bkz. Örnek 4.
Enable-PSRemoting
Cmdlet 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şimleri 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, cmdlet'i bir Windows PowerShell oturumu içinden çalıştırın Enable-PSRemoting
.
Ö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. Force 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 kullanın Get-NetFirewallRule
. 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 ve etki alanı ağlarından uzaktan erişime izin veren ağ kuralları oluşturur. Komutu, aynı yerel alt ağının ortak ağlarından uzaktan erişime izin vermek için SkipNetworkProfileCheck parametresini kullanır. komutu, onay iletilerini gizlemeye 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.
Set-NetFirewallRule
NetSecurity modülündeki cmdlet, herhangi bir uzak konumdan genel 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 değişkene erişir $PSVersionTable
.
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 Get-NetFirewallRule
adlarını listelemek için 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. Bir sunucu sürümünde yerel alt ağ güvenlik duvarı kuralı 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 cmdlet'ini kullanınSet-NetFirewallRule
.
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ıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.
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
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 ortak 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 cmdlet'ini kullanın Set-NetFirewallRule
: 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 olarak $True
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.
İlişkili Bağlantılar
PowerShell