Использование C # для передачи данных в PowerShell - PullRequest
0 голосов
/ 01 мая 2018

Используя Windows 10, я создаю собственную программу на C # для взаимодействия со скриптами PowerShell. Я использую Quest Active Roles, так что это будет использоваться в нескольких доменах. Короче говоря, я хочу иметь поле «домен \ пользователь», в которое пользователь может вводить данные. Я хочу, чтобы эта строка затем передавалась скрипту Power Shell, который запускает такие вещи, как:

Set-Qaduser 'domain\user' -Description $null

Я хочу, чтобы данные, помещенные в мою программу на C #, были вставлены в сценарий PowerShell в правильном месте, где в данный момент находится «домен \ пользователь».

Мой первый вопрос: Как вызвать сценарий PowerShell для запуска с использованием данных из программы C #? У меня есть права локального администратора и возможность создавать и изменять любые сценарии PowerShell, которые мне могут понадобиться для достижения этой цели.

Мой второй вопрос: Что-то подобное даже выполнимо? Я знаю, что могу вызвать сценарий для запуска через C #, но возможно ли взять входные данные из C # и вставить их в сценарий PowerShell?

Спасибо вам всем за то, что уделили время и изучили это. Я новичок в C #, помимо того, что я новичок в PowerShell. Любой совет приветствуется. Я не боюсь читать много текста. Пожалуйста, благослови меня своими знаниями, O Stack Overflow Community.

1 Ответ

0 голосов
/ 01 мая 2018

Размещение среды выполнения PowerShell в вашем процессе, вероятно, является наиболее эффективным решением для вас. Таким образом, вы можете передавать произвольные объекты командам PowerShell, не беспокоясь о потере точности, передавая их в виде строки. Взгляните на Windows PowerShell Host QuickStart , и вы увидите, насколько простым в использовании является API. На самом базовом уровне вы могли бы написать что-то вроде

   var ps = PowerShell.Create().AddCommand("Get-Process").
            AddParameter("Name", "Notepad*");
    foreach (dynamic proc in ps.Invoke())
    {
        proc.Kill();
    }

, который убил бы все ваши процессы блокнота: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...