Выполнить команду Powershell (get-user -Identity "John Doe" | FL) в C # - PullRequest
1 голос
/ 09 ноября 2011

Я пытаюсь выполнить команду _Get-User -Identity "John Doe" | FL_ в следующем коде C #.

       PowerShell powershell = PowerShell.Create();
       powershell.AddCommand("get-user");
       powershell.AddParameter("Identity", UserName.Text);
       try
       {
           runspace.Open();
           powershell.Runspace = runspace;
           Collection<PSObject> results = powershell.Invoke();

           var builder = new StringBuilder();
           foreach (var psObject in results)
           {
               builder.AppendLine(psObject.ToString() + "\r\n");
           }
           ResultBox.Text = Server.HtmlEncode(builder.ToString());
       }

Где мне добавить команду _FL_?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Когда вы добавляете каждую команду, она добавляется в конвейер. Так что если вы хотите сделать format-list, вы можете добавить это к конвейеру:

   powershell.AddCommand("get-user");
   powershell.AddParameter("Identity", UserName.Text);
   powershell.AddCommand("format-list");'
   //powershell.AddCommand("out-string");

Но я не уверен, что вы хотите сделать, поскольку что-то подобное можно сделать в C # с помощью results

0 голосов
/ 09 ноября 2011

Я много искал.Вы можете изменить обычный сценарий powershell вместо «WriteWhatYouWantToDo».

Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
RunspaceInvoke invo = new RunspaceInvoke(runspace);
invo.Invoke("Set-ExecutionPolicy Unrestricted");
Pipeline pipeline = runspace.CreatePipeline();

Command command = new Command("get-module -listAvailable | import-module\n" + WriteWhatYouWantToDo);

pipeline.Commands.Add(command);
pipeline.Commands.Add("Out-String");
try
{
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
{
stringBuilder.AppendLine(obj.ToString());
}

string result1 = stringBuilder.ToString();
string result = result1.Substring(0, 250); //define global scope
}
catch (Exception ex)
{

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