Windows
使用 PowerShell 在遠端電腦上執行程序
如何使用 powershell 在遠端機器上執行程序?
執行此操作的一個很酷的新方法是使用WinRM。我已經在 Windows Server 2008 R2 上看到過這個展示,儘管有一個下載了 powershell v2 和 WinRM 用於其他 Windows 作業系統。
不那麼酷(或新)的方法是使用psexec,它不是 powershell,但我確信有某種方法可以通過 powershell-esque 語法呼叫它。
您還可以使用 WMI 並遠端啟動程序。它不會是互動式的,您必須相信它會自行結束。除了為 WMI 打開埠外,這不需要遠端電腦上的任何東西。
Function New-RemoteProcess { Param([string]$computername=$env:computername, [string]$cmd=$(Throw "You must enter the full path to the command which will create the process.") ) $ErrorActionPreference="SilentlyContinue" Trap { Write-Warning "There was an error connecting to the remote computer or creating the process" Continue } Write-Host "Connecting to $computername" -ForegroundColor CYAN Write-Host "Process to create is $cmd" -ForegroundColor CYAN [wmiclass]$wmi="\\$computername\root\cimv2:win32_process" #bail out if the object didn't get created if (!$wmi) {return} $remote=$wmi.Create($cmd) if ($remote.returnvalue -eq 0) { Write-Host "Successfully launched $cmd on $computername with a process id of" $remote.processid -ForegroundColor GREEN } else { Write-Host "Failed to launch $cmd on $computername. ReturnValue is" $remote.ReturnValue -ForegroundColor RED } }
範例用法:
New-RemoteProcess -comp "puck" -cmd "c:\windows\notepad.exe"