C-Sharp CmdLet - Richtiger Aufbau
Hallo @ All
Ich habe eine Frage zu C# (eigentlich Powershell-Cmdlets die in C# erstellt wurden) und hoffe auf eure Hilfe, weil ich aktuell immer wieder Probleme mit den CmdLets habe, wenn sie als SYSTEM ausgeführt werden.
Mein CmdLet hat mehrere Funktionen für die Installation via SCCM. Die wichtigsten sind Logging (mit NLog als Grundlage), MSI und EXE-Installation/Deinstallation.
Die Cmdlets funktionieren eigentlich immer, wenn man sie interaktiv verwendet, sprich, wenn ein Benutzer angemeldet ist und man in dessen Session arbeitet. Der Import meiner DLL erfolgt in der PS1 mit Import-Modul:
Als SYSTEM ausgeführt, z.B. via PSEXEC.exe in der CMD bekomme ich aber, manchmal den Fehler "Objekt-Verweis wurde nicht auf die Objekt-Instanz festgelegt"
Kann mir jemand sagen warum dieser Fehler auftritt? Ich habe bereits alle Verweise geprüft und aufgelöst. Überall sind explizite Verweise vorhanden.
Danke für eure Hilfe!
Mayho
Ich habe eine Frage zu C# (eigentlich Powershell-Cmdlets die in C# erstellt wurden) und hoffe auf eure Hilfe, weil ich aktuell immer wieder Probleme mit den CmdLets habe, wenn sie als SYSTEM ausgeführt werden.
Mein CmdLet hat mehrere Funktionen für die Installation via SCCM. Die wichtigsten sind Logging (mit NLog als Grundlage), MSI und EXE-Installation/Deinstallation.
Die Cmdlets funktionieren eigentlich immer, wenn man sie interaktiv verwendet, sprich, wenn ein Benutzer angemeldet ist und man in dessen Session arbeitet. Der Import meiner DLL erfolgt in der PS1 mit Import-Modul:
Als SYSTEM ausgeführt, z.B. via PSEXEC.exe in der CMD bekomme ich aber, manchmal den Fehler "Objekt-Verweis wurde nicht auf die Objekt-Instanz festgelegt"
Kann mir jemand sagen warum dieser Fehler auftritt? Ich habe bereits alle Verweise geprüft und aufgelöst. Überall sind explizite Verweise vorhanden.
Danke für eure Hilfe!
Mayho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 614265
Url: https://administrator.de/contentid/614265
Ausgedruckt am: 23.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
Kapsele sämtlichen Code mit try catch und lass die Exceptions und Variableninhalte inkl. Codezeile in eine Datei loggen dann siehst du wo dein Fehler im Code liegt. Verständlich das man hier so ohne vorliegenden Code leider nur Vermutungen anstellen kann, gerade bei dem sehr sehr generellen Fehler der so gut wie auf alles passt. Offensichtlich benutzt du
wohl ein Objekt obwohl es aber leer ist.
wohl ein Objekt obwohl es aber leer ist.
weil ich ja nicht weiß wo genau der Fehler auftritt
Genau dafür hat man ja den Debugger geschaffen 😁Ich wollte aber nicht gleich 3000 Zeilen Code hier einstellen,
Sind nun doch schon knapp 30 Cmdlets und Unmengen an Methoden.
Und du erwartest nun das das unsere Glaskugeln deinen Code erschnüffeln können 🙈? Das ist dann doch zu viel Erwartungshaltung, da musst du dann selber durch.Sind nun doch schon knapp 30 Cmdlets und Unmengen an Methoden.
Gruß w.
So wie man einen Windows-Dienst debuggt man hängt den Debugger an den jeweiligen Prozess: https://www.c-sharpcorner.com/article/debugging-windows-services-in-C-Sh ...