Der Pipeline Task „Skript ausführen“ mit PowerShell birgt für die Verwendung von ConfigMgr Powershell CmdLets zwei Hürden:
- Die Pipelines werden im Systemkontext gestartet und haben zunächst keine Berechtigung Änderungen am ConfigMgr vorzunehmen.
- Einige ConfigMgr DLLs sind bereits geladen und das ConfigMgr CmdLet kann seine eigenen nicht mehr laden.
Wir haben ein Beispiel auf GitHub veröffentlicht wie dies trotzdem gelingen kann:
https://github.com/neo42-GmbH/ManagementService-PowerShell/tree/master/Pipelines/ConfigMgr
Folgendes ist im Beispiel beschrieben:
- Der Management Service Computer wird berechtigt Änderungen am ConfigMgr vorzunehmen
- Ein PowerShell Skript das per APC Pipeline gestartet wurde, startet sich selbst in einem Subprozess um die ConfigMgr CmdLets laden zu können.
- Als Anwendungsbeispiel eines ConfigMgr CmdLets wird Set-CMApplication genutzt, um einer Applikation ein Präfix im Namen hinzuzufügen.
Natürlich können auch die anderen ConfigMgr CmdLets auf diese Weise verwendet werden.
Danke an @Shirkan, der uns auf das Thema aufmerksam gemacht hat.