Мне нужно выполнить несколько командлетов в удаленном сеансе PowerShell в определенном порядке: напр.если эта группа рассылки существует, добавьте этого пользователя в группу, но я продолжаю получать сообщения о состоянии пространства выполнения или о том, что я создал слишком много областей выполнения, и мне нужно подождать некоторое время.Я не могу использовать пул пространства выполнения, потому что для каждого сеанса мне нужно получить результат командлета перед выполнением других командлетов.
Я попытался выполнить блочный сценарий командлетов (два или три командлета, которые зависят отрезультат других) в том же пространстве выполнения, но я получаю недопустимое состояние пространства выполнения, потому что пространство выполнения не открыто.Я удаляю пространство выполнения после завершения сценария блока командлетов и тоже располагаю сеансом Powerhell.
После поиска на этом сайте ответов на некоторые вопросы я читаю чей-то ответ в связанном вопросе, где он сказал, что пространство выполнения иСеанс PowerShell следует отбрасывать после каждого вызова и создавать заново, но через короткое время я получаю сообщение о том, что не могу создать больше пространств выполнения.
Collection<PSObject> resultado = new Collection<PSObject>();
try
{
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(new Uri(LiveId), SchemaUri, Credenciales);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo);
if (runspace != null && Credenciales != null)
{
PowerShell PS = PowerShell.Create();
PS.Runspace = runspace;
runspace.Open();
using (Pipeline pipeline = runspace.CreatePipeline())
{
Command cmd = new Command(comando);
foreach (KeyValuePair<string, string> parametro in parametros)
{
cmd.Parameters.Add(parametro.Key, parametro.Value);
}
pipeline.Commands.Add(cmd);
resultado = pipeline.Invoke();
}
runspace.Close();
runspace.Dispose();
PS.Dispose();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace + "/" + comando + parametros);
}
Как правильно я управляю пространством выполнения, чтобы убедиться, чтокаждый скрипт блока командлетов выполняется правильно?
Большое спасибо !!!