Mon PC Windows...

Commandes PowerShell

 

Powershell est disponible depuis Windows XP SP2. Les scripts portent l'extension PS1 et s'exécutent dans une fenêtre PowerShell, le langage doit être installé. Il existe plusieurs versions de Powershell, selon votre version de Windows, vous ne disposez pas nativement de la même version de Powershell. Tous les scripts et les commandes que vous pouvez trouver ne sont pas compatible avec toutes les installations de powershell. 
Pour identifier les conditions d'exécution de commandes et scripts, voir notre page Commandes Powershell
Si vous devez faire évoluer la version de PowerShell, vous pouvez consulter la page suivante :  https://docs.microsoft.com/fr-fr/powershell/scripting/windows-powershell/install/windows-powershell-system-requirements

Sachez également qu'il existe une version multiplateforme de Powershell (Powershell Core), celle-ci a été adaptée et comporte quelques différence avec les versions Powershell natives de Windows, cette version peut être utilisée avec certaines versions de Linux et de Mac OS.

Les commandes powershell s'exécutent dans un environnement dédié, vous pouvez le démarrarer dans une fenêtre de commande Powershell (Démarrer>Executer>Powershell.exe) ou encore avec l'application Powershell ISE qui permet également de développer et tester des scripts. 

Vous trouverez ci dessous les informations utiles pour vérifier l'environnement et le contexte d'exécution de vos commandes et scripts PS1.
Dans nos pages Commandes Powershell(voir menu de droite) vous trouverez aussi plusieurs lignes de commandes utiles. Notez que certaines d'entre elles nécessitent d'utiliser le mode Administrateur (élévation de privilèges, exécuter en tant qu'Administrateur).

 

Vérifier si vous pouvez exécutez des commandes et scripts

Pour connaitre la version de Powershell

$PsVersionTable valeur PSVersion

$Host valeur Version

Pour identifier les stratégies d'exécution et limitations

Get-ExecutionPolicy affiche la stratégie d'execution des scripts powershell (Restricted, AllSigned, RemoteSigned, Unrestricted). Seuls les modes RemoteSigned et Unrestricted vous permettent d'executer tous les scripts et commandes (signés ou non) en local.
 *Pour modifier la stratégie et permettre aux scripts de s'executer correctement en local, utilisez Set-ExecutionPolicy RemoteSigned en mode Administrateur

$ExecutionContext.SessionState.LanguageMode affiche le mode de language contraint.
FullLanguage indique qu'il n'y a pas de restriction - ConstrainedLanguage indique qu'il y a des restrictions
Pour lever les restrictions, définissez la clé de registre ci dessous à 8
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\__PSLockdownPolicy (REG_SZ)

Pour connaitre les commandes et modules disponibles

Get-command affiche la liste des commandes disponibles

Get-module -listavailable affiche les modules actuellement disponibles dans Windows
> Les modules sont présents à l'emplacement défini par la variable d'environnement Windows PSModulePath
 *La commande Install-Module permet d'ajouter des modules téléchargés

 

Créer un raccourci ou une tâche planifiée pour exécuter un script powershell

L'execution d'un script Powershell se fait à partir de l'application Powershell.exe. La ligne de commande ci dessous permet d'executer nomscript.ps1 en évitant la stratégie d'exécution, elle nécessite un compte avec les privilèges élevés (cochez la case dans les paramètres avancés du raccourci ou de la tâche planifiée). Si nécessaire, n'oubliez pas de préciser le paramètre executer dans avec le chemin du répertoire dans lequel se trouve le script.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -f nomscript.ps1