Копирование и удаленное взаимодействие с использованием powershell - PullRequest
1 голос
/ 06 февраля 2012

Привет всем, я хотел бы скопировать файл на компьютер и удаленно на указанный компьютер и запустить одну команду, а затем собрать выходной файл этой команды. Я было поручено использовать Powershell для копирования и удаленного доступа к машинам. Я использую эту страницу, чтобы помочь мне начать: http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C Я использую программу .net 4 и должна оставаться такой. Сначала я установил Windows SDK 3.5, а затем, когда код не работал, я установил SDK 4.0, но все равно получаю та же ошибка в моей строке ответа: «Сборка смешанного режима построена на версии v2.0.50727 среды выполнения и не может быть загружена во время выполнения 4.0 без дополнительной информации о конфигурации. \ r \ n» Спасибо за помощь Кейси

Runspace runspace = RunspaceFactory.CreateRunspace();
// open it
runspace.Open();
// create a pipeline and feed it the script text
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript("Import-Module BitsTransfer" + Environment.NewLine + "Start-BitsTransfer -Source " + filename + " -Destination \\\\" + host + "\\" + uploadtodir + "\\"+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<PSObject> results = new Collection<PSObject>();
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();

1 Ответ

0 голосов
/ 06 февраля 2012

В файле App.config проекта вам нужно добавить это:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

Если у вас нет файла App.config, просто создайте его.Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...