about_Remote_Requirements

Krótki opis

Opisuje wymagania systemowe i wymagania dotyczące konfiguracji uruchamiania poleceń zdalnych w programie PowerShell.

Długi opis

W tym temacie opisano wymagania systemowe, wymagania użytkownika i wymagania dotyczące zasobów dotyczące nawiązywania połączeń zdalnych i uruchamiania poleceń zdalnych w programie PowerShell. Zawiera również instrukcje dotyczące konfigurowania operacji zdalnych.

Uwaga

Wiele poleceń cmdlet (w tym Get-Servicepoleceń cmdlet , Get-Process, Get-WMIObject, Get-EventLogiGet-WinEvent) pobiera obiekty z komputerów zdalnych przy użyciu metod microsoft .NET Framework w celu pobrania obiektów. Nie korzystają z infrastruktury komunikacji zdalnej programu PowerShell. Wymagania w tym dokumencie nie mają zastosowania do tych poleceń cmdlet.

Aby znaleźć polecenia cmdlet, które mają parametr ComputerName , ale nie używają komunikacji zdalnej programu PowerShell, przeczytaj opis parametru ComputerName poleceń cmdlet.

Wymagania systemowe

Aby uruchomić sesje zdalne na Windows PowerShell 3.0, komputery lokalne i zdalne muszą mieć następujące elementy:

  • Windows PowerShell 3.0 lub nowszym
  • Microsoft .NET Framework 4 lub nowszy
  • Zdalne zarządzanie systemem Windows 3.0

Aby uruchomić sesje zdalne na Windows PowerShell 2.0, komputery lokalne i zdalne muszą mieć następujące elementy:

  • Windows PowerShell 2.0 lub nowszym
  • Microsoft .NET Framework 2.0 lub nowszy
  • Zdalne zarządzanie systemem Windows 2.0

Sesje zdalne można tworzyć między komputerami z systemem Windows PowerShell 2.0 i Windows PowerShell 3.0. Jednak funkcje uruchamiane tylko na Windows PowerShell 3.0, takie jak możliwość rozłączenia i ponownego nawiązywania połączenia z sesjami, są dostępne tylko wtedy, gdy oba komputery działają Windows PowerShell 3.0.

Aby znaleźć numer wersji zainstalowanej wersji programu PowerShell, użyj zmiennej automatycznej $PSVersionTable .

Windows Remote Management (WinRM) 3.0 i Microsoft .NET Framework 4 są dostępne w Windows 8, Windows Server 2012 i nowszych wersjach systemu operacyjnego Windows. Program WinRM 3.0 jest dołączony do wersji Windows Management Framework 3.0 dla starszych systemów operacyjnych. Jeśli komputer nie ma wymaganej wersji usługi WinRM lub microsoft .NET Framework, instalacja zakończy się niepowodzeniem.

Uprawnienia użytkowników

Aby utworzyć sesje zdalne i uruchomić polecenia zdalne, domyślnie bieżący użytkownik musi być członkiem grupy Administratorzy na komputerze zdalnym lub podać poświadczenia administratora. W przeciwnym razie polecenie kończy się niepowodzeniem.

Uprawnienia wymagane do tworzenia sesji i uruchamiania poleceń na komputerze zdalnym (lub w sesji zdalnej na komputerze lokalnym) są ustanawiane przez konfigurację sesji (znaną również jako punkt końcowy) na komputerze zdalnym, z którym łączy się sesja. W szczególności deskryptor zabezpieczeń w konfiguracji sesji określa, kto ma dostęp do konfiguracji sesji i kto może używać go do nawiązywania połączenia.

Deskryptory zabezpieczeń w domyślnych konfiguracjach sesji, Microsoft.PowerShell, Microsoft.PowerShell32 i Microsoft.PowerShell.Workflow umożliwiają dostęp tylko do członków grupy Administratorzy .

Jeśli bieżący użytkownik nie ma uprawnień do korzystania z konfiguracji sesji, polecenie do uruchomienia polecenia (korzystającego z sesji tymczasowej) lub utworzenie sesji trwałej na komputerze zdalnym zakończy się niepowodzeniem. Użytkownik może użyć parametru ConfigurationName poleceń cmdlet, które tworzą sesje, aby wybrać inną konfigurację sesji, jeśli jest dostępna.

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ń.

Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz Informacje o konfiguracjach sesji.

Lokalizacje sieciowe systemu Windows

Począwszy od Windows PowerShell 3.0, Enable-PSRemoting polecenie cmdlet może włączyć komunikację zdalną na klientach i serwerach systemu Windows w sieciach prywatnych, domenowych i publicznych.

W wersjach systemu Windows z sieciami Enable-PSRemoting prywatnymi i domenowymi polecenie cmdlet tworzy reguły zapory, które zezwalają na nieograniczony dostęp zdalny. Tworzy również regułę zapory dla sieci publicznych, która zezwala na dostęp zdalny tylko z komputerów w tej samej podsieci lokalnej. Ta lokalna reguła zapory podsieci jest domyślnie włączona w wersjach serwera systemu Windows w sieciach publicznych, ale Enable-PSRemoting ponownie tworzy regułę w przypadku zmiany lub usunięcia.

W wersjach klienckich systemu Windows z sieciami prywatnymi i domenowymi domyślnie Enable-PSRemoting polecenie cmdlet tworzy reguły zapory, które zezwalają na nieograniczony dostęp zdalny.

Aby włączyć komunikacja zdalną w wersjach klienckich systemu Windows z sieciami publicznymi, użyj parametru Enable-PSRemotingSkipNetworkProfileCheck polecenia cmdlet. Tworzy regułę zapory, która zezwala na dostęp zdalny tylko z komputerów w tej samej podsieci lokalnej.

Aby usunąć ograniczenie podsieci lokalnej w sieciach publicznych i zezwolić na dostęp zdalny ze wszystkich lokalizacji w wersjach klienta i serwera systemu Windows, użyj Set-NetFirewallRule polecenia cmdlet w module NetSecurity . Uruchom następujące polecenie:

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

Uwaga

Nazwa reguły zapory może być inna dla różnych wersji systemu Windows. Użyj Get-NetFirewallRule polecenia , aby wyświetlić listę reguł. Przed włączeniem reguły zapory wyświetl ustawienia zabezpieczeń w regule, aby sprawdzić, czy konfiguracja jest odpowiednia dla danego środowiska.

W Windows PowerShell 2.0 w wersjach serwera systemu Windows Enable-PSRemoting tworzy reguły zapory, które zezwalają na dostęp zdalny we wszystkich sieciach.

W systemie Windows PowerShell 2.0 w wersjach klienckich systemu Windows Enable-PSRemoting reguły zapory są tworzone tylko w sieciach prywatnych i domenowych. Jeśli lokalizacja sieciowa jest publiczna, Enable-PSRemoting kończy się niepowodzeniem.

Uruchom jako administrator

Uprawnienia administratora są wymagane w przypadku następujących operacji komunikacji sieciowej:

  • Nawiązywanie połączenia zdalnego z komputerem lokalnym. Jest to powszechnie znany jako scenariusz "sprzężenia zwrotnego".

  • Zarządzanie konfiguracjami sesji na komputerze lokalnym.

  • Wyświetlanie i zmienianie ustawień WS-Management na komputerze lokalnym. Są to ustawienia w węźle LocalHost dysku WSMAN: .

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.

W systemach Windows 7 i Windows Server 2008 R2 uruchom program PowerShell z opcją Uruchom jako administrator :

  1. Kliknij przycisk Start, kliknij pozycję Wszystkie programy, kliknij pozycję Akcesoria, a następnie kliknij folder programu PowerShell.
  2. Kliknij prawym przyciskiem myszy program PowerShell, a następnie kliknij polecenie Uruchom jako administrator.

Aby rozpocząć Windows PowerShell przy użyciu opcji Uruchom jako administrator:

  1. Kliknij przycisk Start, kliknij pozycję Wszystkie programy, a następnie kliknij folder programu PowerShell.
  2. Kliknij prawym przyciskiem myszy program PowerShell, a następnie kliknij polecenie Uruchom jako administrator.

Opcja Uruchom jako administrator jest również dostępna w innych wpisach Eksploratora Windows dla programu PowerShell, w tym skrótów. Wystarczy kliknąć prawym przyciskiem myszy element, a następnie kliknąć polecenie Uruchom jako administrator.

Po uruchomieniu programu PowerShell z innego programu, takiego jak Cmd.exe, użyj opcji Uruchom jako administrator , aby uruchomić program.

Jak skonfigurować komputer na potrzeby komunikacji zdalnie

Komputery z uruchomionymi wszystkimi obsługiwanymi wersjami systemu Windows mogą ustanowić połączenia zdalne z programem PowerShell i uruchamiać polecenia zdalne bez żadnej konfiguracji. Jednak aby odbierać połączenia i zezwalać użytkownikom na tworzenie lokalnych i zdalnych sesji programu PowerShell zarządzanych przez użytkownika ("PSSessions") i uruchamianie poleceń na komputerze lokalnym, należy włączyć komunikację zdalną programu PowerShell na komputerze.

Windows Server 2012 i nowsze wersje systemu Windows Server są domyślnie włączone na potrzeby komunikacji zdalnej programu PowerShell. Jeśli ustawienia zostaną zmienione, możesz przywrócić ustawienia domyślne, uruchamiając Enable-PSRemoting polecenie cmdlet.

We wszystkich innych obsługiwanych wersjach systemu Windows należy uruchomić polecenie cmdlet w celu włączenia komunikacji zdalnej Enable-PSRemoting programu PowerShell.

Funkcje komunikacji zdalnej programu PowerShell są obsługiwane przez usługę WinRM, która jest implementacją protokołu Web Services for Management (WS-Management). Po włączeniu komunikacji zdalnej programu PowerShell należy zmienić domyślną konfigurację WS-Management i dodać konfigurację systemu, która umożliwia użytkownikom łączenie się z usługą WS-Management.

Aby skonfigurować program PowerShell do odbierania poleceń zdalnych:

  1. Uruchom program PowerShell z opcją Uruchom jako administrator .
  2. W wierszu polecenia wpisz polecenie: Enable-PSRemoting

Aby sprawdzić, czy komunikacja zdalna jest poprawnie skonfigurowana, uruchom polecenie testowe, takie jak następujące polecenie, które tworzy sesję zdalną na komputerze lokalnym.

New-PSSession

Jeśli komunikacja zdalna jest poprawnie skonfigurowana, polecenie utworzy sesję na komputerze lokalnym i zwróci obiekt reprezentujący sesję. Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:

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

Jeśli polecenie zakończy się niepowodzeniem, aby uzyskać pomoc, zobacz about_Remote_Troubleshooting.

Omówienie zasad

W przypadku pracy zdalnej należy użyć dwóch wystąpień programu PowerShell, jednego na komputerze lokalnym i jednego na komputerze zdalnym. W związku z tym praca ma wpływ na zasady systemu Windows i zasady programu PowerShell na komputerach lokalnych i zdalnych.

Ogólnie rzecz biorąc, przed nawiązaniem połączenia i podczas nawiązywania połączenia zasady na komputerze lokalnym obowiązują. W przypadku korzystania z połączenia zasady na komputerze zdalnym obowiązują.

Podstawowe ograniczenia uwierzytelniania w systemach Linux i macOS

Podczas nawiązywania połączenia z systemu Linux lub macOS z systemem Windows uwierzytelnianie podstawowe za pośrednictwem protokołu HTTP nie jest obsługiwane. Uwierzytelnianie podstawowe może być używane za pośrednictwem protokołu HTTPS, instalując certyfikat na serwerze docelowym. Certyfikat musi mieć nazwę CN zgodną z nazwą hosta, nie wygasła ani nie została odwołana. Certyfikat z podpisem własnym może być używany do celów testowych.

Zobacz Instrukcje: konfigurowanie usługi WINRM dla protokołu HTTPS , aby uzyskać dodatkowe informacje.

Następujące polecenie, uruchom polecenie z wiersza polecenia z podwyższonym poziomem uprawnień, skonfiguruje odbiornik HTTPS w systemie Windows przy użyciu zainstalowanego certyfikatu.

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

Po stronie systemu Linux lub macOS wybierz pozycję Podstawowa dla uwierzytelniania i -UseSSl.

Uwaga

Uwierzytelnianie podstawowe nie może być używane z kontami domeny; konto lokalne jest wymagane, a konto musi znajdować się w grupie Administratorzy .

# 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. Powoduje to szyfrowanie uwierzytelniania NTLM między klientem a serwerem i ładunkiem za pośrednictwem protokołu HTTP.

Poniższe ilustracje ilustrują użycie metody Negotiate z elementem 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ż wbudowany administrator nawiązywanie połączenia przy użyciu protokołu NTLM. Zapoznaj się z ustawieniem rejestru LocalAccountTokenFilterPolicyw obszarze Uwierzytelnianie w obszarze Uwierzytelnianie dla połączeń zdalnych

Zobacz też