![](/img/trans.png)
[英]How do I run a Powershell script remotely as admin? (PsExec)
[英]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-Command
与PSSession
object 或-ComputerName <remotecomputer>
一起使用。 它可以让您传递文件和脚本块,但您需要使用-ArgumentList
及其在脚本块的PARAM()
部分中定义的 position 将 arguments 传递给脚本块(如果有)。
错误提示找不到Powershell? 很可能是因为它不是您的 PATH 的一部分,并且您的 shell 不知道在哪里运行 PS 命令取决于您的 Linux,风格,快速查看有关该主题的 MS 文档以查看它是否已安装
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.