Cmdlets Powershell qui améliorera vos compétences d'administration Windows

Powershell est à la fois un outil de ligne de commande et un langage de script. Il vous donne la possibilité d'automatiser votre ordinateur via les mêmes commandes que vous utilisez pour l'administrer.

Powershell est à la fois un outil de ligne de commande et un langage de script.  Il vous donne la possibilité d'automatiser votre ordinateur via les mêmes commandes que vous utilisez pour l'administrer.
Publicité

Powershell est un moyen idéal pour démarrer un nouveau codeur sous Windows. Powershell est à la fois un outil de ligne de commande et un langage de script. Il vous donne la possibilité d'automatiser votre ordinateur via les mêmes commandes que vous utilisez pour l'administrer Invite de commandes vs Windows PowerShell: Quelle est la différence? Invite de commandes vs Windows PowerShell: quelle est la différence? Les utilisateurs Windows peuvent s'en sortir sans utiliser l'invite de commande ou PowerShell. Mais avec Windows 10 et de nouvelles fonctionnalités au coin de la rue, il est peut-être temps d'apprendre. Lire la suite . Si vous avez un système Windows moderne, vous avez déjà Powershell. Comment installer et utiliser PowerShell sous Linux Comment installer et utiliser PowerShell sous Linux . Dans cet article, je vais vous montrer comment installer, exécuter et utiliser PowerShell sous Linux! Lire la suite aussi.

Travailler avec Powershell

Il y a deux façons d'utiliser Powershell. Il y a la fenêtre de ligne de commande de base, qui est utilisée pour exécuter des commandes ou invoquer des scripts pré-écrits. Ensuite, il y a l'ISE, qui combine la fenêtre CLI avec un environnement de développement basique. En utilisant cela, vous pouvez écrire et tester vos scripts.

L'ISE dispose d'une liste de commandes consultables, et vous pouvez utiliser sa fenêtre de terminal sans ouvrir un fichier. La liste des commandes vous permet de construire votre commande et de l'insérer. Si vous faites un développement plus avancé, installez le code Visual Studio de Microsoft. Le code inclut la prise en charge du contrôle de version de Git 10 Astuces de productivité essentielles pour Visual Studio Code 10 Astuces de productivité essentielles pour Visual Studio Code Visual Studio Code envoie d'autres éditeurs de texte de programmation hors de l'eau. C'est gratuit, open source, rapide comme l'éclair et plein de fonctionnalités de productivité. Lire la suite et d'autres langues.

ligne de commande powershell

Powershell est unique en ce qu'il est entièrement construit de commandes, Microsoft les appelle Cmdlets. Ces commandes sont les mêmes si vous travaillez en ligne de commande ou en écrivant des scripts complexes. Ainsi, lorsque vous utilisez ces commandes, vous pouvez penser à les enchaîner pour créer vos premiers scripts.

Les bases: Get-Command, Get-Help, Get-Member

Toutes les commandes de Powershell prennent la forme de verbe-nom. Les verbes sont généralement: Get, Set et New .

Get-Command vous permet de voir toutes les commandes disponibles. Lorsque vous exécutez Get-Command, vous voyez qu'il y a des tonnes de commandes qui commencent par celles-ci.

En creusant plus loin que les noms des cmdlets, vous commencez à voir qu'ils ont tous une structure similaire. Vous les invoquez par leur nom, comme vous l'avez fait avec Get-Command. L'utilisation de paramètres modifie les informations que vous obtenez. Cependant, si vous avez seulement utilisé la commande avec les options par défaut, comment trouvez-vous comment utiliser les paramètres avancés?

PowerShell Obtenir de l'aide

L'utilisation de la cmdlet Get-Help avec Get-Command affiche plus d'informations sur la cmdlet. Nous utilisons la cmdlet avec la syntaxe suivante:

Get-Help Get-Command 

Vous voyez ensuite les informations de base sur les paramètres. Si vous voulez voir les détails des paramètres et quelques exemples d'utilisation, ajoutez le paramètre -Full.

Si vous voulez seulement voir les exemples, vous pouvez exécuter:

 Get-Help Get-Command -Examples 

Cette applet de commande renvoie uniquement les exemples du fichier d'aide. Ces exemples sont très utiles car ils incluent des descriptions. Ce texte d'aide explique ce que la cmdlet et les paramètres font lors de l'exécution.

fenêtre d'aide

Si vous voulez faire apparaître le fichier d'aide dans une fenêtre séparée, vous pouvez utiliser -ShowWindow . Donc, si vous exécutez:

 Get-Help Get-Command -ShowWindow 

Powershell affiche une fenêtre avec le fichier d'aide complet. Vous n'avez pas besoin d'utiliser le paramètre Full ici, car la fenêtre extrait l'article complet.

À mesure que vous progresserez avec Powershell, vous constaterez que vous utilisez Get-Member plus souvent. C'est un moyen facile de voir quels champs sont disponibles à partir des données renvoyées, ainsi que d'autres méthodes que vous pouvez exécuter. Souvent, les cmdlets auront un paramètre -Property pour vous permettre de les appeler.

Utilisation de fichiers: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

Maintenant que vous avez une idée de la façon dont les cmdlets fonctionnent, et comment obtenir de l'aide, faisons des changements. Vous pouvez obtenir le contenu de n'importe quel dossier à l'aide de la commande Get-ChildItem . Par exemple, vous pouvez obtenir les fichiers d'un lecteur entier en utilisant la lettre du lecteur. Entrer:

 Get-ChildItem E:\ 

Ce qui est court pour:

 Get-ChildItem -Path E:\ 

Lorsque vous exécutez cette commande, vous obtenez une liste de fichiers avec son heure de dernière écriture, taille sous la propriété Longueur, nom et mode. Le mode est les attributs d'un fichier ou d'un dossier AttributeMagic Free: Modifier les propriétés du fichier Dans Windows AttributeMagic Free: Modifier les propriétés du fichier Dans Windows En savoir plus. Les entrées possibles sont:

  • Lecture seulement
  • Caché
  • Système
  • Annuaire
  • Archiver
  • Dispositif
  • Ordinaire
  • Temporaire
  • SparseFile
  • ReparsePoint
  • Comprimé
  • Hors ligne
  • NotContentIndexed
  • Chiffré

Si vous voulez obtenir le contenu de tous les sous-répertoires dans un chemin, vous voulez utiliser le paramètre -Recurse . Alors lancez:

 Get-ChildItem -Path E:\ -Recurse 

Vos fichiers apparaissent ensuite sous forme de listes séparées pour chaque dossier du chemin.

powershell get-childitem

Pour limiter les données renvoyées, vous pouvez utiliser quelques paramètres différents: -Fichier, -Hidden et -ReadOnly . Si vous cherchez à filtrer les noms du fichier, vous pouvez utiliser des caractères génériques dans le paramètre Path. Pour retourner tous les fichiers .doc dans un répertoire, entrez:

 Get-ChildItem -Path E:\*.doc 

Encore une fois, ajoutez -recurse si vous voulez aussi tout dans les sous-dossiers.

Si vous voulez supprimer un fichier, utilisez:

 Remove-Item -Path E:\OldFile.txt 

Pour ignorer la confirmation de chaque fichier, ajoutez le paramètre -Confirm $ false (Powershell a deux constantes pour les valeurs booléennes: $ true et $ false). Pour forcer la suppression des fichiers en lecture seule ou cachés, utilisez le paramètre -Force .

Le déplacement de fichiers est tout aussi facile. Pour déplacer tout de votre lecteur Flash vers le lecteur local dans un dossier, utilisez:

 Move-Item -Path E:\* -Destination C:\FlashDriveArchive 

Vous pouvez également nommer un seul fichier dans -Path pour déplacer uniquement ce fichier. Pour copier le fichier au lieu de le déplacer, vous utilisez la même syntaxe avec la cmdlet Copy-Item .

Surveillance et utilisation des processus et des services

Alternatives puissantes au gestionnaire de tâches Windows Task Killer serait un meilleur nom pour le gestionnaire de tâches Windows natif puisque nous ne l'apportons que pour tuer les processus qui ne répondent pas. Les gestionnaires de tâches alternatifs vous permettent de gérer vos processus. Lire la suite . Cependant, il existe un moyen plus rapide de voir les processus en cours d'exécution à partir de Powershell, Get-Process . Si vous voulez savoir ce que toutes les entrées de ce tableau signifient, passez la commande à Get-Member . Entrez la cmdlet:

 Get-Process | Get-Member 

Get-member génère une liste de méthodes et de propriétés associées à Get-Process. L'information en haut est ce qui vous intéresse. Vous voyez les différents types de mémoire ont des alias.

powershell get-processus

Nous pouvons également voir à partir de cette sortie que nous pouvons obtenir la propriété Product pour obtenir un nom plus convivial pour les processus. Changeons la sortie, donc nous avons de meilleures informations pour travailler avec:

 Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending 

(Vous trouverez plus d'informations sur Select-Object et Sort-Object dans la section suivante.)

Maintenant que vous avez l'ID de votre commande Get-Process, vous pouvez l'arrêter à l'aide de la cmdlet Stop-Process. Donc, si vous trouvez qu'un processus Chrome ronge toutes vos ressources, recherchez l'ID dans la commande précédente. Ensuite, lancez:

 Stop-Process -ID 45960 

Remplacez 49560 par l'ID de votre ressource.

En utilisant le chemin du fichier, vous pouvez démarrer un processus en utilisant Powershell. Pour lancer Chrome, exécutez la commande suivante:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" 

(Vous devez avoir les guillemets autour du chemin du fichier à cause des espaces.) Le paramètre -ArgumentList vous permet de passer des options de ligne de commande à l'application. Dans le cas de Chrome, vous pouvez le forcer à démarrer en mode de navigation privée à l'aide de l'indicateur -cognito . La cmdlet entière est:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito" 

PowerShell Get-Service

Vous pouvez faire la plupart de ces mêmes choses avec les services Comment contrôler les services en cours d'exécution avec la commande SC [Windows] Comment contrôler les services en cours d'exécution avec la commande SC [Windows] Une des choses que je fais beaucoup plus souvent depuis la plongée surveille et vérifie l'état des services exécutés sur les ordinateurs qui s'exécutent dans toute l'entreprise. Il y a ... Lire la suite. Get-Service vous montre une liste de tous les services en cours d'exécution sur votre ordinateur. Même avec les services Démarrage et Arrêt, vous pouvez utiliser Start-Service et Stop-Service .

Travailler avec des données: Sort-Object, Select-Object, Where-Object

Lorsque vous travaillez avec les données d'une cmdlet, il se peut que ce ne soit pas toujours l'ordre souhaité. Dans ce cas, vous souhaitez utiliser l' objet de tri . Vous pouvez appeler Sort-Object sur une variable que vous avez créée, mais elle est principalement utilisée en redirigeant une autre cmdlet. Comme dans l'exemple ci-dessus, nous redirigeons la sortie d'un objet vers un autre et le trions. Créons un tableau de trois nombres aléatoires et le redirige vers Sort-Object.

Tout ce qui est entre parenthèses est le premier. Créez un tableau simple avec:

 $(Get-Random), $(Get-Random), $(Get-Random) 

Veillez à noter les virgules séparant les valeurs. Donc, pour voir les nombres aléatoires triés, procédez comme suit:

 $(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object 

L'applet de commande affiche les nombres du plus petit au plus grand, si vous souhaitez l'annuler, ajoutez -Descendant .

PowerShell trier-objet

Lorsque vous appliquez des cmdlets à Get-Member, il y a plus de propriétés que la sortie par défaut. Vous sélectionnez des propriétés spécifiques en utilisant Select-Object .

Tout comme Sort-Object, vous utilisez Select-Object via une cmdlet redirigée. Par exemple, pour générer une table de services et leur statut, utilisez:

 Get-Service | Select-Object DisplayName, Status 

Alors que la sortie de toutes ces données est agréable, que se passe-t-il si vous voulez seulement voir des données spécifiques? Get-ChildItem a un filtrage intégré, mais pas la plupart des commandes. Dans ces cas, vous utilisez Where-Object .

powershell où-object

En retournant aux services encore, cette fois vous allez seulement obtenir des services courants. Entrez la cmdlet:

 Get-Service | Where-Object Status -eq "Running" 

Ce -eq dans la comparaison est Powershell pour = . Dans Powershell, vous effectuez des comparaisons avec des combinaisons de lettres:

  • eq: égal
  • ne: pas égal
  • lt: moins de
  • gt: plus grand que
  • ge: supérieur ou égal à
  • le: inférieur ou égal à
  • comme: utiliser comme dans les comparaisons génériques

Aide à la mise en forme: Format-Table et Format-List.

Pour ces différentes applets de commande, la plupart des sorties étaient dans des formats de table. Cela affiche les données dans les lignes et les colonnes avec en-têtes. Pour afficher les entrées répertoriées avec leurs propriétés individuellement, placez l'applet de commande dans Format-List .

PowerShell format-liste

Parfois, vous avez une sortie qui devient trop large pour la fenêtre Powershell. Quand cela arrive, Powershell le force dans une sortie de liste. Pour vous assurer que vous le gardez dans le format de table, dirigez votre sortie vers Format-Table .

De la ligne de commande au script: prochaines étapes

Une fois que vous êtes à l'aise, le script consiste à entrer les applets de commande Augmentez votre productivité avec les scripts Windows PowerShell Augmentez votre productivité avec les scripts Windows PowerShell Et si vous pouviez apporter la productivité de Linux à Windows? La plupart des distributions Linux sont livrées avec le puissant shell Bash. PowerShell est un terminal tout aussi puissant pour Windows. Lire la suite dans un fichier texte et enregistrez-le. Si vous êtes nerveux à l'idée d'essayer des scripts, ne le soyez pas. Microsoft a une énorme quantité de documentation sur chaque cmdlet. Ceci est au-dessus et au-delà de cette documentation d'aide déjà longue, alors assurez-vous de vérifier Technet.

Si vous apprenez Powershell, faites-nous savoir dans les commentaires ce que vous êtes le plus heureux de faire. Si vous avez un peu plus d'expérience, nous aimerions en savoir plus sur les sujets plus avancés que vous aimeriez voir abordés.

In this article