Enable-PSRemoting

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

Syntax

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-PSSessionNew-PSSession kullanarak Invoke-Commanduzak 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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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-PSRemotingtüm oturum yapılandırmalarının Enabled özelliğinin değerini olarak $Trueayarlayarak tüm oturum yapılandırmalarını etkinleştirir.

Enable-PSRemotingDeny_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.