If-Koubou

Jak uruchamiać polecenia PowerShell na komputerach zdalnych

Jak uruchamiać polecenia PowerShell na komputerach zdalnych (Jak)

Program PowerShell Remoting umożliwia uruchamianie poleceń PowerShell lub dostęp do pełnych sesji PowerShell na zdalnych systemach Windows. Jest podobny do SSH do uzyskiwania dostępu do terminali zdalnych w innych systemach operacyjnych.

PowerShell jest domyślnie zablokowany, dlatego przed użyciem musisz włączyć PowerShell Remoting. Ten proces konfiguracji jest nieco bardziej skomplikowany, jeśli używasz grupy roboczej zamiast domeny - na przykład w sieci domowej - ale przeprowadzimy Cię przez to.

Włącz PowerShell Remoting na komputerze, do którego chcesz uzyskać dostęp zdalnie

Pierwszym krokiem jest włączenie programu PowerShell Remoting na komputerze, na którym chcesz nawiązywać połączenia zdalne. Na tym komputerze musisz otworzyć PowerShell z uprawnieniami administratora.

W Windows 10 naciśnij Windows + X, a następnie wybierz PowerShell (Admin) z menu Power User.

W Windows 7 lub 8, naciśnij Start, a następnie wpisz "powershell". Kliknij wynik prawym przyciskiem myszy i wybierz "Uruchom jako administrator".

W oknie PowerShell wpisz następujące polecenie cmdlet (nazwa PowerShell dla polecenia), a następnie naciśnij Enter:

Włącz-PSRemotowanie -Force

To polecenie uruchamia usługę WinRM, ustawia ją tak, aby uruchamiało się automatycznie w systemie i tworzy regułę zapory, która zezwala na połączenia przychodzące. The-Siła część polecenia cmdlet mówi PowerShell, aby wykonał te akcje bez pytania o każdy krok.

Jeśli twoje komputery są częścią domeny, to wszystko, co musisz zrobić. Możesz przejść dalej, aby przetestować połączenie. Jeśli twoje komputery są częścią grupy roboczej, która prawdopodobnie znajduje się w sieci domowej lub małej firmy, musisz wykonać trochę więcej prac konfiguracyjnych.

Uwaga: Twój sukces w konfiguracji zdalnego działania w środowisku domeny zależy wyłącznie od konfiguracji Twojej sieci. Remoting może być wyłączony - lub nawet włączony - automatycznie według zasad grupy skonfigurowanych przez administratora. Możesz również nie mieć uprawnień potrzebnych do uruchomienia PowerShell jako administrator. Jak zawsze sprawdź u swoich administratorów, zanim spróbujesz czegoś podobnego. Mogą mieć dobre powody, by nie dopuszczać do praktyki, lub mogą chcieć ją dla ciebie ustawić.

Skonfiguruj swoją grupę roboczą

Jeśli Twoje komputery nie znajdują się w domenie, musisz wykonać kilka czynności, aby je skonfigurować. Powinieneś już włączyć Remoting na komputerze, do którego chcesz się podłączyć, tak jak to opisano w poprzedniej sekcji.

Uwaga: Aby program PowerShell Remoting działał w środowisku grupy roboczej, należy skonfigurować sieć jako prywatną, a nie publiczną. Aby uzyskać więcej informacji na temat różnicy i sposobu zmiany sieci prywatnej, jeśli masz już skonfigurowaną sieć publiczną, zapoznaj się z naszym przewodnikiem dotyczącym sieci prywatnych i publicznych.

Następnie musisz skonfigurować ustawienie TrustedHosts na komputerze, z którym chcesz się połączyći komputer (lub komputery PC), z którym chcesz się połączyć, aby komputery mogły sobie nawzajem ufać. Możesz to zrobić na jeden z dwóch sposobów.

Jeśli korzystasz z sieci domowej i chcesz zaufać dowolnemu komputerowi, aby połączyć się zdalnie, możesz wpisać następujące polecenie cmdlet w PowerShell (ponownie, musisz uruchomić to jako Administrator).

Ustaw element wsman: \ localhost \ client \ trustedhosts *

Gwiazdka jest symbolem wieloznacznym dla wszystkich komputerów. Jeśli zamiast tego chcesz ograniczyć komputery, które mogą się łączyć, możesz zastąpić gwiazdkę rozdzieloną przecinkami listą adresów IP lub nazw komputerów dla zatwierdzonych komputerów.

Po uruchomieniu tego polecenia należy ponownie uruchomić usługę WinRM, aby nowe ustawienia zaczęły obowiązywać. Wpisz następujące polecenie cmdlet, a następnie naciśnij Enter:

Restart-Service WinRM

Pamiętaj, że musisz uruchomić te dwa polecenia cmdlet na komputerze, do którego chcesz się podłączyć, a także na komputerach, z których chcesz się połączyć.

Przetestuj połączenie

Po skonfigurowaniu komputerów do PowerShell Remoting nadszedł czas na przetestowanie połączenia. Na komputerze, z którego chcesz uzyskać dostęp do zdalnego systemu, wpisz następujące polecenie cmdlet w PowerShell (zastępując "COMPUTER" nazwą lub adresem IP zdalnego komputera), a następnie naciśnij Enter:

Test-WsMan COMPUTER

Ta prosta komenda sprawdza, czy usługa WinRM działa na zdalnym komputerze. Jeśli zakończy się pomyślnie, w oknie zobaczysz informacje o usłudze WinRM na komputerze zdalnym, co oznacza, że ​​WinRM jest włączony i Twój komputer może się komunikować. Jeśli polecenie nie powiedzie się, pojawi się komunikat o błędzie.

Wykonaj pojedyncze zdalne polecenie

Aby uruchomić polecenie w systemie zdalnym, użyj znakuInvoke-Command cmdlet przy użyciu następującej składni:

Invoke-Command-ComputerName COMPUTER -ScriptBlock COMMAND -credential USERNAME

"COMPUTER" reprezentuje nazwę lub adres IP komputera zdalnego. "COMMAND" to polecenie, które chcesz uruchomić. "USERNAME" to nazwa użytkownika, na którym chcesz uruchomić polecenie, tak jak na komputerze zdalnym. Zostaniesz poproszony o podanie hasła do nazwy użytkownika.

Oto przykład. Chcę wyświetlić zawartość katalogu C: \ na komputerze zdalnym o adresie IP 10.0.0.22. Chcę użyć nazwy użytkownika "wjgle", więc chciałbym użyć następującego polecenia:

Invoke-Command-ComputerName 10.0.0.22 -ScriptBlock Get-ChildItem C: \ -credential wjgle

Rozpocznij sesję zdalną

Jeśli masz kilka poleceń cmdlet, które chcesz uruchomić na zdalnym komputerze, zamiast powtarzać wielokrotnie polecenie cmdlet Invoke-Command i zdalny adres IP, możesz zamiast tego uruchomić zdalną sesję. Po prostu wpisz następujące polecenie cmdlet, a następnie naciśnij Enter:

Enter-PSSession - Nazwa komputera COMPUTER -Credential USER

Ponownie, zastąp "COMPUTER" nazwą lub adresem IP zdalnego komputera i zastąp "USER" nazwą konta użytkownika, które chcesz wywołać.

Twój monit zmienia się, wskazując komputer zdalny, z którym jesteś połączony, i możesz wykonywać dowolną liczbę poleceń cmdlet programu PowerShell bezpośrednio w systemie zdalnym.