Par défaut, Microsoft System Center Orchestrator utilise la version 2 de Powershell et cela peut poser problème lorsque vous souhaitez utiliser des modules, fonctions, scripts, etc…, uniquement disponibles avec les dernières versions de Powershell.
Attention : Cette modification n’est pas à prendre à la légère. En effet, sur un environnement de production contenant déjà des activités scripts Powershell, cette modification pourrait avoir des effets indésirables sur la bonne exécution de ceux-ci.
Commençons par confirmer que le runbook server exécute bien votre script avec une version 2 de Powershell.
Créez un runbook standard, avec une activité de scripting Powershell comme ci-dessous et publiez la variable « $version » dans la partie « Published Data ».
$version=(get-host).version
Depuis les propriétés du Runbook, activez la récupération complète des logs lors de son exécution.
Exécutez le runbook puis rendez-vous au niveau du « log history » de cette exécution.
Au niveau de « Published Data », sélectionnez « Version » et confirmez que le script exécuté par le Runbook Server est bien de version Powershell v2.
Voici la clé de registre à ajouter sur chaque Runbook Server de votre infrastructure.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\OnlyUseLatestCLR
- Type : REG_DWORD
- Value name : OnlyUseLatestCLR
- Value Data : 1
Relancez de nouveau le runbook et observez que maintenant l’exécution de vos scripts Powershell est en version 4.
Source
C’est dingue qu’une simple clé de registre permette d’utiliser la dernière version de PS…
On dirait un hack 😀