Introduction à Powershell
PowerShell n'a pas besoin d'être présenté. Il permet la gestion de la configuration et l'automatisation des tâches de choix pour l'environnement Windows. Il combine la flexibilité d'un puissant langage de script avec la puissance et la rapidité de la ligne de commande pour aider les administrateurs informatiques à orchestrer, automatiser et dépanner les fonctions informatiques courantes.
En tant que tel, PowerShell est un outil indispensable pour les administrateurs qui cherchent un moyen de gérer facilement les ordinateurs et les serveurs dans les environnements informatiques de leurs clients. Plus important encore, « PowerShell Remoting » permet aux administrateurs informatiques d'accéder aux sessions PowerShell et d'exécuter des commandes PowerShell sur des systèmes Windows distants.
La capacité de PowerShell à exécuter des commandes de gestion à distance est particulièrement bénéfique pour les « sysadmins », qui peuvent l'utiliser pour gérer plusieurs environnements informatiques. Cela augmente la productivité et aide à surmonter plusieurs défis communs à l'espace de travail des administrateurs. Pour vous aider à démarrer, jetons un coup d'œil à certaines des commandes PowerShell de base que tous les administrateurs informatiques devraient connaître.
SysAdmin, un métier en mouvement
0 seconds of 3 minutes, 9 secondsVolume 100%
Caractéristiques :
Cmdlets : les « cmdlets » effectuent des tâches d'administration système courantes, par exemple la gestion du registre, des services, des processus, des journaux d'événements et l'utilisation de Windows Management Instrumentation (WMI).
Axé sur les tâches : le langage de script PowerShell est basé sur les tâches et prend en charge les scripts existants et les outils de ligne de commandes.
Conception cohérente : étant donné que les applets de commande et les systèmes data stores utilisent une syntaxe et des conventions de dénomination communes, le partage des données est facile. La sortie d'un applet de commande peut être acheminée vers une autre applet de commande sans aucune manipulation.
Simple d'utilisation : une navigation simplifiée basée sur des commandes permet aux utilisateurs de parcourir le registre et d'autres magasins de données similaires à la navigation du système de fichiers.
Interface extensible : PowerShell est personnalisable, car les fournisseurs de logiciels indépendants et les développeurs d'entreprise peuvent créer des outils et des utilitaires personnalisés à l'aide de PowerShell pour administrer leurs logiciels.
DéfinitionData store
Un data store (magasin de données) est un référentiel permettant de stocker et de gérer de manière persistante des collections de données. Il s'agit non seulement de référentiels tels que des bases de données, mais aussi de types de magasins plus simples tels que de simples fichiers, des courriers électroniques, etc.
ExempleLa structure d'une commande
Get-EventLog : il s'agit du nom de l'applet de commande. Les applets de commande PowerShell ont toujours ce format de nommage « verbe-nom ».
LogName : il reçoit la valeur « Security ». Étant donné que la valeur ne contient aucun espace ni signe de ponctuation, il n'est pas nécessaire qu'elle soit entre guillemets.
ComputerName : il reçoit deux valeurs : WIN10 et SERVER2. Celles-ci se trouvent dans une liste séparée par des virgules, et comme aucune valeur ne contient d'espaces ou de ponctuation, aucune valeur ne doit être entre guillemets.
Verbose : c'est un paramètre de commutation. Cela signifie qu'il n'obtient pas de valeur spécifiant que le paramètre est suffisant.
Exemple
Voici un autre exemple de structure d'une commande :
10 commandes les plus utiles sur Powershell
Obtenir de l'aide sur une commande :
Get-Help : il s'agit d'une commande simple d'utilisation et très utile. Elle vous permet d'obtenir des informations utiles sur d'autres applets de commande, scripts, etc.
Si vous avez besoin de savoir comment fonctionne la commande « Get-EventLog », il vous suffit de taper « Get-Help-Name Get-EventLog » et Windows affichera la syntaxe complète de la commande.
Exemple
Obtenez la liste des commandes :
Get-command : affiche la liste des commandes qui correspondent au paramètre de recherche que vous avez entré. Vous pouvez utiliser cette commande en tapant « Get-Command » suivi de leur requête de recherche. « Get-Command *-service* » affiche toutes les commandes associées à des services.
Exemple
Afficher les services disponibles :
Get-Service : cette commande vous fournit la liste des services installés sur votre système. Si vous incluez le commutateur « -Name » ainsi que le nom du service en tant que paramètres de la commande « Get-Service », Windows affichera l'état du service.
Exemple
Pour afficher les processus :
Get process : cette commande est similaire à la commande « Get-Service ». Elle est utilisée pour obtenir la liste de tous les processus en cours d'exécution sur votre ordinateur.
Exemple
Empêcher l'exécution de codes malveillants :
Set-ExecutionPolicy : conformément aux meilleures pratiques en matière de sécurité, Windows a intégré quatre niveaux d'accès à l'environnement PowerShell. Il s'agit des niveaux « Restricted », « Tout signé », « Signé à distance » et « Non restreint ».
Restricted - Ce niveau verrouille PowerShell et garantit que l'environnement ne peut pas exécuter de scripts PowerShell. Vous pouvez uniquement entrer cette commande de manière interactive.
Unrestricted : cette option supprime toutes les restrictions de la politique d'exécution.
All Signed : dans ce mode, seuls les scripts signés par des éditeurs de confiance sont autorisés à s'exécuter.
Remote Signed : le réglage de la politique d'exécution sur « Signé à distance » permet l'exécution de tous les scripts créés localement. Les scripts créés à distance ne sont autorisés à s'exécuter que s'ils sont signés par des éditeurs de confiance.
Pour empêcher l'exécution de codes malveillants dans l'environnement PowerShell, l'exécution de scripts est désactivée par défaut, c'est-à-dire qu'elle est définie comme étant « Restricted » (restreinte). La commande « Set-ExecutionPolicy » vous permet de sélectionner votre niveau de sécurité préféré. Il vous suffit de saisir la commande « Set-ExecutionPolicy » et le nom de la politique. Par exemple, « Set-ExecutionPolicy restricted ».
Exemple
État de la politique d'exécution
Get-ExecutionPolicy : cette commande vous permet de connaître l'état de la politique d'exécution avant d'exécuter un script.
Exemple
Démarrer un service
Start-Service : cette commande vous permet de démarrer n'importe quel service sous Windows, même si ce service est désactivé. Pour ce faire, ajoutez le nom du service à la commande « Start-Service ». Par exemple, la commande « Start-Service -Name « WSearch » » permet de lancer la recherche Windows.
Exemple
Attention
Pour utiliser la commande « Start-Service », vous devez avoir ouvert la console de Powershell en tant qu'administrateur.
Exemple
Démarrer un processus
Start-Process : cette commande est similaire à la commande « Start-Service ». Elle vous permet de démarrer un ou plusieurs processus par PowerShell. Utilisez la commande « Start-Process » suivie des paramètres requis pour démarrer un processus. Utilisez « Start-Process chrome » pour lancer Google Chrome.
Exemple
Arrêter un processus
Stop-Process : la commande « Stop-Process » vous permet d'arrêter un processus (ou certaines de ses instances) en cours d'exécution sur un ordinateur. Cela est particulièrement utile lorsqu'un processus se bloque. Utilisez la commande « Get-Process » pour obtenir l'ID ou le nom du processus qui ne répond pas. Par exemple, pour arrêter Chrome, vous pouvez utiliser les commandes suivantes : « Stop-Process -Name chrome » ou « Stop-Process -ID 640 ».
Exemple
Transférer la sortie d'une commande dans un rapport
ConvertTo-HTML : elle peut être utilisée pour transférer la sortie d'une commande / script PowerShell dans un rapport pour une analyse plus approfondie ou pour l'envoyer à quelqu'un d'autre. Par exemple, vous pouvez créer un rapport qui répertorie tous les processus en cours d'exécution sur un ordinateur local, ainsi que leur état actuel. La commande « Get-Process | ConvertTo-HTML -Property Name, Status > C:\processes.htm » créera un fichier HTML appelé processes.htm dans le répertoire « C:\ » .
Exemple