Jak uruchamiać polecenia PowerShell na komputerach zdalnych
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, więc 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 PowerShell Remoting na komputerze, na którym chcesz wykonywać 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 należą do 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 także 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ć to 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 opisaliśmy 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 po sieciach prywatnych i publicznych.
Następnie skonfiguruj 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 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 konieczne będzie ponowne uruchomienie usługi 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 będziesz musiał uruchomić te dwa polecenia cmdlet na komputerze, do którego chcesz się podłączyć, a także na każdym komputerze, z którym 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ę, zobaczysz komunikat o błędzie.
Wykonaj pojedyncze zdalne polecenie
Aby uruchomić polecenie w systemie zdalnym, użyj klawisza Invoke-Command
cmdlet przy użyciu następującej składni:
Invoke-Command-ComputerName COMPUTER -ScriptBlock COMMAND -credential USERNAME
"COMPUTER" oznacza nazwę zdalnego komputera lub jego adres IP. "COMMAND" to polecenie, które chcesz uruchomić. "USERNAME" to nazwa użytkownika, którą chcesz uruchomić, 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 -KomputerName 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.