Команды Exchange PowerShell через C #
Я использую C # для отправки команд PowerShell, взаимодействующих с Exchange. У меня есть методinitconnection
который устанавливает мое соединение с Exchange.
У меня есть другой метод, который я вызываю, когда нажимаю кнопку, которая отправляет команду powershell после установления соединения. Однако я не могу продолжить созданное соединение. Когда я пытаюсь выполнить команду, она говорит, что команда не найдена. Более чем вероятно, потому что у него нет командлетов обмена.
<code>Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace(); runspace.Open(); Pipeline pipeline = runspace.CreatePipeline(); pipeline.Commands.AddScript("Set-ExecutionPolicy Unrestricted -Scope process -Force;$password = ConvertTo-SecureString -AsPlainText -Force " + password + ";$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist " + username + ",$password;$LiveCred = Get-Credential -Credential $mycred; $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection; Import-PSSession $Session"); // pipeline.Commands.Add("Out-String"); pipeline.Invoke(); mpeAdd.Hide(); </code>
Это метод initconnection, который создает соединение.
<code>protected void Get_Mailboxes(object sender, EventArgs e) { PowerShell powershell = PowerShell.Create(); PSCommand command = new PSCommand(); command = new PSCommand(); command.AddCommand("Get-Mailbox"); powershell.Commands = command; powershell.Runspace = runspace; //Also it says runsapce doesn't exist in this context. Collection<PSObject> commandResults = powershell.Invoke(); StringBuilder sb = new StringBuilder(); ArrayList boxesarray = new ArrayList(); foreach (PSObject ps in commandResults) { boxesarray.Add(ps.Properties["Alias"].Value.ToString()); } boxes.DataSource = boxesarray; boxes.DataBind(); } </code>
Это мой метод, который я вызываю, когда нажимаю кнопку после создания соединения, но оно не работает.