2013-05-06 3 views
3

Я хочу добавить через код C# команду или скрипт Powershell (что правильно?) Объявление переменной с значением по умолчанию, хранящимся в переменной C#. Например, в Powershell I печатать следующие строкиКоманда Powershell через код C#

$user = 'Admin' 

Я хочу, чтобы добавить эту строку в C# код.

powershell.AddScript(String.Format("$user = \"{0}\"", userName)); 

или

powershell.AddCommand(String.Format("$user = \"{0}\"", userName)); 

Стараюсь с AddCommand(), но он бросает исключение. Я использую PS 2.0.

+1

Не следует использовать вместо этого метод 'AddScript'? – BartekB

ответ

4

Согласно этой статье How to run PowerShell scripts from C#, вам нужно что-то вроде этого:

// create Powershell runspace 
Runspace runspace = RunspaceFactory.CreateRunspace(); 
// open it 
runspace.Open(); 

Pipeline pipeline = runspace.CreatePipeline(); 
pipeline.Commands.AddScript(String.Format("$user = \"{0}\"", userName)); 
pipeline.Commands.AddScript("#your main script"); 

// execute the script 
Collection<psobject> results = pipeline.Invoke(); 
// close the runspace 
runspace.Close(); 

Также см Run Powershell-Script from C# Application вопрос здесь на Stackoverflow.

Смежные вопросы