使用 powershell 和 plink 通过 sudo 命令关闭远程 linux 计算机

use powershell and plink to shutdown remote linux computer with sudo command

我正在尝试使用 powershell 和 plink 以非交互方式从 windows 计算机远程关闭 RHEL7 linux 计算机。

我可以像这样发送命令并检索结果:

$plinkPath = "C:\somePath"
$ipAddress = "192.168.111.1"
$username = "userName"
$password = "password"
$resultPath = "C:\somewhere"
$resultFile = "someFile.txt"
& "$plinkPath\plink.exe" @("$ipAddress", "-l", "$username", "-pw", "$password", "(pwd)" | Out-File "$resultPath$resultFile"

上面的命令打印linux中的工作目录并将其保存到文件中。但是,我无法发送这样的关机命令,因为该命令必须是 运行 作为这台计算机上的根用户。我相信对于 运行 sudo 命令应该有一些类似下面的语法以类似的方式:

& "$plinkPath\plink.exe" @("$ipAddress", "-l", "$username", "-pw", "$password", "(sudo ... shutdown -h now)") | Out-File "$resultPath$resultFile"

有什么方法可以使用这种方法通过 sudo 发送关机命令吗?

谢谢。

确保用户确实可以 运行 sudo 命令。 问题可能是尝试 运行 命令的用户被要求插入 sudo 密码。 在 sudoers 文件中插入 <YOUR_USERNAME> ALL=(ALL) NOPASSWD