C-Sharp mit SCCM "verbinden"
Hi @ All
Ich versuche gerade in C# via Visual Studio eine Verbindung zum System Center Configuration Manager herzustellen wie man es normalerweise in der CCM-Console auf diese weise macht:
Danach wird (in meinem Fall) die ISE geöffnet und man führt das Script aus:
Anschließend sind alle Cmdlets geladen und man kann z.B. das machen:
Das Problem:
Ich habe keine Ahnung wie ich Powershell-like (oder auch anders) aus C# heraus eine Verbindung zur CCM-Console herstellen kann.
A) weil je nachdem ob in Domain A oder Domain B der SCCM unterschiedlich aufgebaut sein kann, sprich, bei den einen ist er auf C:\ installiert, bei den anderen wieder auf D:\, usw. Also eine sichere Methode die "ConfigurationManager.psd1" zu importieren
B) ich nicht sicher bin ob es wirklich reicht nur die CmdLets zu importieren. In meinen Versuchen hat sich da nichts getan bzw. traten Fehler auf beim Ausführen ala diesem Snipped (item.Value = Pfad zur ConfigurationManager.psd1):
Eure Frage wird sein: Warum verdammt nochmal in C# ??
Ganz einfach! Ich habe mehrere ziemlich komplizierte Class_Models zum Serialisieren und Deserialisieren von XML's (darunter SWID-Tag siehe: https://tagvault.org/ ) und es ist mir echt zu blöd kilometerweise Code in Powershell zu schreiben nur damit die Nodes, Elemente und Attribute richtig benannt sind.
Hat jemand eine Idee bzw. Tipps zu meinem Problem?
Vielen Dank!
mayho
Ich versuche gerade in C# via Visual Studio eine Verbindung zum System Center Configuration Manager herzustellen wie man es normalerweise in der CCM-Console auf diese weise macht:
Danach wird (in meinem Fall) die ISE geöffnet und man führt das Script aus:
Anschließend sind alle Cmdlets geladen und man kann z.B. das machen:
$ts = Get-CMTaskSequence | ? {$_.Name -like 'MyTaskSequenceName'}
Das Problem:
Ich habe keine Ahnung wie ich Powershell-like (oder auch anders) aus C# heraus eine Verbindung zur CCM-Console herstellen kann.
A) weil je nachdem ob in Domain A oder Domain B der SCCM unterschiedlich aufgebaut sein kann, sprich, bei den einen ist er auf C:\ installiert, bei den anderen wieder auf D:\, usw. Also eine sichere Methode die "ConfigurationManager.psd1" zu importieren
B) ich nicht sicher bin ob es wirklich reicht nur die CmdLets zu importieren. In meinen Versuchen hat sich da nichts getan bzw. traten Fehler auf beim Ausführen ala diesem Snipped (item.Value = Pfad zur ConfigurationManager.psd1):
powershell.Commands.AddCommand("Import-Module").AddParameter(item.Value);
powershell.Invoke();
Eure Frage wird sein: Warum verdammt nochmal in C# ??
Ganz einfach! Ich habe mehrere ziemlich komplizierte Class_Models zum Serialisieren und Deserialisieren von XML's (darunter SWID-Tag siehe: https://tagvault.org/ ) und es ist mir echt zu blöd kilometerweise Code in Powershell zu schreiben nur damit die Nodes, Elemente und Attribute richtig benannt sind.
Hat jemand eine Idee bzw. Tipps zu meinem Problem?
Vielen Dank!
mayho
Please also mark the comments that contributed to the solution of the article
Content-Key: 447044
Url: https://administrator.de/contentid/447044
Printed on: April 24, 2024 at 10:04 o'clock
5 Comments
Latest comment
Da gibt's was von Ratiopharm
https://github.com/rzander/sccmclictrlib
https://github.com/rzander/sccmclictrlib
Zitat von @mayho33:
Wenn ich mir also vorstelle dass da eine *.ps1, eeine *.psm1 und dann auch noch eine *,cs für nur "eine" Sache...
Wenn ich mir also vorstelle dass da eine *.ps1, eeine *.psm1 und dann auch noch eine *,cs für nur "eine" Sache...
Hmm, ich meinte zwar C# Code direkt in der ps1 aber man kann das natürlich auch trennen wenn es sinnvoll ist.
/Thomas