Skip to main content

如何在遠程計算機上運行PowerShell命令

如何在遠程計算機上運行PowerShell命令

Geoffrey Carr

PowerShell遠程處理允許您在遠程Windows系統上運行PowerShell命令或訪問完整的PowerShell會話。它與SSH類似,用於訪問其他操作系統上的遠程終端。

PowerShell默認是鎖定的,因此您必須在使用之前啟用PowerShell Remoting。如果您使用工作組而不是域(例如,在家庭網絡上),此設置過程會稍微複雜一些,但我們會引導您完成它。

在要遠程訪問的PC上啟用PowerShell遠程處理

您的第一步是在要進行遠程連接的PC上啟用PowerShell遠程處理。在該PC上,您需要使用管理權限打開PowerShell。

在Windows 10中,按Windows + X,然後從“高級用戶”菜單中選擇“PowerShell(管理員)”。

在Windows 7或8中,單擊“開始”,然後鍵入“powershell”。右鍵單擊結果並選擇“以管理員身份運行”。

在PowerShell窗口中,鍵入以下cmdlet(命令的PowerShell名稱),然後按Enter鍵:

Enable-PSRemoting -Force

此命令啟動WinRM服務,將其設置為隨系統自動啟動,並創建允許傳入連接的防火牆規則。該-Force cmdlet的一部分告訴PowerShell執行這些操作,而不會提示您執行每個步驟。

如果您的PC是域的一部分,那就是您需要做的所有設置。您可以提前跳過測試連接。如果您的計算機是工作組的一部分 - 他們可能在家庭或小型企業網絡上 - 您需要做更多的設置工作。

注意:您在域環境中設置遠程處理的成功完全取決於您的網絡設置。可以通過管理員配置的組策略自動禁用甚至啟用遠程處理。您可能也沒有以管理員身份運行PowerShell所需的權限。與往常一樣,在嘗試這樣的事情之前,請諮詢您的管理員。他們可能有充分的理由不允許這種做法,或者他們可能願意為你做好準備。

設置您的工作組

如果您的計算機不在域中,則需要執行一些其他步驟來設置內容。您應該已經在要連接的PC上啟用了遠程處理,如上一節所述。

注意:要使PowerShell遠程處理在工作組環境中工作,您必須將網絡配置為私有網絡,而不是公共網絡。有關差異的更多信息以及如果您已經建立了公共網絡,如何更改為專用網絡 - 請查看我們的私有網絡與公共網絡指南。

接下來,您需要在要連接的PC上配置TrustedHosts設置 您要連接的PC(或PC),因此計算機將相互信任。您可以通過以下兩種方式之一完成此操作。

如果您在家庭網絡中要繼續並且信任任何PC遠程連接,則可以在PowerShell中鍵入以下cmdlet(同樣,您需要以管理員身份運行它)。

Set-Item wsman:localhostclient rustedhosts *

星號是所有PC的通配符號。如果您想要限制可以連接的計算機,則可以使用逗號分隔的IP地址列表替換星號,或者為批准的PC替換計算機名稱。

運行該命令後,您需要重新啟動WinRM服務,以使新設置生效。鍵入以下cmdlet,然後按Enter鍵:

Restart-Service WinRM

請記住,您需要在要連接的PC上以及要連接的任何PC上運行這兩個cmdlet。

測試連接

現在您已經為PowerShell Remoting設置了PC,現在是時候測試連接了。在要從中訪問遠程系統的PC上,在PowerShell中鍵入以下cmdlet(將“COMPUTER”替換為遠程PC的名稱或IP地址),然後按Enter鍵:

Test-WsMan COMPUTER

這個簡單的命令測試WinRM服務是否在遠程PC上運行。如果成功完成,您將在窗口中看到有關遠程計算機的WinRM服務的信息,表示WinRM已啟用且您的PC可以進行通信。如果命令失敗,您將看到錯誤消息。

執行單個遠程命令

要在遠程系統上運行命令,請使用Invoke-Command cmdlet使用以下語法:

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

“COMPUTER”表示遠程PC的名稱或IP地址。 “COMMAND”是您要運行的命令。 “USERNAME”是您要在遠程計算機上運行命令的用戶名。系統將提示您輸入用戶名的密碼。

這是一個例子。我想查看IP地址為10.0.0.22的遠程計算機上C:目錄的內容。我想使用用戶名“wjgle”,所以我將使用以下命令:

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

啟動遠程會話

如果要在遠程PC上運行多個cmdlet,而不是重複鍵入Invoke-Command cmdlet和遠程IP地址,則可以啟動遠程會話。只需鍵入以下cmdlet,然後按Enter鍵:

Enter-PSSession -ComputerName COMPUTER -Credential USER

再次,將“COMPUTER”替換為遠程PC的名稱或IP地址,並將“USER”替換為要調用的用戶帳戶的名稱。

您的提示更改為指示您已連接到的遠程計算機,並且您可以直接在遠程系統上執行任意數量的PowerShell cmdlet。

Link
Plus
Send
Send
Pin