You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SMB从Linux远程执行Windows上的PowerShell脚本?

问题分析与解决方法

原命令错误原因

你用smbclient的-c参数传入Powershell -File run.ps1是错误的,因为smbclient的-c是执行smbclient自身的操作命令(比如上传、下载文件),不是把命令发送到远程Windows系统执行。这条命令会被Linux本地shell解析,而你的Linux环境里没有Powershell命令,所以报错Powershell: command not found。

正确实现方式

要从Linux远程执行Windows的PowerShell脚本,需要用专门的远程执行工具,比如impacket工具集里的psexec.py或wmiexec.py,步骤如下:

1. 先上传脚本到Windows的SMB共享目录

用smbclient把本地的run.ps1上传到Windows的共享目录(比如//hostname/Shared):

smbclient //hostname/Shared -U username%password -c "put run.ps1"

2. 远程执行脚本

方法一:使用psexec.py

psexec.py username:password@hostname "powershell -File C:\Shared\run.ps1"

(注意替换C:\Shared为共享目录对应的Windows本地路径,或者直接用网络路径:"powershell -File \\hostname\Shared\run.ps1")

方法二:使用wmiexec.py

wmiexec.py username:password@hostname "powershell -File C:\Shared\run.ps1"

3. 前置要求

  • Linux系统需要安装impacket工具集,可通过包管理器安装(比如Debian/Ubuntu:apt install python3-impacket)或pip安装:pip install impacket
  • Windows端需开启SMB服务,且共享目录对指定用户有读写权限
  • Windows端PowerShell执行策略需允许运行脚本,可远程先执行:psexec.py username:password@hostname "Set-ExecutionPolicy RemoteSigned -Force"(根据实际需求调整策略)

内容的提问来源于stack exchange,提问作者rocky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:25:14