这是代码 - 在最后一个命令后挂起:
$DllPath = "Q:\A_FILES\PowerSHell\SSH_NET_for_powershell\Renci.SshNet_Binary\Renci.SshNet.dll"
[void][reflection.assembly]::LoadFrom( (Resolve-Path $DllPath) )
$SshClient = New-Object Renci.SshNet.SshClient('199.12.13.44', 22, 'userid', 'password')
$SshClient.Connect()
Get-Process | Out-File -FilePath D:\Powershell\SAN_NAP01_TEST.txt -Encoding ASCII
$SshCommand = $SshClient.RunCommand('statistics show-periodic')
上面通过SSH发出的命令 - STATISTICS show-periodic
- 当手动发送到Netapp存储SAN的SSH会话时 - 开始显示数据并永久运行 - 您不会再次收到提示 - 您必须手动发出{{ 1}}退出此命令,然后在SSH会话中收到CLI提示符以发出另一个所需命令。我认为这就是powerscript挂起的原因 - 因为命令没有返回到提示符 - 没有CTRL-C
发出。
我想在上面的最后一个命令之后发出CTRL-C
(在所需的休眠时间之后) - 但是powershell脚本没有得到控制权。
想知道在$SshCommand = $SshClient.RunCommand('CTRL-C')
命令之后是否有任何方法可以获得控制权,然后能够在所需的时间间隔之后将statistics...
命令发送到SSH会话。
答案 0 :(得分:0)
您是否正在连接Netapp服务器?
如果是这种情况,您可以考虑在命令中使用-iterations参数,这样您的统计信息命令就会返回。
$SshCommand = $SshClient.RunCommand('statistics show-periodic -iterations 5')