繁体   English   中英

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

[英]How can I run a PowerShell script via SMB remotely?

我正在尝试通过 SMB 连接运行 PowerShell 脚本,但它不运行该脚本:

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

它没有说:

Powershell: command not found

我想通过远程服务器上的 SMB 运行 PowerShell 脚本。

linux(从)-> Windows(到)

smbclient-c / --command参数仅适用于 SMB 命令字符串,不适用于任意 shell 命令。 请参见手册页

这些是您可用的命令:

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_COMMAND>用于 shell 命令,但它们将在本地执行,而不是在您的远程服务器上执行。

换句话说,您无法通过 SMB 远程执行 PowerShell 脚本。 寻找其他远程处理技术。 您会在 [SO] 上找到足够多的 PowerShell 远程处理或 SSH 示例。

Powershell Remoting 不是一个选项吗?

只需将Invoke-CommandPSSession object 或-ComputerName <remotecomputer>一起使用。 它可以让您传递文件和脚本块,但您需要使用-ArgumentList及其在脚本块的PARAM()部分中定义的 position 将 arguments 传递给脚本块(如果有)。

错误提示找不到Powershell? 很可能是因为它不是您的 PATH 的一部分,并且您的 shell 不知道在哪里运行 PS 命令取决于您的 Linux,风格,快速查看有关该主题的 MS 文档以查看它是否已安装

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM