Cmdlets Powershell qui amélioreront vos compétences d'administrateur Windows

Cmdlets Powershell qui amélioreront vos compétences d'administrateur Windows / La programmation

Powershell est le moyen idéal pour un nouveau codeur de se lancer sur Windows. Powershell est à parts égales un outil de ligne de commande et un langage de script. Il vous permet d'automatiser votre ordinateur à l'aide des mêmes commandes que vous avez utilisées pour l'administrer. Invite de commandes et Windows PowerShell: quelle est la différence? Invite de commandes et Windows PowerShell: quelle est la différence? Les utilisateurs de Windows peuvent se débrouiller sans utiliser l'invite de commande ou PowerShell. Mais avec Windows 10 et les nouvelles fonctionnalités à venir, il est peut-être temps d'apprendre. Lire la suite . Si vous avez un système Windows moderne, vous avez déjà Powershell. La plupart de ses utilisations sont centrées sur Windows, mais vous pouvez installer Powershell sur un ordinateur Mac ou Linux. Procédure d'installation et d'utilisation de PowerShell sous Linux Procédure d'installation et d'utilisation de PowerShell sous Linux En 2016, Microsoft a ouvert une base de données PowerShell et a lancé une itération multiplateforme. . Dans cet article, je vais vous montrer comment installer, exécuter et utiliser PowerShell sous Linux! Lire plus 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. Il y a ensuite l'ISE, qui combine la fenêtre CLI avec un environnement de développement de base. En utilisant cela, vous pouvez écrire et tester vos scripts.

L'ISE dispose d'une liste de commandes interrogeable et vous pouvez utiliser sa fenêtre de terminal sans ouvrir de fichier. La liste de commandes vous permet de construire votre commande et de l’insérer. Si vous effectuez un développement plus avancé, installez le code Visual Studio de Microsoft. Code inclut la prise en charge du contrôle de version Git 10 Astuces essentielles à la productivité pour Visual Studio Code 10 Astuces essentielles à la productivité pour le code Visual Studio Le code Visual Studio supprime les autres éditeurs de texte de programmation. C'est gratuit, open source, ultra-rapide et regorge de fonctionnalités de productivité. Lire plus et autres langues.

Powershell est unique en ce sens qu'il est entièrement constitué de commandes, Microsoft les appelle des applets de commande. Ces commandes sont les mêmes si vous travaillez en ligne de commande ou si vous écrivez des scripts complexes. Ainsi, lorsque vous utilisez ces commandes, vous pouvez réfléchir à la manière de les chaîner pour créer vos premiers scripts..

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

Toutes les commandes Powershell prennent la forme de Verbe-Nom. Les verbes sont généralement: Obtenir, Définir et Nouveau.

Get-Command vous permet de voir toutes les commandes disponibles. Lorsque vous exécutez Get-Command, vous constatez qu’il existe une multitude de commandes commençant par ces commandes..

En creusant davantage à partir des noms d'applets de commande, vous commencez à constater qu'ils ont tous une structure similaire. Vous les appelez par leur nom, comme vous l'avez fait avec Get-Command. L'utilisation de paramètres change les informations que vous obtenez. Cependant, si vous n’avez jamais utilisé que la commande avec les options par défaut, comment savoir comment utiliser les paramètres avancés?

En utilisant le Obtenir de l'aide La cmdlet avec Get-Command affiche plus d'informations sur la cmdlet. Nous utilisons l'applet de commande 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 du paramètre 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 -Exemples

Cette cmdlet ne renvoie que les exemples du fichier d'aide. Ces exemples sont très utiles car ils incluent des descriptions. Ce texte d'aide explique le fonctionnement de la cmdlet et des paramètres lors de son exécution..

Si vous souhaitez afficher le fichier d’aide dans une fenêtre séparée, vous pouvez utiliser -ShowWindow. Donc si vous courez:

Get-Help Get-Command -ShowWindow

Powershell ouvre 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..

Au fur et à mesure que vous progresserez avec Powershell, vous constaterez que vous utilisez plus souvent Get-Member. 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 applets de commande auront un -Propriété paramètre pour vous permettre d'appeler les.

Travailler avec des fichiers: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

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

Get-ChildItem E: \

Qui est court pour:

Get-ChildItem -Path E: \

Lorsque vous exécutez cette commande, vous obtenez une liste de fichiers avec sa dernière heure d'écriture, sa taille sous la propriété Length, Name et Mode. Le mode correspond aux attributs d’un fichier ou d’un dossier. AttributeMagic Free: Modifier les propriétés du fichier sous Windows AttributeMagic Free: Modifier les propriétés du fichier sous 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
  • Crypté

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

Get-ChildItem -Path E: \ -Recurse

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

Pour limiter les données renvoyées, vous pouvez utiliser plusieurs paramètres différents: -Fichier, -Caché, et -Lecture seulement. Si vous souhaitez filtrer les noms du fichier, vous pouvez utiliser des caractères génériques dans le paramètre Path. Pour renvoyer tous les fichiers .doc d'un répertoire, entrez:

Get-ChildItem -Path E: \ *. Doc

Ajouter à nouveau -récidive si vous vouliez tout des sous-dossiers aussi.

Si vous souhaitez supprimer un fichier, utilisez:

Remove-Item -Path E: \ OldFile.txt

Pour ignorer la confirmation de chaque fichier, ajoutez le paramètre. -Confirmer $ 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 la commande -Obliger paramètre.

Déplacer des fichiers est tout aussi facile. Pour tout déplacer 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 ne déplacer que ce fichier. Pour copier le fichier plutôt que de le déplacer, vous utilisez la même syntaxe avec Copier-Item cmdlet.

Surveillance et utilisation de processus et de services

Chaque utilisateur Windows connaît Task Manager 5 Alternatives puissantes au gestionnaire de tâches Windows 5 Alternatives puissantes au tueur de tâches du gestionnaire de tâches Windows serait un meilleur nom pour le gestionnaire de tâches Windows natif, car nous l'apportons uniquement pour supprimer les processus qui ne répondent pas. Les gestionnaires de tâches alternatifs vous permettent de gérer réellement vos processus. Lire la suite . Cependant, il existe un moyen plus rapide de voir les processus en cours de Powershell, Get-Process. Si vous voulez savoir ce que toutes les entrées de cette table signifient, dirigez la commande vers Get-membre. Entrez l'applet de commande:

Get-Process | Get-membre

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

Nous pouvons également voir à partir de cette sortie que nous pouvons obtenir le Produit propriété pour obtenir un nom plus convivial pour les processus. Modifions la sortie pour qu'elle contienne de meilleures informations:

Get-Process | Produit Select-Object, NPM, CPU, Nom, ID | Sort-Object CPU -Descending

(Il y a 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. Par conséquent, si vous constatez qu'un processus Chrome grince toutes vos ressources, recherchez l'ID dans la commande précédente. Ensuite, lancez:

Stop-Process -ID 45960

Remplacer 49560 avec l'ID de votre ressource porc.

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: \ Fichiers de programme (x86) GoogleChromeApplicationchrome.exe"

(Vous devez avoir les guillemets autour du chemin du fichier à cause des espaces.) -ArgumentList Ce paramètre vous permet de transmettre 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 la touche -incognito drapeau. La cmdlet entière est:

Start-Process -Filepath "C: \ Fichiers de programme (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"

Vous pouvez faire la plupart de ces 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] L'une des choses que je me trouve souvent plus souvent depuis que je me suis plongé dans l'informatique surveille et vérifie le statut des services en cours d'exécution sur des ordinateurs exécutés dans l'ensemble de 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 chose avec les services de démarrage et d'arrêt, vous pouvez utiliser Service de démarrage et Aire d'autoroute.

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

Lorsque vous travaillez avec les données d'une applet de commande, il se peut que ce ne soit pas toujours l'ordre souhaité. Dans ces cas, vous voulez utiliser le Sort-Object. Vous pouvez appeler Sort-Object sur une variable que vous avez créée, mais elle est principalement utilisée pour canaliser une autre applet de commande. Comme dans l'exemple ci-dessus, nous dirigeons la sortie d'un objet vers un autre et le trions. Créons un tableau de trois nombres aléatoires et dirigeons-le 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. Pour voir les nombres aléatoires triés:

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

La cmdlet génère les nombres du plus petit au plus grand, si vous voulez l’inverser, ajoutez -Descendant.

Lorsque vous dirigez des applets de commande vers Get-Member, il existe 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 applet de commande. Par exemple, pour générer une table de services et leur statut, utilisez:

Get-Service | Select-Object DisplayName, Status

Bien que l’affichage de toutes ces données soit agréable, qu’en est-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 Où-objet.

Pour revenir aux services, cette fois, vous ne pourrez obtenir que des services en cours d’exécution. Entrez l'applet de commande:

Get-Service | Où-Object Status -eq "en cours d'exécution"

Cette -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: supérieur à
  • ge: supérieur ou égal à
  • le: inférieur ou égal à
  • comme: utiliser comme dans les comparaisons génériques

Aide au formatage: Format-Table et Format-List.

Pour ces différentes applets de commande, la plupart des résultats étaient au format table. Cela affiche les données en lignes et en colonnes avec des en-têtes. Pour afficher les entrées répertoriées avec leurs propriétés individuellement, dirigez la cmdlet vers Liste de format.

Parfois, vous obtenez une sortie trop large pour la fenêtre Powershell. Lorsque cela se produit, Powershell le force dans une sortie de liste. Pour vous assurer de le conserver au format de tableau, dirigez votre sortie vers Format-Table.

De la ligne de commande au script: prochaines étapes

Une fois que vous êtes à l'aise, vous devez entrer les applets de commande pour augmenter votre productivité avec les scripts Windows PowerShell. Augmenter votre productivité avec les scripts Windows PowerShell Et si vous pouviez transférer 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. Lisez la suite dans un fichier texte et enregistrez-le. Si vous êtes nerveux à l'idée d'essayer de créer des scripts, ne le soyez pas. Microsoft a une énorme quantité de documentation sur chaque cmdlet. C’est au-delà de cette longue documentation d’aide, alors n’oubliez pas de consulter Technet.

Si vous apprenez Powershell, faites-nous savoir dans les commentaires ce que vous avez le plus envie de faire. Si vous avez un peu plus d'expérience, nous aimerions entendre parler de sujets plus avancés que vous voudriez voir traités..

Explorer plus sur: PowerShell, Scripting.