Главная > C#, Live@edu, PowerShell > Использование PowerShell из C#

Использование PowerShell из C#

imagePowerShell предоставляет разработчикам огромные возможности по управлению операционной системой и серверными программными продуктами. Только PowerShell может использоваться для управления Exchange Server 2010, который является основным компонентом программы Microsoft Live@edu.

В настоящий момент мы ведем разработку мета-сервиса, который позволит применять стандартные методы веб-сервисов для управления всеми компонентами Live@edu, однако для того, чтобы понимать, как работает веб-сервис, создавая пользователей, группы и выполняя настройки, предлагаю убедиться, что доступ к PowerShell из C# действительно очень удобен и прост.

1. Добавление ссылки на сборку

Необходимо добавить ссылку на сброку System.Management.Automation. Она располагается в каталоге C:Program FilesReference AssembliesMicrosoftWindowsPowerShellv1.0.

2. Подключение типов

Добавьте ссылки на типы в код C#.

using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;

3. Метод запуска команды (сценария)Добавьте функцию, который будет выполнять команду PowerShell и возвращать результат в виде строки.static string RunScript(string scriptText)
        {
            Runspace runspace = RunspaceFactory.CreateRunspace(); // создание процесса            runspace.Open(); // открытие процесса            Pipeline pipeline = runspace.CreatePipeline(); // создание конвейера            pipeline.Commands.AddScript(scriptText); //добавление сценария            pipeline.Commands.Add(«Out-String»); // эта команда форматирует вывод. Без нее возвращаются реальные объекты.            Collection<PSObject> results = pipeline.Invoke(); // запуск сценария            runspace.Close(); // закрыте процесса            StringBuilder stringBuilder = new StringBuilder(); // конвертация результата в одну строку с использованием StringBuilder;
            foreach (PSObject obj in results)
            {
                stringBuilder.AppendLine(obj.ToString());
            }            return stringBuilder.ToString(); // возврат значения
        }4. ИспользованиеВыполните команду Get-Process и посмотрите результат.

string result = RunScript(«Get-Process»);
Console.WriteLine(result);
Console.ReadLine();

Ссылки:

Technorati Теги: ,
Реклама
Рубрики:C#, Live@edu, PowerShell
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: