我正在尝试使用powershell调用操作符本质上运行以下命令:
“C:\ Program Files(x86)\ PuTTY \ plink.exe”“-v -agent -m C:\ Scripts \ idrac_powerup_commands.txt root @ [servername]”
$runputtyscript = @() $runputtyscript += "-v" $runputtyscript += "-agent" $runputtyscript += "-m C:\Scripts\idrac_powerup_commands.txt" & 'C:\Program Files (x86)\PuTTY\plink.exe' $allArgs root@servername
这是执行,但脚本不会执行该命令相同的,如果从命令行执行原始string的文件。它显示我的pipe理控制台(所以它已经login,使用公钥进行身份validation等),但它只是没有运行我要求它运行的脚本。
也许更简洁的方式问 :什么是适当的方式来使用参数,然后有自己的参数(例如“-m [文件名] -v -a”与调用运算符(&)在PowerShell中?
您可能会遇到您的variables不被Win32二进制文件处理的情况。 你可以通过双引号缓解这一点:
'C:\Program Files (x86)\PuTTY\plink.exe' "$allArgs" root@servername
我也有同样的问题netsh回来。
出于某种原因,以下面的方式编写它会导致它完全从PowerShell提示符,并从命令提示符调用powershell.exe C:\path\到\ Script.ps1
& 'C:\Program Files (x86)\PuTTY\plink.exe' -v -agent -m C:\Scripts\idrac_powerup_commands.txt root@servername | Write-Host
去搞清楚。