Импортировать правильный модуль в Visual Studio - командлеты Powershell [duplicate]

Я бы хотел, чтобы все ожидания выполнялись одновременно, поэтому все текстовые блоки будут обновляться более или менее одновременно. Или, может быть, не в одно и то же время - каждый TextBlock будет обновляться по мере завершения соответствующего метода ожидания.

Затем определите несколько новых методов:

private async Task<TFirst> GetFirstListFilesAndDisplayAsync()
{
  var firstList = await GetFirstListFilesAsync();
  textBlock1.Text = "found " + firstList.Count + " first list's results";
}

private async Task<TSecond> GetSecondListFilesAndDisplayAsync()
{
  var secondList = await GetSecondListFilesAsync();
  textBlock2.Text = "found " + secondList.Count + " second list's results";
}

private async Task<TThird> GetThirdListFilesAndDisplayAsync()
{
  var thirdList = await GetThirdListFilesAsync();
  textBlock3.Text = "found " + thirdList.Count + " third list's results";
}

И затем вызовите все они одновременно:

var firstTask = GetFirstListFilesAndDisplayAsync();
var secondTask = GetSecondListFilesAndDisplayAsync();
var thirdTask = GetThirdListFilesAndDisplayAsync();

await Task.WhenAll(firstTask, secondTask, thirdTask);

firstList = await firstTask;
secondList = await secondTask;
thirdList = await thirdTask;
5
задан abatishchev 12 June 2013 в 18:02
поделиться

2 ответа

Получил это, модуль должен быть импортирован по его полному пути, а также для политики выполнения как для 64-разрядной PowerShell, так и для 32-разрядной PowerShell необходимо установить значение Unrestricted (или что-то другое, кроме ограниченного в зависимости от вашего случая) , Вот код:

static void Main(string[] args)
{
    InitialSessionState initial = InitialSessionState.CreateDefault();
    initial.ImportPSModule(new string[] {"C:\\Program Files\\Common Files\\Microsoft Lync Server 2010\\Modules\\Lync\\Lync.psd1"} );
    Runspace runspace = RunspaceFactory.CreateRunspace(initial);
    runspace.Open();     
    PowerShell ps = PowerShell.Create();
    ps.Runspace = runspace;
    ps.Commands.AddCommand("Get-csuser");

    foreach (PSObject result in ps.Invoke())
    {
        Console.WriteLine(result.Members["Identity"].Value);
    }
}
7
ответ дан abatishchev 18 August 2018 в 01:28
поделиться

Попробуйте использовать метод AddCommand класса PowerShell.

ps.AddCommand("import-module Lync");

Или вы можете использовать класс Runspace, вы можете найти здесь пример: http://www.codeproject.com/ Статьи / 18229 / How-работай-PowerShell-скриптов-из-C

-2
ответ дан deryck 18 August 2018 в 01:28
поделиться
  • 1
    Нет радости, я тоже это пробовал. ps.AddCommand («import-module»), за которым следует ps.AddArgument («Lync»); – NullPointer 12 June 2013 в 17:44
Другие вопросы по тегам:

Похожие вопросы: