Tous les groupes de questions : FAQ IDE
Scripts dans une tâche
Section intitulée « Scripts dans une tâche »Puis-je exécuter mes propres scripts PowerShell dans une tâche ?
Oui, dans une étape PowerShell. Pendant son exécution, le script peut lire des Variables SMART Migration, les définir et écrire dans le journal de session. Votre propre script s'exécute quelle que soit la stratégie d'exécution ; un script qui charge un module tel que PnP.PowerShell nécessite RemoteSigned : dans PowerShell lancé en tant qu'administrateur, Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine.
En savoir plus : PowerShell · Exemples PowerShell
Comment transmettre des Variables entre une tâche et mon script ?
$MyVariable = Get-FlowVariable -Name "[<My Variable>]" lit une Variable SMART Migration dans PowerShell, et Set-FlowVariable -Name "[<My Variable>]" -Value $MyVariable en réécrit une. Les Variables de type Password peuvent être lues (leur valeur n'est pas écrite dans la console), mais pas définies.
En savoir plus : Get-FlowVariable · Set-FlowVariable
Comment écrire dans le journal de session depuis un script ?
Avec Add-FlowLogRow -LogType "Information" -Message "…". Cette commande est asynchrone : vous suivez donc la progression du script dans l'onglet Tâche de l'étape pendant son exécution. -LogType peut aussi valoir Warning, Error (traité selon le paramètre On error de l'étape), StopJob, qui arrête la tâche, ou ExitGroup, qui quitte l'étape Groupe en cours.
En savoir plus : Add-FlowLogRow
SharePoint depuis PowerShell
Section intitulée « SharePoint depuis PowerShell »Comment me connecter à SharePoint depuis un script ?
Avec Connect-PnPOnline, en utilisant une connexion SharePoint de SMART Migration : SMART Migration génère les commandes qui récupèrent ses informations d'authentification (Get-FlowSPConnection avec -Property Url, AppId ou AppSecret) et construit à partir d'elles l'instruction Connect-PnPOnline.
En savoir plus : Connect-PnPOnline depuis SMART Migration · Exemples PowerShell
Que dois-je installer pour PnP PowerShell ?
PowerShell 7.2 ou une version ultérieure (winget install --id Microsoft.Powershell --source winget dans PowerShell exécuté en tant qu'administrateur), puis le module PnP.PowerShell, ainsi qu'une stratégie d'exécution qui permet le chargement du module : RemoteSigned, avec Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine (Restricted, la valeur par défaut de Windows 11, le bloque). Visual Studio Code n'est nécessaire que pour personnaliser les modules.
En savoir plus : Installation de PnP.PowerShell