Я пытаюсь выполнить следующие действия:PowerShell SnapIn вопросы в C#
StringBuilder errorList = new StringBuilder();
RunspaceConfiguration runspaceConfig = RunspaceConfiguration.Create();
PSSnapInException snapEx = null;
PSSnapInInfo psinfo = runspaceConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out snapEx);
Runspace runSpace = RunspaceFactory.CreateRunspace(runspaceConfig);
runSpace.Open();
Pipeline pipeLine = runSpace.CreatePipeline();
Я получаю следующее сообщение об ошибке: No snap-ins have been registered for Windows PowerShell version 2.
Я новичок в PoweShell и не уверен, что именно то, что означает, что ошибка. Это что-то, что мне нужно установить?
EDIT: Полный код
///
/// Creates mailbox for the given user.
///
/// Email address of user.
public void EnableMailbox(string userEmail)
{
StringBuilder errorList = new StringBuilder();
RunspaceConfiguration runspaceConfig = RunspaceConfiguration.Create();
PSSnapInException snapEx = null;
PSSnapInInfo psinfo = runspaceConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out snapEx);
Runspace runSpace = RunspaceFactory.CreateRunspace(runspaceConfig);
runSpace.Open();
Pipeline pipeLine = runSpace.CreatePipeline();
if (!MailBoxAlreadyExist(userEmail, runSpace))
{
Command createMailbox = new Command("Enable-Mailbox");
createMailbox.Parameters.Add("identity", userEmail);
createMailbox.Parameters.Add("database", "Mailbox Database Name");
pipeLine.Commands.Add(createMailbox);
pipeLine.Invoke();
if (pipeLine.Error != null && pipeLine.Error.Count > 0)
{
foreach (object item in pipeLine.Error.ReadToEnd())
{
errorList.Append(item.ToString());
errorList.Append(System.Environment.NewLine);
}
Console.WriteLine(errorList.ToString());
}
}
else
{
Console.WriteLine("Mailbox of user " + userEmail + " already exists on exchange server.");
}
pipeLine.Dispose();
runSpace.Close();
runSpace.Dispose();
}