【发布时间】:2018-02-05 14:17:41
【问题描述】:
我正在尝试自动化在 linux 机器中添加额外存储的过程。我在我的 Windows 机器上安装的 PowerShell 中使用plink。
下面是代码:
$plinkpath = "C:\Users\mydrive\Modules\plink.exe"
if (Test-Path $plinkpath) {
Set-Alias plink $plinkpath
} else {
throw "Plink.exe is reqruied"
}
$passw = "linuxadmin$123"
$commands = @(
"sudo su;",
"pvcreate /dev/sde;",
"vgcreate test_vog /dev/sde",
"lvcreate -l 100%FREE -n test_lev test_vog;",
"mkfs.ext3 /dev/test_vog/test_lev;",
"mkdir /azurenew;",
"echo ""/dev/test_vog/test_lev /azurenew/ ext3 defaults 1 1"" >> /etc/fstab;",
"mount /azurenew/;"
)
方法一:使用 .ppk 文件
plink -ssh -i "C:\Users\amurthy\Documents\WindowsPowerShell\Modules\sshprivate.ppk" linuxadmin@xx.xx.xx.xxx $commands
在上述情况下,PowerShell 挂起并且控制台没有响应。不知道发生了什么。
方法二:使用直接登录
plink -P "22" -v "linuxadmin@xx.xx.xx.xxx" -pw "linuxadmin$123" $commands
在这里,我在控制台上得到以下响应
使用用户名“linuxadmin”。 发送密码 密码验证失败
虽然我可以使用 putty.exe 使用该密码登录,但我不明白为什么密码验证失败。
谁能帮我解决我上面的自动化问题?如果您有更好的解决方案,非常欢迎。
【问题讨论】:
-
在命令行上运行
plink -ssh -i ...会发生什么?
标签: linux powershell-3.0 putty plink