windows 如何通过SMB远程运行PowerShell脚本?

n3h0vuf2  于 2022-11-30  发布在  Windows
关注(0)|答案(3)|浏览(381)

我尝试通过SMB连接运行PowerShell脚本,但它无法运行该脚本:

smbclient hostname -U username%password -c "Powershell -File run.ps1"

言败曰:

Powershell: command not found

我想通过SMB在远程服务器上运行PowerShell脚本。
Linux(从)-〉Windows(到)

nwnhqdif

nwnhqdif1#

smbclient-c/--command参数仅适用于SMB命令字符串,不适用于任意shell命令。请参阅man pages
以下是可用的命令:

smb: \> ?
?              allinfo        altname        archive        backup         
blocksize      cancel         case_sensitive cd             chmod          
chown          close          del            deltree        dir            
du             echo           exit           get            getfacl        
geteas         hardlink       help           history        iosize         
lcd            link           lock           lowercase      ls             
l              mask           md             mget           mkdir          
more           mput           newer          notify         open           
posix          posix_encrypt  posix_open     posix_mkdir    posix_rmdir    
posix_unlink   posix_whoami   print          prompt         put            
pwd            q              queue          quit           readlink       
rd             recurse        reget          rename         reput          
rm             rmdir          showacls       setea          setmode        
scopy          stat           symlink        tar            tarmode        
timeout        translate      unlock         volume         vuid           
wdel           logon          listconnect    showconnect    tcon           
tdis           tid            utimes         logoff         ..             
!

您可以将! <SHELL_COMMAND>用于shell命令,但它们将在本地执行,而不是在远程服务器上执行。
换句话说,你不能通过SMB远程执行PowerShell脚本。寻找其他远程技术。你会在[SO]这里找到足够多的PowerShell远程或SSH示例。

bqf10yzr

bqf10yzr2#

Powershell远程处理不是一个选项吗?
只需将Invoke-CommandPSSession对象或-ComputerName <remotecomputer>一起使用。它将允许您传递文件和脚本块,但您需要使用-ArgumentList将参数传递给脚本块(如果有),参数的位置在脚本块的PARAM()部分中定义。

z2acfund

z2acfund3#

这个错误表明Powershell没有找到。很有可能是因为它不是PATH的一部分,并且您的shell不知道在哪里运行PS命令。根据您的Linux,风格,快速查看一下MS doc on the topic,看看它是否已安装

相关问题