L'un des utilitaires les plus spéciaux développés par Microsoft est Windows PowerShell, qui est un shell de ligne de commande spécialement conçu pour les administrateurs système grâce à ses multiples fonctionnalités de support.
Windows PowerShell comprend une invite interactive et un environnement de script qui peuvent être utilisés indépendamment ou en combinaison avec d'autres scripts.
Windows PowerShell est construit sur le Common Language Runtime (CLR) du .NET Framework et du .NET Framework, avec lequel il accepte et renvoie des objets du .NET Framework. De cette façon, nous avons un changement dans l'environnement qui nous fournit outils et méthodes complètement nouveaux et modernes pour la configuration et la gestion de Windows.
Windows PowerShell est basé sur le concept d'une applet de commande qui est un outil de ligne de commande simple et à fonction unique intégré au Shell et il sera possible d'utiliser chaque applet de commande séparément ou conjointement avec d'autres pour en tirer le meilleur parti.
Jusqu'à présent, dans les éditions Windows 10, nous avons vu l'utilisation de Windows PowerShell avec l'environnement graphique à travers lequel nous exploitons pleinement l'utilisation des applets de commande :
AGRANDIR
Eh bien, Microsoft a développé via GitHub la nouvelle plate-forme PowerShell Core, actuellement dans sa version 6.0, qui est compatible pour les systèmes Windows, macOS et Linux, étant open source et créée pour les environnements hétérogènes et le cloud hybride, augmentant ainsi ses niveaux de gestion et d'administration .
1. Différences entre Windows PowerShell et PowerShell Core
À ce stade, beaucoup d'entre nous peuvent se demander ce qui est différent entre ces deux éditions, eh bien, Solvetic fera une comparaison de ce que nous avons dans les deux utilitaires.
Windows PowerShellC'est la console connue dans les systèmes Windows qui est depuis plus de 10 ans le support des administrateurs à côté de l'invite de commande. Certaines de ses caractéristiques sont :
- En raison de sa dépendance au .NET Framework, Windows PowerShell n'est disponible que sur les systèmes d'exploitation Windows.
- Windows PowerShell démarre en tant que powershell.exe
- Les versions publiées de Windows PowerShell à ce jour incluent 1.0, 2.0, 3.0, 4.0, 5.0 et 5.1.
- Windows PowerShell est disponible en tant que composant intégré du client Windows et de Windows Server.
- Dans Windows PowerShell 5.0 ou 5.1, $ PSVersionTable.PSEdition est défini sur Desktop.
- Toute utilisation de fonctionnalités basées sur .NET, telles que les applets de commande C #, Add-Type et l'appel de méthodes .NET statiques, est basée sur le runtime .NET Framework.
- Il continue d'être pris en charge via des corrections de bogues critiques dans les dernières versions de Windows et Windows Server.
Noyau PowerShellPowerShell Core est l'édition PowerShell basée sur .NET Core que nous pouvons également connaître sous le nom de CoreCLR. Certaines de ses caractéristiques sont :
- PowerShell Core est multiplateforme, disponible sur Windows, macOS et Linux, en raison de sa conception .NET Core.
- Dans PowerShell Core, $ PSVersionTable.PSEdition est défini sur Core.
- PowerShell Core démarre en tant que pwsh.exe sous Windows et pwsh sous macOS et Linux
- Toute utilisation de fonctionnalités basées sur .NET, telles que les applets de commande C #, Add-Type et l'appel de méthodes .NET statiques, dépendent du runtime .NET Core.
Plateformes prenant en charge PowerShell CoreNous avons indiqué que PowerShell Core est un utilitaire multiplateforme que nous pouvons utiliser avec une compatibilité totale sur des systèmes tels que :
- Windows 7, 8.1 et 10
- Windows Server 2008 R2, 2012 R2, 2016
- Canal semi-annuel Windows Server
- Ubuntu 14.04, 16.04 et 17.04
- Debian 8.7+ et 9
- CentOS 7
- RedHat Enterprise Linux 7
- OuvrezSUSE 42.2
- Fedora 25, 26
- macOS 10.12+
- Arch Linux
- Kali Linux
- AppImage
- Windows ARM32 / ARM64 (En test)
- Raspbian (Stretch) (En test)
Modules disponibles dans PowerShell Core 6.0Voici la liste des modules que nous pouvons utiliser dans cet utilitaire PowerShell Core.
- CimCmdlets
- Microsoft.PowerShell.Archive
- Microsoft.PowerShell.Diagnostics
- Microsoft.PowerShell.Host
- Microsoft.PowerShell.Management
- Microsoft.PowerShell.Sécurité
- Microsoft.PowerShell.Utility
- Microsoft.WSMan.Management
- Gestion des packages
- PowerShellGet
- PSDesiredStateConfiguration
- PSD Diagnostic
- PSLireLigne
2. Quoi de neuf dans PowerShell Core 6.0
Avec cette nouvelle édition de PowerShell Core 6.0, nous aurons une série de nouvelles fonctionnalités conçues pour optimiser les tâches d'administration, de contrôle, de support et d'automatisation, parmi lesquelles :
- Ajout de la prise en charge de la globalisation des commandes natives sur les plates-formes Unix.
- Le plus de fonctionnalités respecte le Linux $ PAGER ce qui signifie que nous pouvons utiliser des jokers avec des binaires ou des commandes natives.
- La barre oblique inverse est automatiquement ignorée pour les arguments de commande natifs.
- Le paquet de page de manuel a été ajouté.
- Sur les systèmes macOS, PowerShell Core utilise les API os_log natives pour se connecter au système de journalisation unifiée d'Apple. Sous Linux, PowerShell utilise Syslog.
- Les chemins attribués aux applets de commande sont désormais indépendants des barres obliques, / et \ fonctionnent tous deux comme des séparateurs de répertoire.
- Prise en charge des noms de fichiers et de dossiers contenant le caractère deux-points sous Unix.
- Prise en charge des noms de chemin complet ou de tiret avec des virgules.
- Détecte quand le paramètre -LiteralPath est utilisé pour supprimer l'expansion des caractères génériques pour les applets de commande de navigation.
- Modification du premier paramètre de position de Command à -File.
- PowerShell Core accepte le commutateur -i (ou -Interactive) pour indiquer un shell interactif.
- Suppression des paramètres -importsystemmodules et -psconsoleFile de pwsh.exe
- Messages d'erreur d'argument non valide pour les codes de sortie conformes aux normes -File et -Command et Unix
- PowerShell Core ajoute la prise en charge de Docker
- Le protocole de connexion à distance PowerShell (PSRP) fonctionne désormais avec le protocole Secure Shell (SSH) en plus du PSRP basé sur WinRM
- L'encodage par défaut est UTF-8
- Support esperluette
- Get-Uptime ajouté à Microsoft.PowerShell.Utility
- Ajout de la prise en charge de l'authentification par certificat pour les applets de commande Web
- Ajout de la prise en charge des en-têtes de contenu dans les applets de commande Web
- L'inférence de type a été améliorée à la fin de la tabulation en fonction des valeurs des variables d'exécution des commandes
- Utilisation activée du fournisseur de système de fichiers à partir du chemin UNC
Ensuite, nous verrons comment installer PowerShell Core sur les différentes éditions des systèmes d'exploitation pris en charge.
3. Installer PowerShell Core sur Windows 10
Étape 1
Pour installer l'utilitaire PowerShell Core sur un client Windows ou Windows Server tel que Windows 7 SP1, Server 2008 R2 et versions ultérieures, il sera nécessaire de télécharger le package MSI depuis la page officielle GitHub au lien suivant :
Étape 2
Là, nous sélectionnerons le package qui convient le mieux à notre version de Windows, dans ce cas, nous téléchargerons le package win-x64. Une fois téléchargé, nous double-cliquerons sur le programme d'installation et suivrons les instructions :
Étape 3
Cliquez sur "Suivant" et nous accepterons les termes de la licence :
Étape 4
Encore une fois, nous cliquons sur Ensuite et maintenant, nous définissons le chemin où PowerShell Core doit être installé dans Windows 10 :
Étape 5
Dans la fenêtre suivante, nous pouvons démarrer le processus d'installation de l'utilitaire :
Étape 6
Une fois installé, nous verrons ce qui suit :
Étape 7
Nous pouvons fermer l'assistant et accéder à PowerShell Core à partir du menu Démarrer :
Étape 8
Une fois que nous nous sommes mis d'accord, nous pouvons travailler avec PowerShell Core en fonction des besoins de gestion du moment :
AGRANDIR
4. Installer PowerShell Core sur Linux
Dans les environnements Linux, PowerShell Core est compatible avec les distributions suivantes :
- Ubuntu 14.04
- Ubuntu 16.04
- Ubuntu 17.04
- Debian 8
- Debian 9
- CentOS 7
- Red Hat Enterprise Linux (RHEL) 7
- OuvrezSUSE 42.2
- Fedora 25
- Fedora 26
- Arch Linux
- Image d'application Linux
Dans cet exemple, nous utiliserons Ubuntu 17.04 mais Solvetic expliquera le processus pour les autres distributions Linux.
Étape 1
Dans le cas d'Ubuntu 17.04 d'abord, nous importerons les clés du référentiel GPG en exécutant la commande suivante :
boucle https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key ajouter -
AGRANDIR
Étape 2
Ensuite, nous exécuterons la ligne suivante pour enregistrer le référentiel Ubuntu auprès de Microsoft :
curl https://packages.microsoft.com/config/ubuntu/17.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list
AGRANDIR
Étape 3
Plus tard, nous mettrons à jour la liste des packages :
sudo apt-get mise à jour
AGRANDIR
Étape 4
Nous installons PowerShell Core en exécutant la ligne suivante :
sudo apt-get install -y powershell
AGRANDIR
Étape 5
Une fois installé, nous exécutons PowerShell Core avec la commande suivante :
pwsh
AGRANDIR
Étape 6
Nous pouvons maintenant effectuer des actions de gestion normales avec PowerShell :
AGRANDIR
Étape 7
On peut voir les résultats respectifs :
AGRANDIR
Étape 8
En plus de cette étape, une autre façon d'installer PowerShell dans Ubuntu 17.04 consiste à télécharger le package "powershell_6.0.0-rc-1.ubuntu.17.04_amd64.deb" à partir de la page GitHub indiquée en haut, puis à exécuter les lignes suivantes :
sudo dpkg -i powershell_6.0.0-rc-1.ubuntu.17.04_amd64.deb sudo apt-get install -fÉtape 9
Pour désinstaller PowerShell Core dans Ubuntu 17.04, nous exécutons la commande suivante :
sudo apt-get supprimer powershellÉtape 10
Maintenant, nous allons voir les commandes à utiliser dans les autres distributions Linux.
Ubuntu 16.04 / 16.10
boucle https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - (importation de clés GPG) curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list (enregistrement du référentiel Ubuntu chez Microsoft) sudo apt-get update (packages de mise à jour) sudo apt-get install -y powershell (PowerShell Core Installation) pwsh (PowerShell Core Home )Alternativement, nous pouvons télécharger le package "powershell_6.0.0-rc-1.ubuntu.16.04_amd64.deb" à partir du site officiel, puis exécuter les lignes suivantes :
sudo dpkg -i powershell_6.0.0-rc-1.ubuntu.16.04_amd64.deb sudo apt-get install -fPour désinstaller PowerShell Core, nous exécutons :
sudo apt-get supprimer powershell
Debian 9Dans ce cas, nous exécuterons les commandes suivantes pour installer les composants du système :
sudo apt-get update sudo apt-get install curl gnupg apt-transport-httpsEnsuite, nous importons les clés publiques GPG :
boucle https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key ajouter -Nous enregistrons le produit Microsoft :
sudo sh -c 'echo "deb [arch = amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main"> /etc/apt/sources.list.d/microsoft.list 'Nous mettons à jour les produits :
sudo apt-get mise à jourNous installons PowerShell Core :
sudo apt-get install -y powershellNous exécutons l'utilitaire :
PwshComme la distribution précédente, nous pouvons télécharger le paquet "powershell_6.0.0-rc-1.debian.9_amd64.deb" puis exécuter ce qui suit :
sudo dpkg -i powershell_6.0.0-rc-1.debian.9_amd64.deb sudo apt-get install -fPour désinstaller PowerShell Core, nous exécutons :
sudo apt-get supprimer powershell
CentOS 7Dans le cas de CentOS 7, nous allons d'abord enregistrer le référentiel RedHat :
boucle https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repoNous procédons à l'installation de PowerShell Core :
sudo yum install -y powershellNous exécutons l'utilitaire :
pwshEn option, nous pouvons télécharger le package "powershell-6.0.0_rc-1.rhel.7.x86_64.rpm" sur le site officiel, puis exécuter :
sudo yum installer powershell-6.0.0_rc-1.rhel.7.x86_64.rpmOu nous pouvons l'installer directement en utilisant la ligne suivante :
sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-rc/powershell-6.0.0_rc-1.rhel.7.x86_64.rpmPour l'éliminer, nous exécutons les opérations suivantes :
sudo miam supprimer powershell
RedHat 7Si nous sommes des utilisateurs de RedHat, nous allons d'abord enregistrer le référentiel RedHat :
boucle https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repoEnsuite, nous allons installer PowerShell Core avec la commande suivante :
sudo yum install -y powershellNous exécutons l'utilitaire :
pwshUne autre alternative consiste à télécharger le package "powershell-6.0.0_rc-1.rhel.7.x86_64.rpm" puis à exécuter :
sudo yum installer powershell-6.0.0_rc-1.rhel.7.x86_64.rpmOu directement :
sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-rc/powershell-6.0.0_rc-1.rhel.7.x86_64.rpmNous pouvons supprimer PowerShell Core en exécutant :
sudo miam supprimer powershell
Fedora 26Dans le cas de Fedora 26, la première étape consiste à enregistrer la clé de signature Microsoft :
sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascEnsuite, nous allons enregistrer le référentiel RedHat :
boucle https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repoNous mettons à jour la liste des produits :
mise à jour sudo dnfNous installons les composants du système :
sudo dnf installer compat-openssl10Nous procédons à l'installation de PowerShell Core :
sudo dnf install -y powershellOn lance l'utilitaire :
pwshL'autre méthode consiste à télécharger le package « powershell-6.0.0_rc-1.rhel.7.x86_64.rpm » puis à effectuer l'exécution des lignes suivantes :
sudo dnf mise à jour sudo dnf installer compat-openssl10 sudo dnf installer powershell-6.0.0_rc-1.rhel.7.x86_64.rpmPour supprimer PowerShell Core dans Fedora 26, nous utiliserons la ligne suivante :
sudo dnf supprimer powershell
Nous avons donc les différentes options pour les environnements Linux.
5. Installer PowerShell Core macOS High Sierra
Dans le cas de macOS High Sierra, nous avons deux options d'installation de PowerShell Core.
Étape 1
La première consiste à utiliser HomeBrew qui est un gestionnaire de packages pour macOS, au cas où nous n'aurions pas HomeBrew, nous pouvons l'installer en exécutant la ligne suivante dans le terminal macOS High Sierra.
/usr/bin/ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Étape 2
Une fois HomeBrew installé, nous exécuterons la ligne suivante :
tonneau de brassage / tonneau
AGRANDIR
Étape 3
Cask est un utilitaire qui nous permet d'installer des packages supplémentaires sur macOS. Une fois installé, nous exécuterons la ligne suivante pour installer PowerShell Core :
brew cask installer powershell
AGRANDIR
Étape 4
Nous entrerons notre mot de passe et attendrons la fin du processus de téléchargement :
AGRANDIR
Étape 5
Alternativement, nous pouvons télécharger le package powershell-6.0.0-rc-osx.10.12-x64.pkg depuis le site officiel et une fois téléchargé, nous double-cliquerons sur l'endroit où l'assistant suivant s'affichera :
Étape 6
Là, nous cliquons sur Continuer et nous suivrons les étapes de l'assistant :
Étape 7
Si nous ne voulons pas utiliser l'assistant graphique, nous pouvons utiliser le terminal en exécutant la commande suivante :
programme d'installation sudo -pkg powershell-6.0.0-rc-osx.10.12-x64.pkg -target /Étape 8
Une fois installé, nous pouvons exécuter la commande pwsh pour accéder à PowerShell Core :
Étape 9
Là, nous effectuerons l'exécution des commandes de gestion normales :
AGRANDIR
Étape 10
Pour désinstaller PowerShell Core dans macOS High Sierra, nous pouvons utiliser l'une des options suivantes :
brew cask désinstaller powershell sudo rm -rf/usr/local/bin/pwsh/usr/local/microsoft/powershellComme nous pouvons le voir, PowerShell Core est un utilitaire dynamique, simple et puissant qui nous aidera à effectuer toutes sortes de tâches de support dans les systèmes d'exploitation les plus utilisés aujourd'hui.