Мне нужно выполнить некоторые команды PowerShell на удаленном компьютере из кода. Для этого я использую. net s sh клиент. Все работает, кроме интерпретации команды pipe. Приведенный ниже код возвращает мне сообщение об ошибке:
ОТЛАДКА: «Stop-Process» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
using System.IO;
using Or1WinAppDriverTests.Properties;
using Renci.SshNet;
using Xunit;
using Xunit.Abstractions;
namespace Or1WinAppDriverTests.aidaTests {
public class AidaMachineSshAccessTests
{
public AidaMachineSshAccessTests(ITestOutputHelper output)
{
this._output = output;
}
private readonly ITestOutputHelper _output;
[Fact]
public void SshTest3()
{
var host = Resources.HOST;
var username = Resources.USERNAME;
var password = Resources.PASSWORD;
using (var client = new SshClient(host, username, password))
{
#region Example SshCommand CreateCommand Execute ExtendedOutputStream
client.Connect();
var cmd2 = client.CreateCommand(
$"powershell.exe -executionPolicy bypass ;" +
$"Get-Process notepad | Stop-Process ;" +
$"exit ;");
var result = cmd2.Execute();
_output.WriteLine(result);
var reader = new StreamReader(cmd2.ExtendedOutputStream);
_output.WriteLine("DEBUG:");
_output.WriteLine(reader.ReadToEnd());
client.Disconnect();
#endregion Example SshCommand CreateCommand Execute ExtendedOutputStream
}
}
}
}