Informacje o wymaganiach zdalnychAbout Remote Requirements

KRÓTKI OPISSHORT DESCRIPTION

Opisuje wymagania systemowe i wymagania dotyczące konfiguracji na potrzeby uruchamiania poleceń zdalnych w programie PowerShell.Describes the system requirements and configuration requirements for running remote commands in PowerShell.

DŁUGI OPISLONG DESCRIPTION

W tym temacie opisano wymagania systemowe, wymagania dotyczące użytkowników i wymagania dotyczące zasobów służące do ustanawiania połączeń zdalnych i uruchamiania poleceń zdalnych w programie PowerShell.This topic describes the system requirements, user requirements, and resource requirements for establishing remote connections and running remote commands in PowerShell. Zawiera również instrukcje dotyczące konfigurowania operacji zdalnych.It also provides instructions for configuring remote operations.

Uwaga: wiele poleceń cmdlet (w tym poleceń cmdlet Get-Service, get-WMIObject, get-EventLog i Get-WinEvent) umożliwia pobieranie obiektów z komputerów zdalnych przy użyciu metod Microsoft .NET Framework do pobrania obiektów.Note: Many cmdlets (including the Get-Service, Get-Process, Get-WMIObject, Get-EventLog, and Get-WinEvent cmdlets) get objects from remote computers by using Microsoft .NET Framework methods to retrieve the objects. Nie używają infrastruktury komunikacji zdalnej programu PowerShell.They do not use the PowerShell remoting infrastructure. Wymagania opisane w tym dokumencie nie dotyczą tych poleceń cmdlet.The requirements in this document do not apply to these cmdlets.

Aby znaleźć polecenia cmdlet z parametrem ComputerName, ale nie używać komunikacji zdalnej programu PowerShell, Przeczytaj opis parametru ComputerName poleceń cmdlet.To find the cmdlets that have a ComputerName parameter but do not use PowerShell remoting, read the description of the ComputerName parameter of the cmdlets.

WYMAGANIA SYSTEMOWESYSTEM REQUIREMENTS

Aby uruchamiać sesje zdalne w programie Windows PowerShell 3,0, komputery lokalne i zdalne muszą mieć następujące elementy:To run remote sessions on Windows PowerShell 3.0, the local and remote computers must have the following:

  • Windows PowerShell 3,0 lub nowszyWindows PowerShell 3.0 or later
  • Microsoft .NET Framework 4 lub nowszegoThe Microsoft .NET Framework 4 or later
  • Windows Remote Management 3,0Windows Remote Management 3.0

Aby uruchamiać sesje zdalne w programie Windows PowerShell 2,0, komputery lokalne i zdalne muszą mieć następujące elementy:To run remote sessions on Windows PowerShell 2.0, the local and remote computers must have the following:

  • Windows PowerShell 2,0 lub nowszyWindows PowerShell 2.0 or later
  • Microsoft .NET Framework 2,0 lub nowszyThe Microsoft .NET Framework 2.0 or later
  • Windows Remote Management 2,0Windows Remote Management 2.0

Można tworzyć sesje zdalne między komputerami z uruchomionym programem Windows PowerShell 2,0 i Windows PowerShell 3,0.You can create remote sessions between computers running Windows PowerShell 2.0 and Windows PowerShell 3.0. Jednak funkcje uruchamiane tylko w programie Windows PowerShell 3,0, takie jak możliwość rozłączenia i ponownego połączenia z sesjami, są dostępne tylko wtedy, gdy na obu komputerach jest uruchomiony program Windows PowerShell 3,0.However, features that run only on Windows PowerShell 3.0, such as the ability to disconnect and reconnect to sessions, are available only when both computers are running Windows PowerShell 3.0.

Aby znaleźć numer wersji zainstalowanej wersji programu PowerShell, użyj zmiennej automatycznej $PSVersionTable.To find the version number of an installed version of PowerShell, use the $PSVersionTable automatic variable.

Windows Remote Management (WinRM) 3,0 i Microsoft .NET Framework 4 są zawarte w systemie Windows 8, Windows Server 2012 i nowszych wersjach systemu operacyjnego Windows.Windows Remote Management (WinRM) 3.0 and Microsoft .NET Framework 4 are included in Windows 8, Windows Server 2012, and newer releases of the Windows operating system. Usługa WinRM 3,0 jest dołączona do systemu Windows Management Framework 3,0 dla starszych systemów operacyjnych.WinRM 3.0 is included in Windows Management Framework 3.0 for older operating systems. Jeśli na komputerze nie jest zainstalowana wymagana wersja usługi WinRM lub Microsoft .NET Framework, instalacja nie powiedzie się.If the computer does not have the required version of WinRM or the Microsoft .NET Framework, the installation fails.

UPRAWNIENIA UŻYTKOWNIKÓWUSER PERMISSIONS

Aby utworzyć sesje zdalne i uruchamiać polecenia zdalne, domyślnie bieżący użytkownik musi być członkiem grupy Administratorzy na komputerze zdalnym lub podać poświadczenia administratora.To create remote sessions and run remote commands, by default, the current user must be a member of the Administrators group on the remote computer or provide the credentials of an administrator. W przeciwnym razie polecenie zakończy się niepowodzeniem.Otherwise, the command fails.

Uprawnienia wymagane do tworzenia sesji i uruchamiania poleceń na komputerze zdalnym (lub w sesji zdalnej na komputerze lokalnym) są określane przez konfigurację sesji (znaną również jako "punkt końcowy") na komputerze zdalnym, z którym łączy się sesja.The permissions required to create sessions and run commands on a remote computer (or in a remote session on the local computer) are established by the session configuration (also known as an "endpoint") on the remote computer to which the session connects. W tym celu deskryptor zabezpieczeń w konfiguracji sesji określa, kto ma dostęp do konfiguracji sesji i kto może go używać do nawiązywania połączeń.Specifically, the security descriptor on the session configuration determines who has access to the session configuration and who can use it to connect.

Deskryptory zabezpieczeń dotyczące domyślnych konfiguracji sesji, Microsoft. PowerShell, Microsoft. PowerShell32 i Microsoft. PowerShell. Workflow, zezwalają na dostęp tylko członkom grupy Administratorzy.The security descriptors on the default session configurations, Microsoft.PowerShell, Microsoft.PowerShell32, and Microsoft.PowerShell.Workflow, allow access only to members of the Administrators group.

Jeśli bieżący użytkownik nie ma uprawnień do korzystania z konfiguracji sesji, polecenie uruchomienia polecenia (które używa tymczasowej sesji) lub utworzenie sesji trwałej na komputerze zdalnym kończy się niepowodzeniem.If the current user doesn't have permission to use the session configuration, the command to run a command (which uses a temporary session) or create a persistent session on the remote computer fails. Użytkownik może użyć parametru ConfigurationName poleceń cmdlet służących do tworzenia sesji w celu wybrania innej konfiguracji sesji, jeśli jest ona dostępna.The user can use the ConfigurationName parameter of cmdlets that create sessions to select a different session configuration, if one is available.

Członkowie grupy Administratorzy na komputerze mogą określić, kto ma uprawnienia do zdalnego łączenia się z komputerem, zmieniając deskryptory zabezpieczeń w domyślnych konfiguracjach sesji i tworząc nowe konfiguracje sesji z różnymi deskryptorami zabezpieczeń.Members of the Administrators group on a computer can determine who has permission to connect to the computer remotely by changing the security descriptors on the default session configurations and by creating new session configurations with different security descriptors.

Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz Informacje o konfiguracjach sesji.For more information about session configurations, see about_Session_Configurations.

LOKALIZACJE SIECIOWE SYSTEMU WINDOWSWINDOWS NETWORK LOCATIONS

Począwszy od programu Windows PowerShell 3,0, polecenie cmdlet Enable-PSRemoting umożliwia obsługę zdalną w wersjach systemu Windows klienta i serwera w sieciach prywatnych, domenach i publicznych.Beginning in Windows PowerShell 3.0, the Enable-PSRemoting cmdlet can enable remoting on client and server versions of Windows on private, domain, and public networks.

W systemie Windows Server z sieciami prywatnymi i domenami polecenie cmdlet Enable-PSRemoting tworzy reguły zapory, które zezwalają na nieograniczony dostęp zdalny.On server versions of Windows with private and domain networks, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access. Tworzy także regułę zapory dla sieci publicznych, która umożliwia dostęp zdalny tylko z komputerów w tej samej podsieci lokalnej.It also creates a firewall rule for public networks that allows remote access only from computers in the same local subnet. Ta reguła zapory w podsieci lokalnej jest domyślnie włączona w wersjach serwerowych systemu Windows w sieciach publicznych, ale Enable-PSRemoting stosuje reguły w przypadku zmiany lub usunięcia.This local subnet firewall rule is enabled by default on server versions of Windows on public networks, but Enable-PSRemoting reapplies the rule in case it was changed or deleted.

W przypadku wersji klienta systemu Windows z sieciami prywatnymi i domenami Domyślnie polecenie cmdlet Enable-PSRemoting tworzy reguły zapory zezwalające na nieograniczony dostęp zdalny.On client versions of Windows with private and domain networks, by default, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access.

Aby włączyć obsługę zdalną dla klientów z systemem Windows z sieciami publicznymi, należy użyć Enable-PSRemoting parametru SkipNetworkProfileCheck polecenia cmdlet.To enable remoting on client versions of Windows with public networks, use the SkipNetworkProfileCheck parameter of the Enable-PSRemoting cmdlet. Tworzy regułę zapory zezwalającą na dostęp zdalny tylko z komputerów w tej samej podsieci lokalnej.It creates a firewall rule that allows remote access only from computers in the same local subnet.

Aby usunąć ograniczenie podsieci lokalnej dla sieci publicznych i zezwolić na dostęp zdalny ze wszystkich lokalizacji w wersjach systemu Windows klienta i serwera, należy użyć polecenia cmdlet Set-NetFirewallRule w module zabezpieczenia.To remove the local subnet restriction on public networks and allow remote access from all locations on client and server versions of Windows, use the Set-NetFirewallRule cmdlet in the NetSecurity module. Uruchom następujące polecenie:Run the following command:

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

W programie Windows PowerShell 2,0 w wersji serwerowej systemu Windows program Enable-PSRemoting tworzy reguły zapory, które zezwalają na dostęp zdalny do wszystkich sieci.In Windows PowerShell 2.0, on server versions of Windows, Enable-PSRemoting creates firewall rules that permit remote access on all networks.

W programie Windows PowerShell 2,0, w wersji klienta systemu Windows, Enable-PSRemoting tworzy reguły zapory tylko w sieciach prywatnych i domenowych.In Windows PowerShell 2.0, on client versions of Windows, Enable-PSRemoting creates firewall rules only on private and domain networks. Jeśli lokalizacja sieciowa jest publiczna, Enable-PSRemoting kończy się niepowodzeniem.If the network location is public, Enable-PSRemoting fails.

URUCHOM JAKO ADMINISTRATORRUN AS ADMINISTRATOR

Wymagane są uprawnienia administratora dla następujących operacji komunikacji zdalnej:Administrator privileges are required for the following remoting operations:

  • Nawiązywanie połączenia zdalnego z komputerem lokalnym.Establishing a remote connection to the local computer. Jest to często nazywane scenariuszem "sprzężenia zwrotnego".This is commonly known as a "loopback" scenario.

  • Zarządzanie konfiguracjami sesji na komputerze lokalnym.Managing session configurations on the local computer.

  • Wyświetlanie i zmiana ustawień WS-Management na komputerze lokalnym.Viewing and changing WS-Management settings on the local computer. Są to ustawienia w węźle LocalHost usługi WSMAN: Drive.These are the settings in the LocalHost node of the WSMAN: drive.

Aby wykonać te zadania, należy uruchomić program PowerShell z opcją "Uruchom jako administrator", nawet jeśli jesteś członkiem grupy Administratorzy na komputerze lokalnym.To perform these tasks, you must start PowerShell with the "Run as administrator" option even if you are a member of the Administrators group on the local computer.

W systemach Windows 7 i Windows Server 2008 R2, aby uruchomić program Windows PowerShell przy użyciu opcji "Uruchom jako administrator":In Windows 7 and in Windows Server 2008 R2, to start Windows PowerShell with the "Run as administrator" option:

  1. Kliknij przycisk Start, kliknij pozycję Wszystkie programy, kliknij pozycję Akcesoria, a następnie kliknij folder Windows PowerShell.Click Start, click All Programs, click Accessories, and then click the Windows PowerShell folder.
  2. Kliknij prawym przyciskiem myszy program Windows PowerShell, a następnie kliknij polecenie "Uruchom jako administrator".Right-click Windows PowerShell, and then click "Run as administrator".

Aby uruchomić program Windows PowerShell przy użyciu opcji "Uruchom jako administrator":To start Windows PowerShell with the "Run as administrator" option:

  1. Kliknij przycisk Start, kliknij pozycję Wszystkie programy, a następnie kliknij folder Windows PowerShell.Click Start, click All Programs, and then click the Windows PowerShell folder.
  2. Kliknij prawym przyciskiem myszy program Windows PowerShell, a następnie kliknij polecenie "Uruchom jako administrator".Right-click Windows PowerShell, and then click "Run as administrator".

Opcja "Uruchom jako administrator" jest również dostępna w innych wpisach Eksploratora Windows dla programu Windows PowerShell, w tym skrótów.The "Run as administrator" option is also available in other Windows Explorer entries for Windows PowerShell, including shortcuts. Po prostu kliknij prawym przyciskiem myszy element, a następnie kliknij polecenie "Uruchom jako administrator".Just right-click the item, and then click "Run as administrator".

Po uruchomieniu programu Windows PowerShell z innego programu, takiego jak Cmd.exe, użyj opcji "Uruchom jako administrator", aby uruchomić program.When you start Windows PowerShell from another program such as Cmd.exe, use the "Run as administrator" option to start the program.

JAK SKONFIGUROWAĆ KOMPUTER POD KĄTEM KOMUNIKACJI ZDALNEJHOW TO CONFIGURE YOUR COMPUTER FOR REMOTING

Komputery z wszystkimi obsługiwanymi wersjami systemu Windows mogą nawiązywać połączenia zdalne i uruchamiać zdalne polecenia w programie PowerShell bez żadnej konfiguracji.Computers running all supported versions of Windows can establish remote connections to and run remote commands in PowerShell without any configuration. Jednak w celu uzyskania połączeń i umożliwienia użytkownikom tworzenia lokalnych i zdalnych sesji programu PowerShell zarządzanych przez użytkownika ("PSSessions") i uruchamiania poleceń na komputerze lokalnym należy włączyć funkcję komunikacji zdalnej programu PowerShell na komputerze.However, to receive connections, and allow users to create local and remote user-managed PowerShell sessions ("PSSessions") and run commands on the local computer, you must enable PowerShell remoting on the computer.

W systemie Windows Server 2012 i nowszych wersjach systemu Windows Server domyślnie włączono obsługę zdalną programu PowerShell.Windows Server 2012 and newer releases of Windows Server are enabled for PowerShell remoting by default. W przypadku zmiany ustawień można przywrócić ustawienia domyślne, uruchamiając polecenie cmdlet Enable-PSRemoting.If the settings are changed, you can restore the default settings by running the Enable-PSRemoting cmdlet.

We wszystkich innych obsługiwanych wersjach systemu Windows należy uruchomić polecenie cmdlet Enable-PSRemoting, aby włączyć obsługę zdalną programu PowerShell.On all other supported versions of Windows, you need to run the Enable-PSRemoting cmdlet to enable PowerShell remoting.

Funkcje komunikacji zdalnej programu PowerShell są obsługiwane przez usługę WinRM, która jest implementacją Microsoft usług sieci Web do zarządzania (WS-Management).The remoting features of PowerShell are supported by the WinRM service, which is the Microsoft implementation of the Web Services for Management (WS-Management) protocol. Po włączeniu komunikacji zdalnej programu PowerShell należy zmienić domyślną konfigurację WS-Management i dodać konfigurację systemu umożliwiającą użytkownikom łączenie się z usługą WS-Management.When you enable PowerShell remoting, you change the default configuration of WS-Management and add system configuration that allow users to connect to WS-Management.

Aby skonfigurować program PowerShell do odbierania poleceń zdalnych:To configure PowerShell to receive remote commands:

  1. Uruchom program PowerShell z opcją "Uruchom jako administrator".Start PowerShell with the "Run as administrator" option.
  2. W wierszu polecenia wpisz polecenie: Enable-PSRemotingAt the command prompt, type: Enable-PSRemoting

Aby sprawdzić, czy komunikacja zdalna jest prawidłowo skonfigurowana, uruchom polecenie testowe, takie jak następujące polecenie, które tworzy sesję zdalną na komputerze lokalnym.To verify that remoting is configured correctly, run a test command such as the following command, which creates a remote session on the local computer.

New-PSSession

Jeśli komunikacja zdalna jest skonfigurowana poprawnie, polecenie spowoduje utworzenie sesji na komputerze lokalnym i zwrócenie obiektu, który reprezentuje sesję.If remoting is configured correctly, the command will create a session on the local computer and return an object that represents the session. Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:The output should resemble the following sample output:

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

Jeśli polecenie nie powiedzie się, zobacz about_Remote_Troubleshooting.If the command fails, for assistance, see about_Remote_Troubleshooting.

OPIS ZASADUNDERSTAND POLICIES

Podczas pracy zdalnej należy użyć dwóch wystąpień programu PowerShell, jednego na komputerze lokalnym i jednego na komputerze zdalnym.When you work remotely, you use two instances of PowerShell, one on the local computer and one on the remote computer. W efekcie na komputerach lokalnych i zdalnych mają wpływ zasady systemu Windows oraz zasady programu PowerShell.As a result, your work is affected by the Windows policies and the PowerShell policies on the local and remote computers.

Ogólnie rzecz biorąc, przed połączeniem i podczas ustanawiania połączenia są stosowane zasady na komputerze lokalnym.In general, before you connect and as you are establishing the connection, the policies on the local computer are in effect. W przypadku korzystania z połączenia zasady na komputerze zdalnym obowiązują.When you are using the connection, the policies on the remote computer are in effect.

Ograniczenia uwierzytelniania podstawowego w systemach Linux i macOSBasic Authentication Limitations on Linux and macOS

W przypadku nawiązywania połączenia z systemem Linux lub macOS do systemu Windows uwierzytelnianie podstawowe za pośrednictwem protokołu HTTP nie jest obsługiwane.When connecting from a Linux or macOS system to Windows, Basic Authentication over HTTP is not supported. Uwierzytelniania podstawowego można używać za pośrednictwem protokołu HTTPS, instalując certyfikat na serwerze docelowym.Basic Authentication can be used over HTTPS by installing a certificate on the target server. Certyfikat musi mieć nazwę POSPOLITą zgodną z nazwą hosta, nie wygasł ani nie został odwołany.The certificate must have a CN name that matches the hostname, is not expired or revoked. Do celów testowych może służyć certyfikat z podpisem własnym.A self-signed certificate may be used for testing purposes.

Zobacz How to: Configure WINRM for https , aby uzyskać dodatkowe szczegóły.See How To: Configure WINRM for HTTPS for additional details.

Następujące polecenie, uruchom z wiersza polecenia z podwyższonym poziomem uprawnień, spowoduje skonfigurowanie odbiornika HTTPS w systemie Windows przy użyciu zainstalowanego certyfikatu.The following command, run from an elevated command prompt, will configure the HTTPS listener on Windows with the installed certificate.

$hostinfo = '@{Hostname="<DNS_NAME>"; CertificateThumbprint="<THUMBPRINT>"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $hostinfo

Na stronie Linux lub macOS wybierz pozycję podstawowa dla uwierzytelniania i-UseSSl.On the Linux or macOS side, select Basic for authentication and -UseSSl.

Uwaga: uwierzytelnianie podstawowe nie może być używane z kontami domeny; konto lokalne jest wymagane, a konto musi należeć do grupy Administratorzy.NOTE: Basic authentication cannot be used with domain accounts; a local account is required and the account must be in the Administrators group.

# The specified local user must have administrator rights on the target machine.
# Specify the unqualified username.
$cred = Get-Credential username
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Basic -UseSSL

Alternatywą dla uwierzytelniania podstawowego za pośrednictwem protokołu HTTPS jest negocjowanie.An alternative to Basic Authentication over HTTPS is Negotiate. Powoduje to uwierzytelnianie NTLM między klientem a serwerem, a ładunek jest szyfrowany za pośrednictwem protokołu HTTP.This results in NTLM authentication between the client and server and payload is encrypted over HTTP.

Poniższy ilustruje użycie Negocjuj z New-PSSession:The following illustrates using Negotiate with New-PSSession:

# The specified user must have administrator rights on the target machine.
$cred = Get-Credential username@hostname
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Negotiate

Uwaga

System Windows Server wymaga dodatkowego ustawienia rejestru, aby umożliwić administratorom, innym niż wbudowanego administratora, nawiązywanie połączenia przy użyciu protokołu NTLM.Windows Server requires an additional registry setting to enable administrators, other than the built in administrator, to connect using NTLM. Zapoznaj się z ustawieniem rejestru LocalAccountTokenFilterPolicy w obszarze uwierzytelnianie negocjowane w obszarze uwierzytelnianie dla połączeń zdalnychRefer to the LocalAccountTokenFilterPolicy registry setting under Negotiate Authentication in Authentication for Remote Connections

ZOBACZ RÓWNIEŻSEE ALSO

about_Remoteabout_Remote

about_Remote_Variablesabout_Remote_Variables

about_PSSessionsabout_PSSessions

Wywołaj polecenieInvoke-Command

Enter-PSSessionEnter-PSSession

New-PSSessionNew-PSSession