Sortie des données vers PowerShell. Exemples PowerShell intéressants

Il y a des choses que nous faisons tous les jours en tant qu'administrateurs. Mise en réseau Windows mais si on nous demandait de les faire en ligne de commande, contrairement aux administrateurs Linux, ce serait assez problématique pour nous, administrateurs Windows. Windows a toujours été faible en ce qui concerne les outils de ligne de commande. A mon avis, tout a changé depuis l'avènement de Windows Powershell. Avec Powershell (ou en d'autres termes PS), vous pouvez effectuer tellement de fonctions différentes que nous ne pouvions pas effectuer auparavant. Dans cet article, nous allons nous concentrer sur la façon dont Powershell peut nous aider à exécuter certaines fonctions de mise en réseau courantes à partir de la ligne de commande. Continuez à lire pour en savoir plus!

Qu'est-ce que Powershell ?

Powershell est un installable une fonction Windows Server 2008. Pour installer Powershell, vous devez installer la fonction Powershell à l'aide de l'assistant d'ajout de fonctions. Le processus d'installation prend environ une minute, et une fois le composant installé, vous avez accès à un incroyable langage de script en ligne de commande. Contrairement aux autres langages de script de Windows, Powershell est conçu exclusivement pour les administrateurs système. Powershell utilise .NET et des commandes ("cmdlets" ou "command-lets") dans son travail. En tant qu'utilisateur PS, vous pouvez utiliser des commandes individuellement ou les lier ensemble pour accomplir des tâches plus complexes.

Une fois que vous avez installé PS, vous devriez pouvoir exécuter Démarrer -> Tous les programmes -> Windows Powershell 1.0, et appuyez sur Windows PowerShell... À ce stade, vous devriez avoir une fenêtre CLI bleue qui ressemble à celle illustrée à la figure 1.

Image 1: fenêtre Windows Commande Powershell

Vous pouvez toujours dire que vous travaillez en Powershell, car la fenêtre "PS" a toujours la ligne suivante au début :

PS C: \ Utilisateurs \ Administrateurs

Maintenant que powershell est installé et son La fenêtre est ouverte, permettez-moi de vous montrer quelques tâches de mise en réseau courantes pouvant être effectuées dans PS.

Lister les adresses IP de votre serveur

Pour obtenir une liste d'adresses IP sur votre Serveur Windows 2008, vous devez utiliser la commande suivante :

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE - ComputerName. | Select-Object -Propriété IPAddress

Voici à quoi ressemblent les données après avoir utilisé cette commande sur mon serveur Windows 2008 :


Figure 2 : Liste des adresses IP à l'aide de Windows Powershell

Comme vous pouvez le voir sur la figure, les données initiales nous montrent que j'ai un adaptateur avec une adresse IP V4 et une adresse IP V6 sur ce serveur Windows 2008. Ce n'est pas surprenant en soi, mais réfléchissez à ce que vous pouvez faire à ce sujet en utilisant d'autres fonctions de script.

Comme nous l'enseigne le manuel d'utilisation de powershell, les données résultantes sont un tableau et vous ne pouvez voir l'adresse IP qu'en envoyant ces données à "Select-Object" (après avoir désactivé IPV6), quelque chose comme ceci :

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE - ComputerName. | Select-Object -ExpandProperty IPAddress


Figure 3 : Liste des adresses IP UNIQUEMENT avec Windows Powershell

Obtenir la liste de la configuration de l'adaptateur réseau à l'aide de Powershell

Pour voir la configuration de base de votre adaptateur réseau, vous pouvez utiliser la commande suivante :

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE "ComputerName.

Bien que cet article se concentre sur l'utilisation de PS dans Windows Server 2008, cet utilitaire peut également être utilisé dans Windows XP, Vista ou Server 2003. Voici un exemple de sortie d'une commande exécutée sur mon poste de travail Windows XP :


Figure 4 : PowerShell affiche la configuration de la carte réseau sous Windows XP

Tester l'interrogation d'un ordinateur à l'aide de PowerShell

Bien que la ligne de commande PS puisse toujours exécuter toutes les commandes Windows normales (telles que l'interrogation de test), point fort Powershell est que vous pouvez prendre les données reçues et les modifier facilement.

Voici un exemple de la façon dont cela peut être fait, fourni par le guide Utilisateur Windows Powershell. Cet exemple analyse les résultats Win32_PingStatus à l'aide de Select-Object. Dans ce cas, les données indiquent simplement le temps de réponse et le code d'état.

Voici la commande qui a été utilisée :

Get-WmiObject -Class Win32_PingStatus -Filter "Address =" 127.0.0.1 "" - ComputerName. | Select-Object -Property Address, ResponseTime, StatusCode

Et voici les résultats de l'utilisation de la commande sur ma machine Windows :

Figure 5 : Les données PowerShell affichent l'état d'une enquête analysée avec Select-Object

Autoriser le partage d'un dossier à l'aide de Windows Powershell

Je vais être franc avec vous. L'utilisation des commandes Powershell n'est pas toujours aussi simple que l'utilisation des commandes Windows existantes que vous connaissez déjà. Voici un exemple.

La commande PS suivante fournira accès général dans le dossier dans C:\temp en tant que "davidtemp" et appliquez-lui l'excellente commande :

(Get-WmiObject -List -ComputerName. | Where-Object -FilterScript ($ _. Name -eq "Win32_Share")).InvokeMethod ("Create", ("C: \ temp", "davidtemp", 0.25, "David " s Dossier temporaire "))

D'un autre côté, vous pouvez simplement utiliser la commande déjà essayée et testée part nette:

Net share davidtemp = C: \ temp / remarque : "David" s Temp Shared Folder "


Figure 6 : données PowerShell et commande de partage réseau traditionnel

Notez que la commande Powershell n'a pas simplement échoué, mais elle m'a donné une terrible erreur. J'ai essayé cette commande sur Windows XP et Vista et j'étais l'administrateur système.

D'autre part, la commande part nette très simple et a fonctionné du premier coup. Pendant que j'essaie de vous apprendre comment fonctionne Powershell, gardez à l'esprit que Powershell peut utiliser les commandes réseau Windows traditionnelles, qui sont beaucoup plus faciles à utiliser dans de nombreux cas. Cependant, vous pouvez vous retrouver dans une situation où ces commandes traditionnelles ne font pas tout ce dont vous avez besoin, et c'est là qu'intervient Powershell.

Autres commandes réseau et plus complexes

Si vous n'utilisez que les commandes d'administration réseau les plus basiques dans Powershell, vous risquez de vous perdre et de ne plus les utiliser, car comme tout autre langage de script, c'est là que vous devez apprendre.

Cependant, une fois que vous aurez surmonté les difficultés d'apprentissage et appris à utiliser cette langue, vous disposerez d'un outil très efficace et qui pourra vous faire gagner du temps.

Comme vous l'avez peut-être remarqué dans les exemples précédents, l'un des paramètres de la plupart des commandes Powershell est "nom_ordinateur". Lorsque nous mettons un point ("".") Au lieu d'un nom d'ordinateur (nom d'ordinateur), ce sera l'hôte local (notre ordinateur). Cependant, nous pouvons également remplacer n'importe quelle adresse IP ou nom ordinateur Windows dans le domaine, ce qui nous donne la possibilité d'utiliser ces commandes non seulement sur notre PC, mais également de créer des scripts puissants dans Powershell qui peuvent être appliqués sur tous les ordinateurs du réseau.

Par exemple, voici une commande qui transmet l'adresse IP d'un ordinateur Dell sur le réseau local :

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE - ComputerName DELL9400

Voici les résultats de cette commande :


Figure 7 : Résultats Powershell de l'obtention d'une adresse IP à partir d'un PC distant

Et voici une image plus grande montrant les informations dont vous avez besoin :


Figure 8 : Fenêtre de résultat Powershell agrandie de la récupération de l'adresse IP du PC distant

Ainsi, la possibilité de travailler avec des ordinateurs distants est la principale caractéristique de Powershell, cependant, une autre fonctionnalité puissante est la possibilité de filtrer les données et de combiner les données obtenues à l'aide de différentes commandes.

Jetez un œil à l'exemple suivant :

"127.0.0.1", "localhost", "research.microsoft.com" | ForEach-Object -Process (Get- WmiObject -Class Win32_PingStatus -Filter ("Address =" "+ $ _ +" "") -ComputerName.) | Select-Object -Property Address, ResponseTime, StatusCode

Dans cet exemple, une liste d'adresses IP et de noms de domaine a été obtenue. Cette liste a été transmise à "ForEach-Object". Pour chacun de ces "objets" (adresse IP / noms de domaine), l'élément PingStatus "Get-WmiObject" a été utilisé. Les données de sondage de test pour chaque nom de domaine ont ensuite été transmises à l'objet de sélection, ce qui a permis d'afficher uniquement les adresses, les temps de réponse et les codes d'état.

Figure 9 : Test d'interrogation avec liste lors de la combinaison et de l'interrogation des données

À mon avis, cet exemple démontre certaines des capacités de Powershell. Comme vous pouvez le voir, vous pouvez diriger et rediriger les entrées et les sorties dans différentes directions à mesure que vous atteignez vos objectifs d'administration.

Que devez-vous savoir d'autre ?

Conclusion

Windows Powershell est un utilitaire très puissant. Cet article ne peut pas décrire tout ce que vous pouvez faire avec en utilisant Powershell, mais j'espère avoir pu vous donner une image générale des capacités de cet utilitaire et vous inspirer pour des recherches plus approfondies dans ce domaine. Chaque jour, de nouveaux livres, cours et une tonne de matériel sur Internet concernant les fonctions Powershell peuvent être utilisés par les administrateurs système Windows. Compte tenu du fort attachement des administrateurs Windows à interface graphique, il faudra du temps pour que Powershell soit adopté par des entreprises qui n'ont pas un fort besoin de cet outil. Je suis sûr que les administrateurs utiliseront Powershell pour créer des scripts plus courts pouvant gérer des tâches plus complexes. Espérons que Powershell continue de gagner en popularité dans le monde entier !

Remerciements particuliers à Microsoft pour avoir fourni les exemples de commandes dans la documentation du Guide de l'utilisateur de Windows Powershell.

Tout le monde a probablement entendu parler de PowerShell, mais tout le monde n'a probablement pas eu l'occasion de travailler avec. Pour ceux qui commencent tout juste à se frayer un chemin dans la jungle de PowerShell, nous fournissons une traduction d'un article publié sur le portail 4sysops.com. Il fournit 7 commandes pour aider les nouveaux utilisateurs de PowerShell. Pour plus de détails - bienvenue sous cat.

OBTENIR DE L'AIDE

La toute première et la plus importante applet de commande PowerShell est l'appel à l'aide. Vous pouvez utiliser l'applet de commande Get-Help pour vérifier la syntaxe, voir des exemples d'utilisation et consulter les descriptions détaillées des paramètres de toute applet de commande PowerShell. Ce qui est intéressant à propos de cette applet de commande, c'est que vous pouvez simplement taper Get-Help Services pour obtenir une liste de toutes les applets de commande qui conviennent à l'utilisation de services.
Exemple:
PS C : \> Service d'aide

Vous pouvez sélectionner n'importe quelle applet de commande dans la liste ci-dessus pour obtenir de l'aide. Par exemple,
PS C: \> Get-Help -Nom Get-Service
Vous obtenez toutes les informations sur l'applet de commande Get-Service (discutée ci-dessous).


OBTENIR DU CONTENU

La lecture du contenu des fichiers est l'exigence la plus courante pour les débutants qui essaient d'apprendre PowerShell. La lecture de fichiers avec PowerShell est simplifiée. Même un profane peut lire le contenu d'un fichier en le transmettant simplement à l'applet de commande Get-Content.
Exemple.
PS C: \> Get-Content C: \ scripts \ Computers.txt mytestpc1 techibee.com dummynotresolvinghost.com PS C: \>

Besoin de plus d'informations sur une applet de commande ? Utilisez Obtenir de l'aide :
PS C : \> Obtenir de l'aide Obtenir du contenu -Détaillé

OBTENIR-SERVICE

Cette applet de commande répertorie tous les services installés sur l'ordinateur. Vous pouvez l'utiliser pour obtenir des informations sur un service spécifique, une collection de services ou simplement tous les services de votre ordinateur.
Exemple:
PS C: \> Get-Service wwansvc, spouleur Status Name DisplayName ------ ---- ----------- Spooler en cours d'exécution Spooler d'impression arrêté wwansvc WWAN AutoConfig PS C: \>



Ici, nous avons demandé des informations sur deux services wwansvc et spooler
Un tableau s'affiche avec l'état du service, son nom et son nom d'affichage.
Nous pouvons voir que le service de spouleur est démarré et wwansvc est arrêté.

ARRÊT-SERVICE ET DÉMARRAGE-SERVICE

Démarrer et arrêter les services est un point assez important dans le travail Administrateur Windows... PowerShell possède des applets de commande intégrées qui permettent à un administrateur de travailler facilement sans avoir à ouvrir la console MMC. À l'aide de ces applets de commande, vous pouvez arrêter/démarrer des services sur les ordinateurs locaux et distants.
Exemples:
Démarrer/arrêter le service sur l'ordinateur local (par exemple, le service de spouleur) :
PS C: \> Stop-Service -Spouleur de noms PS C: \> Start-Service -Spouleur de noms

Démarrer / arrêter le service sur ordinateur distant(spouleur):
PS C: \> $ ServiceObj = Get-Service -ComputerName MyPC1 -Name spooler PS C: \> Stop-Service -InputObj $ ServiceObj PS C: \> Start-Service -InputObj $ ServiceObj

GET-PROCESS

Cette applet de commande vous permet de savoir quels processus s'exécutent sur des ordinateurs locaux ou distants. Le nom et l'ID du processus s'affichent, ainsi que le chemin d'accès au fichier exécutable, le nom de la société, la version du fichier exécutable et la mémoire utilisée par le processus.
Exemples:
Obtenir des informations sur les processus en cours d'exécution sur l'ordinateur local :

PS C : \> Get-Process


Entrez l'applet de commande suivante pour obtenir des informations détaillées O processus en cours d'exécution
PS C: \> Get-Process | Format-Liste * -Force

Obtention d'informations sur les processus exécutés sur un ordinateur distant:
PS C: \> Get-Process -ComputerName MYPC1 | Format-Liste * -Force

MYPC1 doit être remplacé par le nom de l'ordinateur à partir duquel vous souhaitez obtenir des informations sur les processus en cours.

ARRÊT-PROCESSUS

Cette applet de commande arrête un processus sur un ordinateur local ou distant. Il prend le nom ou l'ID du processus et termine le processus. Ceci est utile dans les cas où l'application ne répond pas.
Exemple:
Arrêtez le processus avec l'ID 22608 sur l'ordinateur local :
PS C : \> Arrêter le processus -Id 22608
Arrêtez tous les processus Excel sur l'ordinateur local :
PS C: \> Arrêter le processus -nom excel

Conseils: Bien que l'applet de commande Stop-Process n'ait pas le paramètre -ComputerName, vous pouvez toujours l'utiliser pour mettre fin aux processus distants en suivant les conseils ci-dessous :
PS C: \> $ Obj = Get-Process -Name excel -ComputerName MYPC1 PS C: \> Stop-Process -InputObject $ Obj

Mettre à jour :
L'article contient la traduction de l'article du portail

Notre présentation se concentre sur l'utilisation des fonctionnalités clés de Windows PowerShell pour effectuer diverses tâches administratives. Tout d'abord, examinons la familiarisation intégrée avec les fonctionnalités de Windows PowerShell.

Présentation des fonctionnalités de Windows PowerShell

Vous êtes donc un administrateur qui doit se familiariser avec Windows PowerShell en un rien de temps. La première chose que vous ferez probablement (en plus de vous référer à la documentation et au système d'aide, bien sûr) est d'utiliser la commande Help (Figure 1).

En examinant de près les informations affichées à l'écran, nous arrivons à comprendre les éléments conceptuels suivants : Il existe des alias, des applets de commande, des fournisseurs et des fichiers d'aide dans Windows PowerShell. Les alias (alias) sont utilisés pour simplifier la saisie de commandes (par exemple, clc- c'est l'alias de la commande Effacer-Contenu), les applets de commande (applets de commande) sont la mise en œuvre de toutes les commandes Windows PowerShell intégrées, les fournisseurs (fournisseurs) donnent accès au système de fichiers, au registre, au magasin de certificats, etc., et les fichiers d'aide (helpfile) sont utilisés pour obtenir Informations Complémentaires... Recevoir Description détaillée la commande utilise la syntaxe suivante :

PS C:> Aide Get-Command

À la suite de l'exécution de cette commande, nous obtenons Description complète commandes Obtenir-Commande, y compris son objectif, sa syntaxe, ses options, etc. (fig. 2).


Pour obtenir une liste de toutes les commandes intégrées, utilisez la syntaxe suivante :

PS C : > Obtenir-Commande

Veuillez noter que toutes les commandes sont composées d'un verbe et d'un adjectif (par exemple, Obtenir du contenu, Exporter-Console) et toutes les équipes soutiennent système unifié conventions de nommage - par exemple, le verbe Stop est toujours utilisé pour terminer quelque chose, plutôt que Kill, Terminate, Halt ou d'autres synonymes, ce qui simplifie grandement l'étude des capacités de PowerShell (Figure 3).


Équipe Obtenir-Service sert à obtenir une liste de tous les services exécutés sur cet ordinateur... Par exemple,

PS C:> Get-Service

renvoie la liste montrée dans la Fig. 4.


Pour obtenir une liste des processus en cours d'exécution sur l'ordinateur, utilisez la commande Get-Process(fig. 5) :


PS C : > Get-Process

Windows PowerShell prend en charge la saisie semi-automatique. Pour le vérifier, entrez Obtenez-P et appuyez sur la touche TAB : vous pourrez sélectionner toutes les commandes commençant par les caractères saisis.

Pour obtenir des informations sur un seul processus en tant qu'argument de commande Get-Process le nom de ce processus est défini (Fig. 6):

PS C:> Explorateur Get-Process

Afin d'obtenir une liste de tous les processus dont les noms commencent par un certain symbole, il suffit d'indiquer ce symbole et "*" (Fig. 7):


PS C:> Get-Process i *

Faites attention aux colonnes qui contiennent des informations - Handles, NMP (K), etc. Par défaut, les informations sont affichées sous forme de tableau, mais en fait, toutes les commandes renvoient des objets. Ces objets peuvent être passés à l'entrée d'autres commandes en utilisant le " | " (fig. 8) :


PS C:> Get-Process i * | liste-format

La liste des processus est maintenant disponible dans une vue différente. Pour plus de détails sur les différents formats, vous pouvez utiliser la commande suivante :

PS C :> Format d'aide *

Autres formats possibles :

PS C:> Get-Process i * | à l'échelle du format

PS C:> Get-Process i * | format-personnalisé

Étant donné que la sortie est toujours un objet, vous pouvez la manipuler pour effectuer des opérations supplémentaires, telles que le filtrage :

PS C:> Get-Process | où ($ _. handlecount -gt 400)

ou trier :

PS C:> Get-Process | où ($ _. handlecount -gt 400) | sort-objet Poignées

Une question tout à fait raisonnable peut se poser : comment a-t-on su que l'objet décrivant le processus a la propriété nombre de poignées? Pour obtenir une liste de toutes les propriétés d'un objet, la commande suivante est utilisée (Fig. 9) :


PS C:> Get-Process | Obtenir-Membre

Exécutons la commande Get-Process | Get-Member Company- avec le formatage par défaut, il n'est pas possible d'obtenir les données souhaitées. Transformons la commande reçue en :

PS C:> Get-Process | Get-Member Company | Format-Liste

Le résultat de sa transformation est montré dans la Fig. dix.


PS C:> Get-Process | tri-objet Entreprise | format-table -Group Nom de l'entreprise, description, poignées

Le résultat de l'exécution de cette commande est illustré à la Fig. Onze.


Équipe arrêt-processus permet d'arrêter un processus en cours, par exemple :

PS C:> Bloc-notes Get-process | arrêt-processus

Cette possibilité n'est pas toujours sûre, il est donc préférable d'utiliser des commandes similaires avec l'option Et qu'est-ce qui se passerait si, qui montre ce qui se passe lorsqu'une commande est exécutée, mais en fait la commande n'est pas exécutée :

PS C:> Bloc-notes Get-Process | arrêter-processus – et si

De plus, vous pouvez indiquer le besoin de confirmation avant d'exécuter la commande :

PS C:> Bloc-notes Get-Process | arrêter-processus –confirmer

Le résultat de l'exécution de la commande avec confirmation est illustré à la Fig. 12.


Dans le dernier exemple, nous obtenons une description des actions que la commande effectue et nous pouvons choisir de confirmer ou non son exécution.

En outre, vous pouvez créer vos propres fichiers batch, qui sont des fichiers * .ps1 contenant des commandes PowerShell, et les exécuter. Les fichiers batch doivent être signés pour des raisons de sécurité. Lors du test, vous pouvez désactiver l'exigence d'exécuter uniquement les fichiers signés :

PS C:> Set-ExecutionPolicy Unrestricted

mais une fois le test terminé, n'oubliez pas de réactiver cette option avec la commande suivante :

PS C:> Set-ExecutionPolicy AllSigned

Après avoir rencontré Les bases de Windows PowerShell voyons comment vous pouvez utiliser cet utilitaire pour résoudre diverses tâches administratives.

Travailler avec le système de fichiers

L'une des tâches auxquelles de nombreux professionnels de l'informatique sont souvent confrontés est liée à la manipulation de fichiers telle que la copie, le déplacement, le renommage, la suppression de fichiers et de répertoires. En figue. 13 montre les commandes Windows PowerShell de base utilisées pour manipuler système de fichiers: nouvel article, copier-élément, déplacer-élément, renommer-élément et retirer l'objet.


Contrairement aux autres shells, qui ont à la fois un ensemble de commandes pour les fichiers (par exemple, supprimer ou renommer) et un ensemble pour les répertoires (par exemple, rd ou md), Windows PowerShell utilise un seul ensemble de commandes pour manipuler à la fois les fichiers et les répertoires.

La première commande de notre exemple est New-item TextFiles –répertoire itemtype- utilisé pour créer un nouveau sous-répertoire TextFiles dans le répertoire courant. Si vous omettez le paramètre -Type d'élément, alors Windows PowerShell demandera si nous créons un fichier (fichier) ou un répertoire (répertoire). A noter que l'équipe nouvel article il y a un alias - ni. En bref, notre première commande ressemblera à ceci :

PS C:> ni TextFiles –répertoire itemtype

Ensuite on utilise la commande copier-élément(alias - cpi, cp, copie) pour copier tous les fichiers avec l'extension * .txt dans le sous-répertoire TextFiles. Si vous utilisez cette commande dans un fichier batch, il est judicieux de la rendre plus claire en spécifiant des paramètres -Chemin(source) et -Destination(receveur):

PS C:> copy-item –path ‘. \ *. Txt’ –destination ‘. \ TextFiles’

Après avoir exécuté la commande copy, nous utilisons la commande emplacement défini pour aller dans le sous-répertoire TextFiles. Utilisation de la commande renommer-élément renommez le fichier psdemo.txt en psdemo.bak. En option, vous pouvez appliquer les options -Chemin et -Nouveau nom... Une fois le fichier renommé, déplacez-le d'un niveau vers le haut à l'aide de la commande déplacer-élément... Ensuite on utilise la commande emplacement défini, ou plutôt son pseudo sl pour basculer vers un autre répertoire. Nous terminons de manipuler le système de fichiers en supprimant tout le répertoire TextFiles à l'aide de la commande retirer l'objet... Étant donné que le répertoire TextFiles contient des fichiers, l'option s'applique –Récurseur... Si cette option n'est pas spécifiée, Windows PowerShell demandera une confirmation avant d'exécuter la commande retirer l'objet.

Travailler avec le registre

Lorsque nous effectuons divers réglages et essayons de trouver des paramètres, nous devons parfois nous tourner vers registre système rechercher des clés, des valeurs, etc. En utilisant les capacités de Windows PowerShell, cette tâche peut être suffisamment résolue d'une manière simple... Les capacités de Windows PowerShell sont illustrées à la Fig. Quatorze.


Notre première équipe utilise un alias sl pour exécuter la commande emplacement défini changer notre emplacement actuel du système de fichiers à la branche HKEY_CURRENT_USER dans le registre système :

PS C : \> sl hkcu :

Notez que, comme dans le cas de l'utilisation du système de fichiers, PowerShell utilise un fournisseur spécial pour accéder au registre.

Les commandes sont analogues à la commande ci-dessus :

PS C : \> registre sl : hkcu

PS C : \> sl hkey_current_user

La commande suivante charge le contenu de l'intégralité de la branche de registre HKEY_CURRENT_USER dans la variable reg :

PS HKCU : \> $ reg = gci. –Rec –ea continuer en silence

Pour cela, nous utilisons la commande obtenir-élément-enfant(alias - gci), dont le principe est similaire au travail avec le système de fichiers. Le premier argument de cette commande est "." - indique que nous voulons obtenir le contenu de la branche de registre actuelle - HKEY_CURRENT_USER. Le deuxième argument est l'abréviation d'option –Récurseur et indique que nous avons besoin d'une collecte récursive de données de toutes les sous-branches de la branche de registre actuelle. Enfin, le troisième argument est –Ea continuer en silence- indique que la commande doit continuer à être exécutée même en cas d'erreurs liées au manque de droits d'accès à certaines sous-branches du registre.

La commande suivante dans notre exemple :

PS HKCU : \> $ s = $ reg | % (if (gp $ _. pspath) –match 'PowerShell') ($ _. pspath))

copie les données du registre contenant une chaîne « PowerShell »... On commence par prendre un objet reg et redirigez-le vers la commande % qui est l'alias de la commande pour chaque... Il parcourt récursivement toutes les entrées de registre dans l'objet. reg et à chaque étape stocke l'élément dans un objet PowerShell spécial nommé ‘_’ ... Entre accolades, nous indiquons les actions qui doivent être effectuées à chaque étape de la commande. pour chaque... A l'intérieur du bloc pour chaque nous utilisons un chèque si afin de savoir si l'entrée de registre actuelle et sa propriété pspath, que nous obtenons via l'appel à la commande get-itemproperty(par pseudo généraliste), notre critère est la présence de la ligne « PowerShell »... Si une correspondance est trouvée, nous retournons la valeur de la propriété pspath... Toutes les correspondances trouvées sont enregistrées dans l'objet s.

Nous terminons de travailler avec le registre en redirigeant les résultats de la recherche vers la commande sélectionner-objet(par pseudo sélectionner) et afficher les deux premiers résultats trouvés. A titre d'exercice, vous pouvez rediriger les résultats finaux vers un fichier à l'aide de la commande hors-fichier.

Accès aux processus

Un autre défi auquel les professionnels de l'informatique peuvent être confrontés est la détection d'anomalies dans le système, telles que des processus qui consomment de grandes quantités de mémoire. Voyons comment ce problème est résolu Outils Windows PowerShell (Figure 15).


Dans la première commande, nous enregistrons des informations sur tous les processus en cours d'exécution sur cet ordinateur dans une variable $ allprocs:

PS C: \> $ allprocs = get-process

Après cela, nous redirigeons les informations reçues vers la commande pour chaque, qui peut également être spécifié par un alias % ou alors pour chaque... Cette commande énumère tous les objets associés au processus, et à chaque étape enregistre les informations dans un objet interne $_ ... Cet objet peut être classiquement appelé l'objet courant. Comme paramètres pour la commande pour chaque nous spécifions l'opération de comparaison de la valeur de la propriété taille de la mémoire virtuelle avec la taille mémoire qui nous intéresse (20 Mo dans notre exemple). Si la valeur de cette propriété pour l'objet courant est supérieure à celle spécifiée, nous affichons le nom du processus à l'écran. Notez que PowerShell prend en charge les principales abréviations pour spécifier les tailles - Ko, Mo, Go, ce qui est très utile, car vous n'avez pas besoin de compter des zéros lors de la spécification de la quantité de mémoire, de disques, etc.

Accès au journal système

Lorsque nous essayons de trouver les causes des pannes, nous nous référons souvent au journal système, qui stocke de nombreux informations utiles sur les événements qui ont eu lieu dans le système. En règle générale, l'utilitaire Observateur d'événements (eventvwr.exe) est utilisé pour examiner le journal système. Dans PowerShell, nous pouvons utiliser des commandes intégrées, telles que la commande obtenir le journal des événements pour examiner rapidement le contenu du journal système (Fig. 16).


Notre première commande charge les informations clés du syslog :

PS C: \> get-eventlog –list

Sans utiliser l'option -Lister PowerShell vous demandera le nom exact du syslog. Dans notre exemple, nous voyons plusieurs points d'entrée dans le syslog : Application, Internet Explorer, Système, Windows Power Shell, etc. Notre prochaine commande récupère les entrées syslog de type "Erreur":

PS C: \> $ bad = get-eventlog "Système" | où-objet ($ _. EntryType –eq « Erreur »)

On utilise la commande obtenir le journal des événements, auquel nous spécifions le paramètre "Système" pour récupérer uniquement les enregistrements système - nous aurions pu rendre cela plus clair en utilisant le paramètre nom du journal... Contenu variable $ mauvais passé à l'entrée de la commande où-objet pour filtrer uniquement les enregistrements qui nous intéressent. En tant qu'arguments de commande où-objet nous indiquons que nous recherchons uniquement les enregistrements qui ont la propriété TypeEntréeéquivaut à "Erreur".

Nous concluons notre enquête syslog en affichant cinq Entrées récentes sur les erreurs à l'aide de la commande sélectionner-objet avec paramètre -Dernier:

PS C: \> $ mauvais | select-object – 5 derniers

Accès WMI

Comme nous le savons, Windows Management Instrumentation (WMI) est l'implémentation par Microsoft du Common Information Model (CMI). Dans la plupart des cas, WMI est utilisé par les professionnels de l'informatique pour obtenir des informations sur le matériel et Logiciel installé sur cet ordinateur. Comme nous le verrons dans l'exemple suivant, utiliser des fenêtres PowerShell facilite grandement l'accès aux informations stockées dans WMI (Figure 17).


Sur la première ligne, nous utilisons la commande get-wmiobject pour obtenir des informations sur le fichier utilisé pour échanger de la mémoire sur le disque et stocker ces informations dans une variable $ pfu:

PS C: \> $ pfu = get-wmiobject - classe 'win32_pageFileUsage'

PS C: \> $ pfu | propriété get-member –membertype | where_object ($ _. name –nomatch '_')

En règle générale, vous pouvez utiliser la commande pour rechercher des informations sur une classe spécifique obtenir-membre sans spécifier de paramètres, mais dans notre exemple, nous ne nous intéressons qu'aux propriétés disponibles et uniquement à celles qui ne contiennent pas le caractère de soulignement dans le nom. Un lecteur attentif peut se demander : comment avons-nous découvert l'existence de la classe win32_pageFileUsage? Après tout, on sait que plus d'un millier de classes sont prises en charge dans WMI, en plus de cela, un certain nombre d'applications ajoutent leurs propres classes. Vous pouvez utiliser la commande :

PS C: \> get-wmiobject –list

pour obtenir une liste de toutes les classes qui existent dans le système. Après avoir défini les propriétés de la classe qui nous sont disponibles, nous affichons à l'écran le contenu des propriétés qui nous intéressent :

PS C: \> $ pfu.caption; $ pfu.currentusage

La deuxième partie de notre exemple est dédiée à une autre classe - win32_DiskDrive, qui stocke des informations sur les disques installés dans le système. Cette classe est un exemple de classe WMI qui contient plusieurs objets. Dans notre exemple, nous définissons la valeur de la propriété légende le premier disque installé sur le système :

PS C: \> $ dd.caption

Utilisation de fichiers XML

DANS Ces derniers temps Les fichiers XML sont de plus en plus utilisés pour stocker les informations de configuration. Au fur et à mesure que les données s'accumulent dans le fichier XML, elles deviennent de moins en moins lisibles. Ensuite, nous verrons comment appliquer Fonctions Windows PowerShell pour travailler avec des fichiers XML.

Par exemple, prenons la configuration fichier windows Calendrier qui ressemble à ceci (Figure 18) :

et effectuez les manipulations sur celui-ci, illustrées à la Fig. dix-neuf.

Dans la première ligne, nous chargeons le contenu de l'intégralité du fichier XML dans une variable à l'aide de la commande Obtenir du contenu:

PS C: \> $ doc = get-content '. \ Settings.xml'

Faites attention à l'utilisation du type de données : si vous ne spécifiez pas l'utilisation de données de ce type, seul le texte sera chargé dans la variable.

Sur la deuxième ligne, nous sélectionnons une branche spécifique du fichier XML - pour cela, la méthode est appliquée selectnodes un objet qui stocke les données XML et une description XPath de l'adresse de la succursale :

PS C: \> $ settings = $ doc.selectnode ('CalendarSettings / X-Root / VCalendar')

Après cela, nous utilisons la commande pour chaque objet obtenir la valeur de la propriété Nom pour tous les éléments de cette branche.

Conclusion

Nous avons couvert les principaux Capacités de Windows PowerShell pour simplifier les tâches des professionnels de l'informatique. Comme nous le savons, ces tâches sont souvent accomplies à l'aide du langage de script VBScript. Windows PowerShell a la capacité d'exploiter le code VBScript existant et facilite donc beaucoup la migration (Figure 20).


L'exemple ci-dessus montre comment vous pouvez utiliser le code VBScript existant dans PowerShell. Dans la première ligne, nous créons un nouvel objet COM qui est le cœur des programmes de script - ScriptControl. Nous indiquons alors que nous utiliserons le langage Visual Basic Script. La troisième ligne spécifie le code VBScript réel - dans notre exemple, il s'agit d'un appel à la fonction MsgBox, mais en pratique, vous pouvez, par exemple, charger le code du fichier dans une variable. Et enfin, sur la dernière ligne, nous ajoutons du code VBScript à notre objet - et le code passe à l'exécution.

Ressources réseau

Blog de l'équipe de développement de produits : http://blogs.msdn.com/PowerShell/.

Utilitaires, éditeurs et modules complémentaires : http://www.powershell.com/.

Blog de Dmitry Sotnikov de Quest : http://dmitrysotnikov.wordpress.com/.

PowerGadgets - Un exemple d'extensibilité illimitée de PowerShell :

1. Écrire un scénario

Le script PowerShell (quelle que soit la version) est fichier texte avec l'extension * .ps1.

Voici un exemple de script Power Shell simple (file systemInfo.ps1) :

# Récupérer l'objet WMI pour le système d'exploitation

Get-WmiObject Win32_OperatingSystem

Ce fichier peut être créé et édité, par exemple, dans Gestionnaire FAR.

Remarqueque FAR Manager, bien qu'il puisse fonctionner dans la console Power Shell, exécute des scripts depuis lui-même dans l'environnement de la console Windows habituelle cmd ... C'est-à-dire que FAR Manager ne peut être utilisé que pour créer et modifier des scripts PowerShell, mais pas pour les exécuter. Mais avant de vous décourager, lisez le point 3.

2. Exécuter le script

Le script doit être exécuté à partir de la console Power Shell, et non à partir de l'habituel consoles Windows... Dans la console Power Shell, vous devez vous rendre dans le répertoire où se trouve le script (avec les commandes CD ), puis exécutez le script lui-même, assurez-vous de le préfixer avec les symboles".\" ... Par exemple, nous avons le chemin d'accès au fichier de script d:\travail\systemInfo.ps1 ... Ensuite, les commandes de lancement ressembleront à ceci :

ré:

cd \

travail sur CD

. \ infosystème.ps1

ou alors (seul le chemin complet vers le script est indiqué):

d:\travail\systemInfo.ps1

Très probablement, l'erreur suivante apparaîtra lors de l'exécution du script :

Impossible de charger le fichier D:\work\systemInfo.ps1 car les scripts ne sont pas autorisés sur ce système. Entrez "get-help about_signing" pour plus d'informations.

ligne : 1 caractère : 18

CategoryInfo: NotSpecified: (:), PSSecurityException

FullQualifiedErrorId : Exception d'exécution

L'erreur apparaît en raison du fait que, par défaut, Power Shell a activé la stratégie de sécurité maximale, ce qui vous permet d'exécuter des commandes PowerShell dans ligne de commande mais ne permet pas l'exécution d'un script avec des commandes PowerShell sur la même ligne de commande.

Pour activer l'exécution de scripts PowerShell, vous devez créer un fichier * .bat, par exemple enableScript.bat avec le contenu suivant :

powershell -Command Set-ExecutionPolicy RemoteSigned

Ce fichier *.bat peut être exécuté dans n'importe quelle console : soit en PowerShell, soit dans un cmd ... Après avoir exécuté ce fichier, les scripts PowerShell s'exécuteront dans la console PowerShell.

3. Exécution d'un script PowerShell à partir d'une console cmd Windows standard

Le script PowerShell peut également être exécuté à partir de la console Windows standard. Pour ce faire, vous pouvez utiliser la commande :

Powershell -Fichier ./systemInfo.ps1

Ainsi, les scripts peuvent être exécutés directement à partir du gestionnaire FAR et ils fonctionneront.

Mais il y a une petite subtilité ici. Paramètre-Fichier ne fonctionne que sur les chemins locaux, même si le chemin est relatif"./". Autrement dit, si * .ps1 - le fichier est sur le disque local Corde: alors un tel appel fonctionnera. Mais si vous essayez d'exécuter un script situé sur une ressource de domaine, le script ne sera pas trouvé. Cela sera peut-être corrigé dans les futures versions de PowerShell.

Applets de commande dans Windows PowerShell beaucoup donc aujourd'hui, je propose d'examiner une petite liste des applets de commande les plus utiles et les plus couramment utilisées avec une brève description de ce qu'elles peuvent faire. Ce manuel vous aidera à trouver rapidement celui qui vous intéresse Commande Windows PowerShell et s'adresse aux administrateurs système novices.

Noter! Cette référence est compilée à partir des applets de commande PowerShell 5.0 sur le système d'exploitation Windows Server 2016.

Applets de commande Windows PowerShell utiles

Dans cette section, je vais lister les applets de commande PowerShell que vous utiliserez certainement.

  • Get-Help - Affiche l'aide, les fonctions et l'aide générale de l'applet de commande pour Windows PowerShell. L'aide est de plusieurs types : courte, détaillée, complète et uniquement des exemples ;
  • Update-Help - télécharge et installe de nouveaux fichiers d'aide, c'est-à-dire mise à jour de l'aide ;
  • Get-Command - Applet de commande de recherche l'équipe que vous voulez, vous pouvez rechercher à la fois par verbe et par nom, il est également possible d'utiliser un masque si vous ne connaissez pas le nom exact du verbe ou du nom ;
  • Get-Alias ​​​​- affiche les alias, tous ou une commande spécifique ;
  • Get-PSDrive - affiche les lecteurs connectés ;
  • Get-Member - affiche les propriétés et les méthodes de l'objet ;
  • Get-WindowsFeature - Affiche des informations sur les rôles et fonctionnalités de serveur disponibles ;
  • Install-WindowsFeature ( équivalent à Add-WindowsFeature) - installe des rôles ou des composants sur le serveur spécifié ;
  • Désinstaller-WindowsFeature ( équivalent à Remove-WindowsFeature) - supprime les rôles ou les composants du serveur ;
  • Get-History - Renvoie une liste des commandes entrées au cours de la session en cours.

Travailler avec des variables

PowerShell utilise généralement le signe dollar $ ( court et pratique), mais il existe des applets de commande spéciales à cet effet.

  • Get-Variable - affiche une liste de variables et leurs valeurs ( ou une variable spécifiée);
  • New-Variable - crée une nouvelle variable ;
  • Set-Variable - Définit la valeur d'une variable. Si une variable avec le nom spécifié n'existe pas, alors elle sera créée ;
  • Clear-Variable - supprime la valeur d'une variable ;
  • Remove-Variable - supprime une variable et sa valeur.

Formatage dans Windows PowerShell

Windows PowerShell fournit un ensemble d'applet de commande qui formatent la sortie d'une applet de commande. Ils permettent à l'utilisateur d'afficher le résultat sous la forme qui lui convient pour visualiser le résultat donné.

  • Format-List - la sortie du résultat de la commande dans le format d'une liste de propriétés, où il y a une propriété distincte sur chaque nouvelle ligne ;
  • Format-Table - sortie du résultat de la commande sous la forme d'un tableau ;
  • Format-Wide - la sortie du résultat de la commande sous la forme d'un tableau large, qui affiche une seule propriété de chaque objet ;
  • Format-Personnalisé - Dans ce cas, la sortie est formatée à l'aide d'une vue personnalisée.

Importer et exporter

PowerShell vous permet d'importer et d'exporter des données dans divers formats courants, tels que CSV ou XML, et de rediriger la sortie de commande vers fichier externe ou à l'imprimante.

  • Export-Csv - exporte les données au format CSV ;
  • Import-Csv - importe les données d'un fichier CSV ;
  • Export-Clixml - exporte les données au format XML ;
  • Import-Clixml - Importe le fichier CLIXML et crée les objets correspondants dans Windows PowerShell.
  • Out-File - Envoie la sortie de la sortie de l'applet de commande vers un fichier externe ( par exemple en TXT);
  • Out-Printer - affiche le résultat de la commande vers l'imprimante ;
  • Import-Module - ajoute des modules à la session en cours.

Mise en réseau dans Windows PowerShell

Pour l'administration réseau dans Windows PowerShell, il existe des applets de commande telles que :

  • Disable-NetAdapter - L'applet de commande désactive la carte réseau.
  • Enable-NetAdapter Cette applet de commande active la carte réseau.
  • Rename-NetAdapter - Renomme la carte réseau ;
  • Restart-NetAdapter - redémarre la carte réseau ;
  • Get-NetIPAddress - Affiche des informations sur la configuration de l'adresse IP ;
  • Set-NetIPAddress - modifie la configuration de l'adresse IP ;
  • New-NetIPAddress - crée et configure une adresse IP ;
  • Remove-NetIPAddress - supprime l'adresse IP et sa configuration ;
  • Get-NetRoute - affiche la table de routage IP ;
  • Set-NetRoute - modifie la table de routage IP ;
  • New-NetRoute - crée une entrée dans la table de routage IP ;
  • Remove-NetRoute - supprime une ou plusieurs entrées ( Routes IP) à partir de la table de routage IP ;
  • Get-NetIPv4Protocol - affiche des informations sur la configuration du protocole IPv4 ;
  • Get-NetIPv6Protocol - affiche des informations sur la configuration du protocole IPv6 ;
  • Get-NetIPInterface - affiche des informations sur les propriétés de l'interface IP ;
  • Get-NetTCPSetting - affiche des informations sur les paramètres et la configuration TCP ;
  • Test-Connection - l'applet de commande envoie des paquets ICMP à un ou plusieurs ordinateurs, c'est-à-dire " ping"Des ordinateurs.

Travailler avec des éléments

Windows PowerShell a des applets de commande qui peuvent fonctionner avec des éléments ; les éléments ici peuvent être compris comme : fichiers, dossiers, clés de registre, etc.

  • Clear-Item - efface le contenu de l'élément, mais ne supprime pas l'élément lui-même ;
  • Copy-Item - copie l'élément ;
  • Get-Item - obtient l'élément à l'emplacement spécifié ;
  • Invoke-Item - Effectue une action par défaut sur l'élément spécifié ;
  • Move-Item - déplace l'élément ;
  • New-Item - crée un nouvel élément ;
  • Remove-Item - supprime les éléments spécifiés ;
  • Rename-Item - Renomme un élément dans l'espace de noms du fournisseur Windows PowerShell.
  • Set-Item - modifie l'élément ;
  • Get-ChildItem - Renvoie les éléments et les éléments enfants dans un ou plusieurs emplacements spécifiques ;
  • Get-Location - Affiche des informations sur l'emplacement actuel.

Applets de commande Active Directory (AD)

Windows PowerShell, bien sûr, vous permet de travailler avec le service d'annuaire Active Directory. Il existe de nombreuses applets de commande à ces fins, en voici quelques-unes :

  • New-ADUser - crée un nouvel utilisateur dans Active Directory ;
  • Get-ADUser - affiche des informations sur les utilisateurs d'Active Directory ;
  • Set-ADUser - modifie l'utilisateur Active Directory ;
  • Remove-ADUser - supprime un utilisateur Active Directory ;
  • New-ADGroup - l'applet de commande crée un groupe dans Active Directory.
  • Get-ADGroup - Répertorie les informations sur un groupe ou recherche pour obtenir plusieurs groupes à partir d'Active Directory ;
  • Set-ADGroup - l'applet de commande modifie un groupe dans Active Directory.
  • Remove-ADGroup - supprime un groupe dans Active Directory ;
  • Add-ADGroupMember - L'applet de commande ajoute des comptes d'utilisateur, d'ordinateur ou de groupe en tant que nouveaux membres d'un groupe Active Directory.
  • Get-ADGroupMember - Affiche des informations sur les membres d'un groupe Active Directory ;
  • Remove-ADGroupMember - supprime les éléments d'un groupe Active Directory ;
  • Set-ADAccountPassword - réinitialiser le mot de passe Compte Active Directory;
  • Disable-ADAccount - Désactive le compte Active Directory.
  • Enable-ADAccount - active le compte Active Directory ;
  • Unlock-ADAccoun - déverrouille le compte Active Directory ;
  • New-ADComputer - créez un nouveau compte d'ordinateur dans Active Directory ;
  • Get-ADComputer - affiche des informations sur un ou plusieurs ordinateurs dans Active Directory ;
  • Set-ADComputer - modifiez le compte de l'ordinateur dans Active Directory ;
  • Remove-ADComputer - supprime un ordinateur d'Active Directory.

Travailler avec Hyper-V

Il existe de nombreuses applets de commande pour travailler avec Hyper-V dans Windows PowerShell, voici une petite liste :

  • New-VM - création d'une nouvelle machine virtuelle;
  • Set-VM - configuration d'une machine virtuelle ;
  • Start-VM - démarre une machine virtuelle ;
  • Stop-VM - fermeture, arrêt ou sauvegarde d'une machine virtuelle ;
  • Import-VM - importe une machine virtuelle à partir d'un fichier ;
  • Move-VM - déplacer une machine virtuelle vers un nouvel hôte Hyper-V ;
  • Remove-VM - supprime une machine virtuelle ;
  • Renommer-VM - renommer une machine virtuelle ;
  • New-VHD - créer un ou plusieurs nouveaux virtuels disques durs;
  • Set-VHD - mise en place d'un virtuel disque dur;
  • Test-VHD - teste un disque dur virtuel pour trouver des problèmes qui le rendraient inutilisable.
  • Ajouter-VMDvdDrive - ajoute disque DVDà la machine virtuelle ;
  • Remove-VMDvdDrive - supprime le DVD de la machine virtuelle ;
  • Add-VMHardDiskDrive - ajoute Disque durà la machine virtuelle ;
  • Remove-VMHardDiskDrive - supprime un ou plusieurs disques durs virtuels (VHD) d'une machine virtuelle ;
  • Add-VMNetworkAdapter - ajoute une carte réseau virtuelle à une machine virtuelle ;
  • Remove-VMNetworkAdapter - supprime un ou plusieurs adaptateurs réseauà partir d'une machine virtuelle ;
  • Copy-VMFile - copie des fichiers sur une machine virtuelle ;
  • Get-VMVideo - affiche des informations sur les paramètres vidéo pour les machines virtuelles ;
  • Move-VMStorage - Déplacez le stockage de la machine virtuelle.

Travailler avec des tâches d'arrière-plan

Windows PowerShell a la possibilité d'exécuter des tâches dans Contexte, de sorte que, sans attendre la fin de la commande ( pour les cas où la tâche prend beaucoup de temps), continuer à travailler dans la session en cours. PowerShell fournit les applets de commande suivantes pour travailler avec les tâches en arrière-plan :

  • Start-Job - démarre une tâche en arrière-plan ;
  • Stop-Job - arrête une tâche en arrière-plan
  • Get-Job - affiche une liste des tâches en arrière-plan ;
  • Receive-Job - affiche le résultat de l'exécution de la tâche en arrière-plan ;
  • Remove-Job - supprime une tâche en arrière-plan ;
  • Wait-Job - amenez une tâche d'arrière-plan au premier plan afin d'attendre son achèvement.

Travailler avec des objets

Étant donné que PowerShell fonctionne avec des objets, il vous permet d'effectuer certaines actions sur ces objets, par exemple :

  • Measure-Object - l'applet de commande vous permet de calculer, en fonction des propriétés de l'objet, des paramètres d'agrégation numériques tels que : minimum, maximum, moyenne, montant et quantité. Par exemple, vous souhaitez connaître la taille maximale ou moyenne du fichier dans un répertoire spécifique, ou simplement connaître le nombre de fichiers ( exécuter des processus, des services, etc.);
  • Select-Object - à l'aide de cette applet de commande, vous pouvez sélectionner certains objets ou propriétés de ces objets, par exemple, vous souhaitez afficher uniquement le nom du fichier et sa taille ;
  • Sort-Object - trie les objets par valeurs de propriété ;
  • Where-Object - une applet de commande pour définir une condition de sélection d'objets en fonction des valeurs de leurs propriétés ;
  • Group-Object - regroupe les objets qui contiennent la même valeur pour les propriétés données ;
  • ForEach-Object - itération sur des objets afin d'effectuer une opération spécifique sur chacun de ces objets.

Applets de commande PowerShell pour la gestion à distance

AVEC en utilisant Windows PowerShell peut exécuter des commandes non seulement sur l'ordinateur local, mais également sur un ou même plusieurs ordinateurs distants.

  • Enter-PSSession - démarre une session interactive avec un ordinateur distant ;
  • Exit-PSSession - termine une session interactive avec un ordinateur distant ;
  • New-PSSession - crée une connexion persistante à un ordinateur local ou distant ;
  • Remove-PSSession - Ferme une ou plusieurs sessions Windows PowerShell.
  • Disconnect-PSSession - se déconnecte de la session ;
  • Connect-PSSession - se connecte aux sessions déconnectées ;
  • Get-PSSession - Obtenez des sessions Windows PowerShell sur des ordinateurs locaux et distants.
  • Invoke-Command - Exécute les commandes sur les ordinateurs locaux et distants.

Travailler avec des services et des processus

PowerShell, bien sûr, peut gérer des services et des processus dans Windows, pour cela, il existe des applets de commande telles que :

  • Get-Process - affiche des informations sur les processus en cours d'exécution sur l'ordinateur ;
  • Start-Process - démarre un ou plusieurs processus sur l'ordinateur ;
  • Stop-Process - arrête un ou plusieurs processus en cours d'exécution ;
  • Get-Service - affiche des informations sur les services ;
  • Restart-Service - redémarre le service ;
  • Start-Service - démarre le service ;
  • Stop-Service - arrête le service ;
  • Suspend-Service - suspend le service ;
  • Set-Service - Vous pouvez utiliser cette applet de commande pour modifier les propriétés d'un service, telles que la description, le nom d'affichage et le mode de démarrage. Il peut également être utilisé pour démarrer, arrêter ou suspendre un service.

Travailler avec l'ordinateur

Windows PowerShell vous permet d'effectuer des tâches administratives pour le système d'exploitation et l'ordinateur dans son ensemble, telles que le redémarrage système opérateur ou renommer l'ordinateur.

  • Restart-Computer - l'applet de commande redémarre le système d'exploitation ( redémarre l'ordinateur);
  • Stop-Computer - éteint l'ordinateur ;
  • Renommer l'ordinateur - renomme un ordinateur ;
  • Checkpoint-Computer - crée un point de restauration système sur l'ordinateur local ;
  • Restore-Computer - lance la restauration du système sur l'ordinateur local ;
  • Disable-ComputerRestore - désactive la fonction de restauration du système sur le lecteur de système de fichiers spécifié ;
  • Enable-ComputerRestore - active la fonction de restauration du système sur le lecteur spécifié du système de fichiers ;
  • Supprimer-Ordinateur - supprime ordinateur local du domaine ;
  • Get-EventLog - affiche des informations sur les événements dans le journal des événements, ou une liste des journaux d'événements sur un ordinateur local ou distant ;
  • Clear-EventLog - supprime les entrées des journaux d'événements spécifiés.

Travailler avec du contenu

Pour gérer du contenu tel que du texte dans un fichier dans Windows PowerShell, il existe des applets de commande spéciales, telles que :

  • Get-Content - obtient le contenu de l'élément ( par exemple lit un fichier);
  • Add-Content - ajoute du contenu aux éléments spécifiés, par exemple, du texte dans un fichier ;
  • Clear-Content - supprime le contenu de l'élément, mais ne supprime pas l'élément lui-même ;
  • Set-Content - Écrit ou remplace le contenu dans un élément avec un nouveau contenu.

Autres applets de commande Windows PowerShell

Je voudrais également souligner les applets de commande Windows PowerShell suivantes, dont vous aurez sûrement besoin et qui vous seront utiles.

  • Get-ExecutionPolicy - Utilisez cette applet de commande pour obtenir la stratégie d'exécution Windows PowerShell actuelle pour la session en cours.
  • Set-ExecutionPolicy - L'applet de commande modifie la stratégie d'exécution de Windows PowerShell.
  • Write-Host - affiche des informations à l'écran ( écrit du texte);
  • Read-Host - lit une ligne d'entrée à partir de la console ;
  • Write-Warning - affiche un message d'avertissement ;
  • Write-Error - l'applet de commande déclare une erreur et l'imprime dans le flux d'erreurs.
  • Get-Date - renvoie la date et l'heure actuelles ;
  • Set-Date - L'applet de commande modifie la date et l'heure du système sur l'ordinateur.

Nous sommes ici avec vous et avons passé en revue les applets de commande Windows PowerShell utiles et couramment utilisées, j'espère que ce guide vous sera utile, bonne chance !

gastroguru 2017