在工作群組環境中透過WinRM在目標機器上執行遠端命令

在工作群組環境中透過WinRM在目標機器上執行遠端命令

我期待在本機網路(工作組,無網域加入)中的目標電腦上執行特殊命令。

這些機器之前已經進行了配置Enable-PSremoting等,以允許Windows遠端管理,以便我們可以在目標機器上執行以下命令。

這些命令工作正常,只是如果我想啟動一些特殊命令(例如 start-process),它們不會作為本地計算機執行。

例如,如果我在本機電腦上執行:

> Start-Process -Filepath "cmd.exe"

它啟動cmd進程。如果我遠端操作,就像這樣

Invoke-Command -Computername "my-target-ip" -ScriptBlock {Start-Process -Filepath "cmd.exe"} -Credential get-credential

cmd視窗不在目標機器上執行。

這將允許我在目標電腦上安裝一些特殊的軟體包,這些軟體包需要一些自動 GUI 配置,並且不能僅透過 powershell 進行,例如透過 GUI 暫停更新和設定標準瀏覽器應用程式。否則,一些正常的配置可以正常工作(防火牆設定、寫入檔案、啟用網路配置等)

非常感謝。

答案1

Invoke-Command適用於非互動式命令。 IIRC,使用它你不會得到互動式提示,當然,如果你想在遠端電腦上啟動一個程序,它應該在啟動之前就存在於那裡。

如果您想在遠端電腦上使用互動式會話,您應該使用Enter-PSSession反而:

Enter-PSSession -Computer "remote" -Credential (Get-Credential)

在此會話中,如果您確實需要,您應該能夠啟動 cmd 提示符號。

如果您需要執行許多非互動式的相關命令New-PSSession,則 cmdlet 以及Invoke-Command -Session $session.

相關內容