Categories: PowerShell

File cannot be loaded because running scripts is disabled on this system

File C:\Users\Thibault\Desktop\Untitled1.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies…

Les risques liés au scripting

Ce qui fait la force du scripting fait aussi sa faiblesse ; et le PowerShellne fait pas exception à la règle.

En effet, la facilité avec laquelle vous pouvez tout faire, soit en exécutant un script soit en tapant quelques lignes de commandes dans un prompt est à la fois une force mais peut rapidement vous mettre en difficultés si vous ne faîtes pas suffisamment attention à ce que vous faîtes.

Un script PowerShell peut vous rendre d’immenses services en accélérant ou en automatisant certains processus ou certaines tâches en 1 clic de souris. Mais un script provenant d’une personne mal intentionnée ou inexpérimentée peut également faire d’immenses dégâts sur votre système.

Heureusement, pour nous il existe des sécurités concernant l’utilisation de PowerShell.

De base, il existe 2 types de sécurités concernant l’utilisation de PowerShell.

  1. Pas d’exécution intempestive. Lorsque vous double-cliquez sur un fichier Powershell, il ne s’exécutera pas. En effet, les fichiers portant l’extension ps1 Powershell sont par défaut associés au Bloc-notes. Exit donc les fausses manipulations et l’exécution de scripts que vous n’auriez pas volontairement souhaité démarrer ? Qui n’a jamais exécuté un VBS en double-cliquant sur celui-ci alors qu’il souhaitait simplement le modifier…
  2. Une stratégie d’exécution. Il existe en effet une stratégie qui gère et régule l’exécution de script PowerShell sur un système Windows.

Changer la stratégie d’exécution PowerShell

Par défaut, un système Microsoft est configuré avec la stratégie la plus restrictive et bloque systématiquement l’exécution de tout script PowerShell. Mais, il est toujours possible d’exécuter des commandes via le prompt PowerShell. Pour éviter ce type de blocage et les messages d’erreurs qui vont avec, il est donc nécessaire de modifier la stratégie d’exécution PowerShell.

Dans Powershell V1, il existe 4 types de configuration possibles :

  1. Restricted
  2. RemoteSigned
  3. AllSigned
  4. Unrestricted
StratégieDétails
RestrictedIl s'agit de la stratégie la plus restrictive (comme son nom l'indique) et c'est également celle qui est configurée par défaut sur un système Microsoft. Vous ne pourrez exécuter aucun script Powershell. Si vous tentez toutefois d'exécuter un script, vous serez confronté au message d'erreur suivant : Impossible de charger le fichier C:\XXXX.ps1, car l'exécution de scripts est désactivée sur ce système.
AllsignedIl s'agit de la stratégie la moins risquée. Elle vous permet d'exécuter tous les scripts qui ont été signés numériquement. Vous devrez bien sûr être en possession des certificats correspondant pour exécuter le script PowerShell souhaité.
RemoteSignedCette stratégie, très proche d'Allsigned, vous permet d'exécuter tous les scripts qui ont été créés localement sur le système. En revanche, pour tous les autres scripts, ils devront être signés numériquement. A mon sens, il s'agit du meilleur compromis sécurité / exécution scripts.
UnrestrictedComme vous le devinez très probablement, il s'agit de la sécurité la moins contraignante. Elle vous permet d'exécuter tout type de scripts PowerShell sans tenir compte de leur provenance. A noter qu'il y aura tout de même un avertissement de sécurité si vous tentez d'exécuter un script provenant d'Internet.

A noter que la version 2 de PowerShell apporte 2 stratégies supplémentaires :

  1. Bypass : aucun blocage, tout est exécuté.
  2. Undefined : aucune stratégie définie par l’utilisateur. Par défaut, il s’agira de la stratégie « Restricted« .

Vérifier et modifier votre stratégie d’exécution Powershell

Pour connaître, le type de stratégie appliquée à votre système il vous suffit d’exécuter la commande suivante :

Get-ExecutionPolicy

Pour modifier, votre stratégie d’exécution il vous suffit de démarrer un prompt PowerShell en mode administrateur et utiliser la commande suivante :

Set-ExecutionPolicy "stratégie_choisie"

Voilà, vous savez tout. 🙂

Vous pouvez désormais exécuter tous les scripts PowerShell que vous souhaitez… En toute connaissance de cause bien entendu.

Share
Published by
thibault

Recent Posts

Antitrust : Google face à une tempête judiciaire aux États-Unis

Google est au cœur d’une bataille juridique antitrust majeure avec le ministère américain de la…

2 jours ago

Microsoft 365 : l’abonnement mensuel pour les entreprises va augmenter

Microsoft 365 : l'abonnement mensuel pour les entreprises va augmenter (encore) Microsoft vient d'annoncer une…

5 jours ago

Fin du démarchage téléphonique : une victoire pour les consommateurs ?

Un fléau quotidien Le démarchage téléphonique abusif a longtemps été une plaie pour de nombreux…

6 jours ago

Python : Le Nouveau Roi de GitHub

Un Basculement Historique En 2024, le monde du développement a assisté à un événement marquant…

2 semaines ago

Apple renforce sa suite créative avec l’acquisition de Pixelmator

Une nouvelle ère pour la retouche photo sur Mac ? Dans une annonce qui a…

2 semaines ago

La version finale de Windows Server 2025 est disponible

La version finale de Windows Server 2025 est disponible Windows Server 2025 est désormais disponible…

2 semaines ago