title: Powershell Runspace Enter-PSSession
body: <p>I am writing a program that will run a program on a remote machine.
  I have installed the windows sdk and have successfully uploaded my file with bits
  now I would like to remotely run a change directory and execute a command using
  power shell. </p>
  
  <p>The program compiles and runs but in the answer variable it says: <strong>"The method or operation is not implemented.\r\n"</strong></p>
  
  <pre><code>// create Powershell runspace
  Runspace runspace = RunspaceFactory.CreateRunspace();
  // open it
  runspace.Open();
  // create a pipeline and feed it the script text
  Pipeline pipeline = runspace.CreatePipeline();
  pipeline.Commands.AddScript("Enter-PSSession " + host + Environment.NewLine + "cd " + uploadtodir + Environment.NewLine + command + Environment.NewLine + "exit" + Environment.NewLine + "exit" + Environment.NewLine);
  // add an extra command to transform the script output objects into nicely formatted strings
  // remove this line to get the actual objects that the script returns. For example, the script
  // "Get-Process" returns a collection of System.Diagnostics.Process instances.
  
  pipeline.Commands.Add("Out-String");
  // execute the script
  
  Collection&lt;PSObject&gt; results = new Collection&lt;PSObject&gt;();
  try
  {
      results = pipeline.Invoke();
  }
  
  catch (Exception ex)
  {
      results.Add(new PSObject((object)ex.Message));
  }
  
  // close the runspace
  runspace.Close();
  // convert the script result into a single string
  
  StringBuilder stringBuilder = new StringBuilder();
  
  foreach (PSObject obj in results)
  {
      stringBuilder.AppendLine(obj.ToString());
  }
  
  string answer = stringBuilder.ToString();
  </code></pre>
  
  <p>I tried to use another command in the pipeline but it fails also but with no error output. </p>
  
  <pre><code>**pipeline.Commands.AddScript("$sessions = New-PSSession -ComputerName " + host + Environment.NewLine + "Invoke-Command -session $sessions -ScriptBlock {cd " + uploadtodir+"}" + Environment.NewLine+"Invoke-Command -session $sessions -ScriptBlock {"+command+ "}" + Environment.NewLine + "Remove-PSSession -Session $sessions" + Environment.NewLine + "exit" + Environment.NewLine + "exit" + Environment.NewLine);**
  </code></pre>