2013-08-01 15 views
6

Jest tak wiele pytań i odpowiedzi dotyczących jak wykonać, aby wykonać skrypt powłoki z kodu C#, ale chciałbym wiedzieć, jak dokładnie runspace/pipeline wykonuje wykonanie pliku .ps1.W jaki sposób runspace/potok C# wykonuje skrypt powershell?

Kontekst, o który pytam, to: Zbudowałem podstawowy front asp.net dla skryptu powłoki, który tworzy nową stronę. Tworzy witrynę w IIS i konfiguruje foldery wwwroot, foldery dziennika, użytkownika AD i wszystko, czego potrzebuje. Działa doskonale, gdy uruchamiam go jako administrator w grze powershell. Jednak po uruchomieniu go przez mój potok C#, łamie potok wyjątkiem związanym z parametrem.

Nie jestem po odpowiedzi na ten konkretny problem, Po prostu szukam wyjaśnienia, w jaki sposób potok wykonuje mój plik, dzięki czemu mogę lepiej zrozumieć, co dokładnie się dzieje.

Odpowiedz

1

Czy próbowałeś użyć ILSpy lub otwarcia klasy w Class View, aby zobaczyć kod dla klasy? Robię to cały czas, aby zobaczyć, jak Microsoft implementuje daną klasę. Wkleiłem ten kod tutaj, jeśli była to krótka odpowiedź, ale jest dużo do przestrzeni nazw System.Management.Automation.Runspaces lub Microsoft.Powershell. Spójrz sam, a będziesz mógł zobaczyć, w jaki sposób Microsoft implementuje wykonywanie skryptów Powershell.

Mam nadzieję, że to pomoże.

+0

Dzięki Adamowi dałem to, ale nie dostarczyłem żadnych dodatkowych informacji o tym, jak plik zostanie wykonany. Większość metod była zgodna z tymi liniami: 'publiczna kolekcja Wywołanie() { przy użyciu (Pipeline._trace.TraceMethod()) return this.Invoke ((IEnumerable) null); } publiczna abstrakcyjna kolekcja Wywołanie (IEnumerable input); ' – harrietgrace

1

To nie jest kompletne wyjaśnienie, jak działa przestrzeń robocza, ale mam written a blog post obejmujące główne bity.

także urywek z one of the msdn pages on how powershell works:

PowerShell wykonawcze jest powoływana jako runspace i będzie domyślnie proces poleceń synchronicznie i dostarczają wyniki przetwarzania do aplikacji hosta tak, że mogą one być zwrócone do użytkownika.

Powiązane problemy