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:
1
$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):
1
2
2
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 447044
Url: https://administrator.de/forum/c-sharp-mit-sccm-verbinden-447044.html
Ausgedruckt am: 13.04.2025 um 05:04 Uhr
5 Kommentare
Neuester Kommentar

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