[英]Powershell posh-ssh: How to store results of Invoke-SSHCommand?
[英]how to “sudo root” with posh-ssh (powershell)
我正在使用posh-ssh連接到我的 ssh 服務器執行一些以su root開頭的命令,但我無法成功地將用戶切換到 root。
PS C:\> $rootpwdSec = ConvertTo-SecureString $rootpwd -AsPlainText -Force
PS C:\> Invoke-SSHStreamExpectSecureAction -Command 'su ' -ExpectString 'Password:' -SecureAction $rootpwdSec -ShellStream $stream
True
PS C:\> $stream.read();
[root@aaaaaa-test admin]#
PS C:\> Invoke-SSHCommandStream -SessionId $SessionId -Command 'id'
uid=500(admin) gid=500(admin) groups=500(admin) context=user_u:system_r:unconfined_t
PS C:\>
如何以 root 身份運行我的命令?
我在使用 posh-ssh 和 ubuntu 時注意到的是,由於 ExpectString,我無法使用“sudo su -” sudo 到 root。 它期待“(用戶名)的[sudo]密碼:”而我只是提供“密碼:”
$stream = $session.Session.CreateShellStream("PS-SSH", 0, 0, 0, 0, 100)
$user = Invoke-SSHCommand $session -Command "whoami"
$SSHusersName = $user.Output | Out-String
$SSHusersName = $SSHusersName.Trim()
$results = Invoke-SSHStreamExpectSecureAction -ShellStream $stream -Command "sudo su -" -ExpectString "[sudo] password for $($SSHusersName):" -SecureAction $secpas
$stream.Read()
這就是我能夠 sudo 到 root 的方式。 同樣,根據您連接的 *nix 變體,它對您來說可能會有所不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.