Installation de PowerShell. Installation et configuration de Windows PowerShell. Fonctions dans Powershell

Aujourd'hui, je vais vous montrer comment installer et utiliser le module d'administration Active Directory pour Windows PowerShell. Les applets de commande de ce module peuvent être utilisées pour obtenir des informations et gérer divers objets et paramètres AD. Ce module est installé dans les systèmes d'exploitation serveur en tant que composant distinct. Sur les systèmes d'exploitation de bureau (Windows 10, 8.1, 7), vous devrez installer le package Remote Server Administration Tools (RSAT), qui comprend un module pour interagir avec AD depuis PowerShell. En plus de ce module, RSAT comprend tous les composants logiciels enfichables de gestion graphique, les utilitaires de ligne de commande et les modules Windows PowerShell nécessaires à l'administration de Windows et AD. Vous devez télécharger vous-même ce package pour votre version de système d'exploitation à partir du site Web de Microsoft.

Installation du module Active Directory pour Windows PowerShell

Le module Active Directory pour Windows PowerShell est apparu pour la première fois dans Windows Server 2008 R2. Il est automatiquement installé sur . Pour utiliser les applets de commande PowerShell du module AD, votre domaine doit disposer d'au moins un contrôleur exécutant Windows Server 2008 R2 ou version ultérieure. Si votre réseau ne dispose que de contrôleurs de domaine exécutant Windows Server 2003 et 2008, vous devez télécharger et installer Active Directory Management Gateway Service. Les applets de commande PowerShell du module Active Directory interagissent avec un service Web qui fait partie d'un contrôleur de domaine avec le rôle ADDS.

Vous pouvez installer le module Active Directory pour Windows PowerShell non seulement sur un contrôleur de domaine, mais également sur n'importe quel serveur ou poste de travail de domaine membre. Dans Windows Server 2016, vous pouvez installer le module Active Directory pour Windows PowerShell à partir de la console graphique du Gestionnaire de serveur à l'aide de l'Assistant Ajout de rôles et de fonctionnalités. Exécutez simplement l'assistant et au stade de la sélection des composants, vous devez sélectionner Outils d'administration de serveur distant -> Outils d'administration de rôles -> Outils AD DS et AD LDS -> Module Active Directory pour Windows PowerShell(Outils d'administration de serveur distant > Outils d'administration de rôles > Outils AD DS et AD LDS -> module Active Directory pour Windows PowerShell).

Ce module peut également être installé à l'aide de PowerShell. Ouvrez une console PowerShell avec des droits d'administrateur et exécutez les commandes :

Gestionnaire de serveur du module d'importation
Add-WindowsFeature -Nom « RSAT-AD-PowerShell » –IncludeAllSubFeature

Sous Windows 10, Windows 8.1 et Windows 10, pour installer le module RSAT-AD-PowerShell, vous devez d'abord installer la version appropriée de RSAT, après quoi le module doit être activé dans le Panneau de configuration (Panneau de configuration -> Programmes -> Programmes et fonctionnalités, puis cliquez sur « Activer les fonctionnalités Windows » -> Outils d'administration de serveur distant -> Outils d'administration de rôles -> Outils AD DS et AD LDS -> activer le module Active Directory pour le composant POwerShell Windows.

Ou vous pouvez installer le module à l'aide de PowerShell :

Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

Importer et utiliser le module PowerShell pour Active Directory

Sous Windows 7 et Windows Server 2008 R2, sur lesquels PowerShell 2.0 est installé, pour commencer à utiliser le module AD, vous devez l'importer dans une session PowerShell avec la commande :

Vous pouvez également exporter un module depuis une machine distante sur laquelle il est déjà installé et l'importer dans votre session PowerShell :

$MaSession = Nouveau-PSSession -ComputerName MyDomainController
Export-PSsession -Session $MaSession -Module ActiveDirectory -OutputModule RemoteADPosh
Supprimer-PSSession -Session $MaSession
Module d'importation RemoteADPosh

Sous Windows Server 2012 R2/2016 et Windows 8.1/Windows 10, le module (s'il est installé) est automatiquement importé dans la session.

Si l'ordinateur est joint à un domaine, par défaut un lecteur est créé par nom ANNONCE:..Vous pouvez accéder à ce lecteur avec la commande CD et utiliser les commandes habituelles de votre système de fichiers pour naviguer dans ce lecteur. Les chemins sont présentés au format X500.

PS C:\> cdAD :
PS AD :\> rép.

PS AD :\> cd "DC=vmblog,DC=ru"

Vous pouvez afficher une liste des applets de commande de module disponibles pour travailler avec Active Directory comme ceci :

Get-Command-Module ActiveDirectory

Différentes versions de Windows ont différents nombres d'applets de commande disponibles :

  • Windows Server 2008 R2 - 76 applets de commande.
  • Windows Server 2012 - 135 applets de commande
  • Windows Server 2012 R2 / 2016 - 147 applets de commande.

Vous pouvez désormais utiliser les applets de commande PowerShell pour administrer AD. Sur notre site, vous pouvez vous familiariser avec l'utilisation des applets de commande suivantes du module AD pour PowerShell : , .

0
Applicable à:
Office 365 pour les professionnels et les petites entreprises, Office 365 pour les entreprises, Live@edu
Windows XP, Windows Vista, Windows Server 2003, Windows 7 et Windows Server 2008

Avant de commencer à utiliser Windows PowerShell, vous devez vous assurer que les versions correctes de Windows PowerShell et de Windows Remote Management (WinRM) sont installées et configurées sur votre ordinateur. Vous devez utiliser Windows Management Framework, qui inclut les versions correctes de Windows PowerShell v2 et WinRM 2.0.

Si votre ordinateur exécute Windows 7 ou Windows Server 2008 R2, vous n'avez rien à installer. Le Windows Management Framework est déjà installé.

Vous pouvez télécharger et installer Windows Management Framework si votre ordinateur exécute l'un des systèmes d'exploitation suivants :

    Windows Vista SP1 ou SP2 ;

    Windows Server 2008 SP1 ou SP2 ;

    Windows Serveur 2003 SP2 ;

    Windows XP avec Service Pack 3 (SP3).

Commençons:

1. Supprimez les versions précédentes de Windows PowerShell de votre ordinateur

Avant d'installer Windows Management Framework, vous devez désinstaller toutes les versions existantes de Windows PowerShell.

1.1 Suppression de Windows PowerShell de Windows Vista

    Dans le groupe Programmes du Panneau de configuration, ouvrez Programmes et fonctionnalités et désinstallez toutes les instances de Windows PowerShell qui figurent dans la liste des programmes installés. Par exemple, la version CTP de Windows PowerShell v2 peut apparaître comme « Windows PowerShell(TM) V2 ».

    Dans la section Tâches, sélectionnez Afficher les mises à jour installées et supprimez toutes les instances de Windows PowerShell qui figurent dans la liste des mises à jour installées. Par exemple, Windows PowerShell V1 peut apparaître comme une mise à jour Windows avec l'un des numéros d'article suivants dans la Base de connaissances Microsoft :

1.2 Suppression de Windows PowerShell de Windows Server 2008

    Lancez le Gestionnaire de serveur et ouvrez la section Composants.

    1. Sélectionnez "Supprimer des fonctionnalités".

      Sélectionnez Windows PowerShell et suivez les instructions de suppression.

    Dans le Panneau de configuration, sous Programmes, ouvrez Programmes et fonctionnalités et désinstallez toutes les instances de Windows PowerShell qui figurent dans la liste des programmes installés.

    Dans le groupe « Tâches », sélectionnez l'élément « Afficher les mises à jour installées ». Supprimez toutes les instances de Windows PowerShell qui figurent dans la liste des mises à jour installées.

1.3 Suppression de Windows PowerShell de Windows Server 2003 ou Windows XP

    Ouvrez Ajouter ou supprimer des programmes dans le Panneau de configuration et supprimez toutes les instances de Windows PowerShell figurant dans la liste des programmes installés.

    Dans la section Ajout ou suppression de programmes, sélectionnez Afficher les mises à jour. Supprimez toutes les instances de Windows PowerShell qui figurent dans la liste des mises à jour installées. Par exemple, Windows PowerShell V1 peut apparaître comme une mise à jour Windows avec le numéro d'article suivant dans la Base de connaissances Microsoft : KB926139.

2. Suppression des versions précédentes de WinRM de votre ordinateur

Avant d'installer Windows Management Framework, vous devez désinstaller toutes les versions existantes de WinRM.

2.1 Suppression de WinRM de Windows Vista ou Windows Server 2008

    Dans le groupe Programmes du Panneau de configuration, ouvrez Programmes et fonctionnalités et désinstallez toutes les instances de Contrôle à distance Windows qui figurent dans la liste des programmes installés.

    Dans le groupe « Tâches », sélectionnez l'élément « Afficher les mises à jour installées ». Supprimez toutes les instances du service de gestion à distance Windows qui figurent dans la liste des mises à jour installées. Par exemple, la version CTP de WinRM 2.0 peut apparaître sous le nom « WindowsRemoteManagement » avec l'un des numéros d'article suivants dans la Base de connaissances Microsoft :

2.2 Suppression de Windows PowerShell de Windows Server 2003 ou Windows XP

    Ouvrez Ajouter ou supprimer des programmes dans le Panneau de configuration et supprimez toutes les instances de Contrôle à distance Windows qui figurent dans la liste des programmes installés.

    Dans la section Ajout ou suppression de programmes, sélectionnez Afficher les mises à jour. Supprimez toutes les instances du service de gestion à distance Windows qui figurent dans la liste des mises à jour installées. Par exemple, WinRM peut apparaître comme une mise à jour Windows avec le numéro d'article suivant dans la Base de connaissances Microsoft : KB936059.

3. Installez le cadre de gestion Windows

    Téléchargez et installez le cadre de gestion Windows. Sélectionnez le package contenant Windows PowerShell v2 et WinRM 2.0 adapté à votre système d'exploitation, à votre architecture système et à votre langue.

    Après avoir installé WinRM et Windows PowerShell, configurez le logiciel pour qu'il fonctionne correctement comme décrit dans les étapes suivantes.

Note

4. Vérifiez que les scripts peuvent s'exécuter dans Windows PowerShell

    Sélectionnez séquentiellement « Démarrer », « Tous les programmes », « Accessoires », Windows PowerShell.

    Pour ouvrir Windows PowerShell, effectuez l'une des opérations suivantes :

    • Si vous exécutez Windows Vista, Windows 7 ou Windows Server 2008 R2, cliquez avec le bouton droit sur Windows PowerShell et sélectionnez Exécuter en tant qu'administrateur. Lorsqu'une invite de contrôle de compte d'utilisateur apparaît vous demandant de continuer, cliquez sur Continuer.

      Si vous exécutez Windows XP ou Windows Server 2003, cliquez sur Windows PowerShell.

    Exécutez la commande suivante :

    Obtenir-ExecutionPolicy

    Si la valeur renvoyée n'est pas RemoteSigned, vous devez remplacer la valeur par RemoteSigned.

    Note

    Si la stratégie d'exécution de script est définie sur RemoteSigned, seuls les scripts créés sur l'ordinateur de l'utilisateur ou signés par une source fiable peuvent être exécutés.

Préparation à l'exécution de scripts dans Windows PowerShell

Dans une session Windows PowerShell ouverte en tant qu'administrateur, exécutez la commande suivante :

Set-ExecutionPolicyRemoteSigned

5. Vérifier si WinRM est autorisé à se connecter à Windows PowerShell

    Sélectionnez séquentiellement « Démarrer », « Tous les programmes », « Accessoires ».

    Effectuez l'une des opérations suivantes pour ouvrir l'invite de commande :

    • Si vous exécutez Windows Vista, Windows 7 ou Windows Server 2008 R2, cliquez avec le bouton droit sur Invite de commandes et sélectionnez Exécuter en tant qu'administrateur. Lorsqu'une invite de contrôle de compte d'utilisateur apparaît vous demandant de continuer, cliquez sur Continuer.

      Si vous exécutez Windows XP ou Windows Server 2003, sélectionnez Invite de commandes.

    À l'invite de commande, exécutez la commande suivante :

    winrm récupère winrm/config/client/auth

    Note

    Si le service WinRM est déjà en cours d'exécution, vous n'avez pas besoin de le démarrer. Vous pouvez vérifier l'état du service WinRM en exécutant la commande sc query winrm.

Dans les résultats, recherchez la valeur Basic = . Si la valeur Basic = false est spécifiée, elle doit être remplacée par Basic = true.

Note

    Si le service WinRM est en cours d'exécution et que vous n'avez pas besoin de modifier la valeur de base, exécutez net stop winrm pour arrêter le service WinRM.

Activation de la prise en charge de l'authentification de base dans WinRM

    Dans une fenêtre d'invite de commandes ouverte en tant qu'administrateur, exécutez les commandes suivantes : La valeur entre accolades ( ) est sensible à la casse :

    winrm définit winrm/config/client/auth @(Basic="true")

    Vérifiez Basic=true dans la sortie de la commande.

    Note

    Si le service WinRM est en cours d'exécution, exécutez net stop winrm pour l'arrêter.

Prochaine action.

Un certain temps s'est déjà écoulé depuis le lancement de la version finale du dernier système d'exploitation de Microsoft, et non seulement les passionnés testant les versions intermédiaires, mais aussi les utilisateurs qui ont téléchargé la mise à jour tant attendue s'y sont déjà familiarisés. Le nouveau système est-il bon ou pas ? Est-ce le dernier produit innovant ou simplement le « huit » qui aurait dû sortir en temps voulu ? Ce sont des questions auxquelles il n’est en aucun cas possible de répondre définitivement. Outre les innovations évidentes, notamment le nouveau menu Démarrer, le navigateur Microsoft Edge, la compatibilité avec Xbox, la recherche et l'affichage des tâches intégrés à Cortana, il existe un certain nombre d'innovations que tous les utilisateurs de Windows 10 ne connaissent pas.

Et l'une de ces innovations est la possibilité d'installer des produits logiciels directement à l'aide du shell Windows PowerShell, qui sera abordée plus loin dans cet article. Malgré le fait que cette fonctionnalité soit apparue en avril 2014 avec la sortie de Windows Management Framework 5.0 Preview, elle n'a pu devenir native qu'avec la version finale des « dix ». Voyons donc quel module est responsable de cette fonctionnalité et comment vous pouvez installer des produits logiciels sans télécharger de fichiers d'installation.

Module Windows PowerShell OneGet

Avec la sortie de Windows Management Framework 5.0 Preview, Windows PowerShell dispose désormais de plusieurs nouvelles fonctionnalités conçues pour faciliter la gestion des ordinateurs. Ces fonctionnalités incluent deux technologies intéressantes, à savoir : Windows PowerShell Desired State Configuration et Certified for Windows Network Switches.

Dans le cas de la technologie Certifié pour les commutateurs réseau Windows, un certain nombre d'applets de commande Windows PowerShell ont été ajoutées, chargées de gérer les commutateurs réseau certifiés Windows. Autrement dit, il existe 19 nouvelles applets de commande que vous pouvez trouver en exécutant la commande « Get-Command *-NetworkSwitch* » dans PowerShell. La technologie étant assez sérieuse et mérite une attention particulière, dans cet article je me limiterai à une brève description et n'examinerai pas cette technologie plus en détail.

Mais nous devrions nous attarder plus en détail sur la deuxième technologie. Si vous installez Windows Management Framework 5 ou le système d'exploitation Windows 10, vous pouvez utiliser un outil qui facilite grandement la recherche et l'installation de logiciels sur vos ordinateurs. OneGet est un tel outil. OneGet est un agrégateur de gestion de packages, c'est-à-dire un module qui utilise des référentiels spéciaux pour fournir une interface unique pour découvrir, installer et inventorier les logiciels. Autrement dit, cette technologie, d'une part, fournit un ensemble d'applets de commande qui permettent à l'utilisateur final de gérer les packages d'installation (dont nous parlerons un peu plus bas), et d'autre part, elle fournit une interface d'écriture du fournisseur. paquets.

Avant de commencer à comprendre le module lui-même, vous devez prêter attention à plusieurs définitions étroitement liées à cette technologie, à savoir :

  • Sac plastique. En un mot, un package est un programme compilé et installé à partir d’une source spécifique à l’aide de n’importe quel système de gestion de packages disponible. En règle générale, un package fournit du code compilé, avec des méta-informations supplémentaires, qui peuvent inclure une description du package, sa version ou des « dépendances ». Un système de gestion de packages, par exemple, pour mettre à jour automatiquement un produit logiciel vers une nouvelle version afin de garantir que toutes les dépendances des packages sont installées, doit traiter ces méta-informations et, si nécessaire, doit installer automatiquement tous les packages manquants ;
  • Dépôt. Selon Wikipédia, les référentiels sont des lieux où les données sont stockées et conservées. Le plus souvent, les données d'un référentiel sont stockées sous forme de fichiers disponibles pour une distribution ultérieure sur le réseau. Les référentiels étaient à l'origine utilisés par les systèmes Linux pour permettre l'installation des packages nécessaires à l'exécution du système à partir d'autres emplacements. La plupart des référentiels sont gratuits, mais certaines entreprises donnent accès à leurs propres référentiels moyennant un abonnement payant. Nous parlerons des référentiels OneGet un peu plus bas ;
  • Directeur chargé d'emballage. Il s'agit d'un ensemble d'outils logiciels chargés d'automatiser le processus d'installation, de mise à jour, de configuration et de désinstallation des progiciels. En règle générale, les packages incluent une base de données qui spécifie les prérequis et les dépendances des logiciels, ainsi que des informations sur la version du produit pour empêcher l'utilisation de logiciels défectueux. Les gestionnaires de packages incluent Linux apt-get ou NuGet, qui sont apparus plus tard sur les systèmes Windows. À son tour, OnetGet est une extension logique de NuGet, fonctionnant comme un agrégateur pour tous les gestionnaires de packages disponibles, appelés fournisseurs.

Microsoft limite initialement l'utilisation de la plupart des fournisseurs disponibles en fournissant un ensemble de base qui vous permet de découvrir et d'installer des fournisseurs supplémentaires pour gérer vos logiciels. Parmi les fournisseurs de base figurent :

  • Amorcer– un fournisseur qui vous permet de découvrir d’autres fournisseurs ;
  • MSI– un fournisseur conçu pour traiter les fichiers MSI ;
  • M.S.U.– à son tour, le fournisseur chargé du traitement des fichiers de mise à jour Microsoft ;
  • ARP(Ajout/Suppression de programmes) – un fournisseur responsable des données d'inventaire sur tout produit logiciel enregistré dans le composant « Supprimer ou modifier un programme » du système ;
  • PowerShellObtenir– Un fournisseur qui vous permet de gérer différents modules PowerShell.

Une liste complète des fournisseurs OneGet avec leurs brèves descriptions peut être trouvée sur le lien suivant.

Le module OneGet lui-même comprend 10 applets de commande Windows PowerShell, dont la plupart seront abordées dans la section suivante de cet article. Ces applets de commande incluent :

  • Find-Package – recherche de packages ;
  • Get-Package – renvoie une liste de tous les packages installés sur l'ordinateur ;
  • Get-PackageProvider – renvoie une liste des fournisseurs connectés à OneGet sur cet ordinateur ;
  • Get-PackageSource - Renvoie une liste des sources de packages enregistrées pour un fournisseur de packages spécifique ;
  • Install-Package – vous permet d'installer un ou plusieurs produits logiciels ;
  • Register-PackageSource – ajout d'une source de package pour le fournisseur de package spécifié ;
  • Save-Package – vous permet d'enregistrer un package sur votre ordinateur local sans installation ultérieure ;
  • Set-PackageSource – modifie la source du package pour le fournisseur de package spécifié ;
  • Désinstallation-Package – suppression d'un ou plusieurs packages logiciels ;
  • Unregister-PackageSource – supprime une source de package enregistrée.
    • Installer un logiciel à l'aide de OneGet

      Le moment est maintenant venu de procéder au processus d’installation du logiciel lui-même. Ensuite, vous verrez comment installer un fournisseur de packages, trouver le logiciel requis, l'installer, ainsi que comment supprimer une application inutile et télécharger le package d'installation du produit logiciel sur votre ordinateur. Commençons dans l'ordre.

      Installation du fournisseur de packages Chocolatey

  1. Ouvrez Windows PowerShell et exécutez la commande pour afficher une liste des sources de packages enregistrées auprès de OneGet sur votre ordinateur local. Obtenir-PackageSource. Notez que si vous spécifiez un fournisseur de package spécifique dans la commande, la cmdlet Get-PackageSource vous montrera uniquement les sources associées au fournisseur que vous avez spécifié. Sinon, la commande renvoie toutes les sources de packages enregistrées auprès de OneGet. Puisque nous devons afficher les sources des packages pour tous les fournisseurs, la commande sera exécutée sans aucun paramètre supplémentaire. N'oubliez pas qu'à ce stade, vous disposez d'un fournisseur de packages supplémentaire qui sera utilisé pour installer des produits logiciels qui n'ont pas encore été installés. Vous pouvez voir le résultat de la commande dans l'image suivante :

  2. Comme vous pouvez le voir sur l'illustration précédente, le fournisseur Chocolatey n'est pas installé sur notre machine locale. Il faut donc corriger cela. Notez que pour ajouter un fournisseur de packages, ExecutionPolicy de PowerShell doit être défini sur Libre. Sinon, vous ne pourrez pas ajouter le fournisseur. Permettez-moi de vous rappeler que l'applet de commande Obtenir-ExecutionPolicy Permet d'afficher les politiques d'exécution pour la session en cours. La stratégie d'exécution fait partie de la stratégie de sécurité de Windows PowerShell qui détermine si les fichiers de configuration peuvent être chargés et les scripts peuvent être exécutés, et quels scripts nécessitent une signature numérique pour s'exécuter. La valeur par défaut est " Limité"(ne charge pas les fichiers de configuration et n'exécute pas de scripts), donc si vous n'avez pas modifié la valeur de la politique d'exécution, exécutez la commande Définir la politique d'exécution sans restriction. Étant donné que la portée de la stratégie d'exécution par défaut est LocalMachine, de sorte que les paramètres de stratégie s'appliquent uniquement à l'utilisateur actuel, vous pouvez également ajouter un paramètre à la commande que vous appliquez. -Portée avec du sens Utilisateur actuel. Le résultat de ces deux commandes est visible dans l’illustration suivante :

  3. À ce stade, nous pouvons voir la liste des fournisseurs enregistrés auprès de OneGet sur l’ordinateur actuel. Pour ce faire, vous pouvez utiliser l'applet de commande Get-PackageProvider. Cette applet de commande, comme je l'ai mentionné un peu plus haut, renvoie une liste des fournisseurs de packages déjà connectés à OneGet. Vous pouvez éventuellement filtrer les résultats en fonction de tout ou partie d'un ou plusieurs noms de fournisseurs. Par exemple, pour voir quels fournisseurs sont actuellement connectés, vous exécuterez l'applet de commande Get-PackageProvider sans aucun paramètre supplémentaire. Comme vous pouvez le voir sur l'illustration suivante, j'avais au départ 4 de ces fournisseurs connectés à mon ordinateur, dont je vous ai déjà parlé aujourd'hui. Maintenant, pour installer le fournisseur Chocolatey sur votre ordinateur, vous devez exécuter la commande Get-PackageProvider – Nom Chocolatey – ForceBootstrap, où le paramètre –ForceBootstrap est responsable de l'installation automatique du fournisseur. Notez qu'en général, lorsque vous installez le fournisseur Chocolatey, le fournisseur NuGet doit également être installé. Comme vous pouvez le voir dans l'illustration suivante, après avoir réutilisé l'applet de commande Get-PackageProvider, le fournisseur que nous installons devrait déjà apparaître dans la liste :

Nous pouvons désormais générer une liste complète de tous les packages disponibles chez les fournisseurs et la rediriger vers l'applet de commande. Exporter-CliXML pour créer une représentation XML des objets et les enregistrer dans un fichier XML. Veuillez noter que la liste que vous exportez changera constamment et qu'au fil du temps, de plus en plus de packages seront ajoutés aux référentiels que vous utilisez. Pensez donc à remplacer de temps en temps le fichier que vous exportez. Afin d'exporter une liste de packages et d'enregistrer cette liste dans le dossier C:\TestPosh, vous devez exécuter la commande suivante : Rechercher-Package | Exporter-CliXML C:\TestPosh\Test.xml

Veuillez noter que la procédure d'exportation vous prendra certainement un certain temps. Une fois l'exécution de la commande terminée et un fichier XML créé sur votre ordinateur, importez-le et, pour faciliter la visualisation, utilisez le pipeline et la commande Vue Grille, qui se charge d'afficher les résultats de l'exécution de la commande dans la fenêtre sous forme de tableau interactif, vous pouvez voir quels packages seront disponibles pour l'installation. Naturellement, vous pouvez ouvrir cette liste de packages à l'aide de n'importe quelle application capable de traiter des fichiers XML, par exemple en utilisant Excel. Cette commande, comme vous pouvez le voir dans l'illustration suivante, ressemble à ceci : Importer-CliXML C:\TestPosh\Test.xml | Vue hors grille

Le fournisseur étant déjà installé, vous pouvez passer à la partie suivante de cette procédure, à savoir

Installation de logiciels à l'aide de PowerShell

Avant d'installer des produits logiciels, nous devons examiner ce qui est déjà installé sur l'ordinateur. Pour effectuer cette tâche, vous pouvez utiliser l'applet de commande Obtenir le package, qui renvoie une liste de tous les packages logiciels installés sur l'ordinateur local, via OneGet ou d'autres outils d'installation d'applications. En option, vous pouvez également exécuter l'applet de commande Obtenir le package et sur des ordinateurs distants en l'exécutant dans le cadre d'une commande Invoke-Command, d'une commande Enter-PSSession ou d'un script.

Si vous souhaitez obtenir des informations sur un logiciel spécifique, par exemple sur les produits Microsoft Office 2013 installés, vous pouvez utiliser le paramètre –Name avec la valeur appropriée avec cette applet de commande, par exemple : Get-Package -Nom "Office 2013". Le résultat de cette applet de commande est visible ci-dessous :

Avant d'installer le logiciel, essayons de décider ce que nous devons installer. Étant donné que seuls Office 2013 et quelques autres applications sont installés sur la machine, je vais vous montrer comment installer des produits logiciels tels qu'Adobe Creative Cloud, Adobe Reader, Notepad++, ainsi que Process Explorer, Process Monitor et WinRar.

Étant donné qu'avant le processus d'installation, nous devons localiser les packages eux-mêmes, nous devons utiliser les capacités de l'applet de commande. Rechercher un package. Comme vous l'avez déjà remarqué un peu plus tôt, cette applet de commande permet de rechercher des packages d'installation dans les sources de packages disponibles sur l'ordinateur local. Si vous n'utilisez aucun paramètre avec cette applet de commande, la commande affichera une liste complète de toutes les applications, comme indiqué précédemment.

Par exemple, essayons d'abord de trouver les applications Adobe disponibles pour l'installation auprès du fournisseur Chocolatey que nous avons ajouté. Pour ce faire, en plus de l'applet de commande elle-même, il suffit de préciser le paramètre -Nom et entrez le produit logiciel souhaité comme valeur. Étant donné que les packages d'installation peuvent avoir un nom de produit après le mot Adobe, vous devez saisir le nom du produit comme suit : Adobe*, comme le montre l’illustration suivante. Comme vous pouvez le constater, le module OneGet a détecté le package d'installation suivant dans le référentiel : Adobe Creative Cloud version 1.0. En principe, c'est l'un des produits que vous recherchez, ce qui signifie qu'il doit être installé. Pour ce faire, comme le montre également l'illustration suivante, vous devez utiliser les capacités de l'applet de commande. Installer le paquet. Pour installer Creative Cloud, exécutez la commande suivante Package d'installation -Nom Adobe-creative-cloud –Force, où le paramètre Force, comme cela est courant dans PowerShell, remplace les restrictions qui empêchent l'exécution de la commande jusqu'à ce que les modifications commencent à violer les exigences de sécurité. Le résultat de ces commandes est visible dans l’illustration suivante :

Maintenant, une fois le premier logiciel installé, essayons de rechercher une version spécifique d'Adobe Reader. Pour ce faire, en plus de la commande déjà connue Rechercher un package – Nom AdobeReader le paramètre doit être ajouté -Toutes les versions qui renvoie toutes les versions disponibles d'un package, ou toutes les versions d'un package qui se trouvent dans la plage spécifiée dans les paramètres Version minimale Et Version maximale. Veuillez noter que ce paramètre est facultatif, puisque la recherche affiche initialement la dernière version du produit logiciel. Maintenant, parmi toutes les versions disponibles, nous devons sélectionner celle qui doit être installée sur l'ordinateur, par exemple, que ce soit la version 2015.007.20033 . afin d'installer cette version particulière du lecteur, suivez la commande Package d'installation -Nom AdobeReader ajouter un paramètre –Version requise avec du sens 2015.007.20033 , qui spécifie la version exacte du package que vous souhaitez installer. Vous pouvez également installer la version maximale disponible du produit en ajoutant le paramètre Version maximale avec la signification correspondante. Le résultat de ces commandes est visible dans l’illustration suivante :

Si vous devez installer la dernière version d'un produit logiciel et que vous ne souhaitez pas saisir plusieurs commandes dans PowerShell, vous pouvez généraliser la recherche et l'installation de packages à l'aide d'un pipeline. Par exemple, si vous installez la dernière version de l'éditeur de texte Notepad++, vous pouvez exécuter la commande suivante : Find-Package -Name NotepadPlusPlus | Package d'installation – Force. Ainsi, vous recherchez un package dans le référentiel et, si vous trouvez un résultat, vous l'installez immédiatement en mode silencieux. Le processus d'installation de ce produit logiciel est indiqué ci-dessous :

Maintenant que, selon la tâche ci-dessus, il reste à installer Process Explorer, Process Monitor et WinRar, essayons d'installer plusieurs logiciels à la fois. Pour ce faire, il est conseillé de savoir exactement comment sont appelés ces packages dans le référentiel lui-même. Comme je l'ai écrit plus tôt, cela peut être vérifié à l'aide de l'applet de commande Rechercher-Package | Vue hors grille. Une fois les noms des packages connus, vous pouvez procéder à l’installation elle-même. Pour ce faire, vous pouvez exécuter la commande suivante : Find-Package -Nom procexp, procmon, winrar | Installer le paquet. Dans cet exemple, comme vous pouvez le voir dans l'illustration suivante, je ne précise pas spécifiquement le paramètre Forcer afin que vous puissiez prêter attention à l'ensemble du processus d'installation de plusieurs progiciels en même temps.

Sauvegarde et suppression de programmes

Les deux dernières applets de commande qui seront abordées dans cet article sont responsables de l'enregistrement du package d'installation et de la suppression du programme installé. Commençons par économiser.

Afin de sauvegarder le package d'installation, vous pouvez utiliser l'applet de commande suivante du module OneGet, à savoir le module Sauvegarder le package. Cette applet de commande vous permet d'enregistrer des packages sur votre ordinateur local sans les installer ultérieurement. Par défaut, cette applet de commande enregistre la dernière version du produit logiciel, mais si vous ajoutez le paramètre à l'applet de commande actuelle Toutes les versions, toutes les versions du programme que vous avez sélectionné seront enregistrées sur votre ordinateur. De plus, similaire aux paramètres des applets de commande des programmes de recherche et d'installation, en plus de sauvegarder toutes les versions, en utilisant les paramètres -Version maximale Et –Version minimale, vous pouvez également sélectionner la plage de versions de package que vous souhaitez conserver. Pour enregistrer le package sur votre ordinateur, en plus de l'option Nom et, si nécessaire, un paramètre responsable de la version du produit, vous devez préciser le paramètre Chemin avec la future localisation de votre installateur.

Comme vous pouvez le voir dans l'illustration suivante, la commande Save-Package –Nom Procexp –Chemin C:\TestPosh enregistrera la dernière version de Process Explorer dans le dossier C:\TestPosh :

Si vous avez accidentellement installé le mauvais package, vous pouvez toujours utiliser le module OneGet pour le supprimer. L'applet de commande est utilisée pour cela Package de désinstallation. Comme pour le reste des applets de commande de ce module, pour supprimer un programme, vous devez spécifier le paramètre Name avec le nom de l'application correspondant et, pour une suppression silencieuse, vous pouvez également utiliser le paramètre Force. Par exemple, pour supprimer WinRAR précédemment installé de votre ordinateur, vous devez exécuter la commande suivante : Désinstallation-Package –Nom WinRAR –Force comme ci-dessous :

Conclusion

Grâce à cet article, vous avez découvert l'une des fonctionnalités du nouveau système d'exploitation de Microsoft, à savoir l'installation de produits logiciels à l'aide du shell de commande Windows PowerShell. Je vous ai parlé du module OneGet lui-même, de la terminologie de base utilisée avec cette technologie et des fournisseurs de packages préinstallés. Vous avez appris comment connecter un fournisseur de packages tiers à OneGet et comment il peut vous aider à rechercher, installer, enregistrer et désinstaller des logiciels.

J'espère que ces informations vous ont été utiles et que vous avez appris quelque chose de nouveau. Si vous avez des questions sur le contenu de cet article, posez-les dans les commentaires, je serai heureux de vous aider.

VN:F

Note : 9,9/ 10 (18 suffrages exprimés)

Installation de programmes à l'aide de PowerShell sous Windows 10, 9,9 sur 10 sur la base de 18 notes

Bonjour. =)
Un autre article dégoûtant sur l'administration de Windows Server est consacré à la préparation initiale du système d'exploitation à utiliser. Gâché par le fait que dans la version de base de Windows Server avec GUI (interface utilisateur graphique), ainsi que dans Windows Server 2012 Core et supérieur, Powershell est déjà installé, j'ai été très intrigué par le fait que dans Windows Server 2008R2 Core il y a il n'y a pas d'odeur. Parce que La configuration n'était pas très évidente et j'ai dû surfer sur Google et Technet, j'ai décidé de noter une petite note pour la suite.

Donc, d'abord, nous aurons au moins PowerShell 2.0 à notre disposition (en fait, vous pouvez ignorer cette étape en faisant tout ce qui est décrit ci-dessous dans cmd, mais j'ai commencé par ceci). Cela peut être fait de deux manières : en exécutant l'utilitaire sconfig.cmd sur la ligne de commande ou via DISM ( Service et gestion des images de déploiement) au même endroit. Le premier nous propose une interface pseudo-graphique, où au point 4 nous trouverons la possibilité d'installer PS 2.0.

Cela se fait via DISM comme suit :
dism.exe /en ligne /enable-feature:MicrosoftWindowsPowerShell

Après avoir installé PS, redémarré et reçu un outil légèrement plus adéquat à notre disposition, nous essaierons de le mettre à jour vers la version actuelle. Au moment de la rédaction, il s’agit de la version 4.0 ou de la version préliminaire 5.0. Pour moi, la version minimale utilisable est la version 3.0, qui dispose déjà de nombreuses applets de commande pour gérer les rôles et ressources serveur qui manquent dans la version 2. Windows PowerShell 3.0 nécessite .Net Framework 4.0 ou version ultérieure sur le système.
Si nous essayons d'installer .Net 4.0 maintenant, nous découvrirons que pour cela, nous avons besoin de .Net 2.0 déjà installé, qui, pour une raison quelconque, manque dans l'édition Server Core. C'est drôle, mais par habitude, après avoir téléchargé et lancé l'installateur, nous recevrons un refus d'installation et un avis sur la nécessité d'utiliser dism.exe. >_< OK, dism, так dism. Уставливается по аналогии с PS:
dism.exe /en ligne /enable-feature:NetFx2-ServerCore
dism.exe /en ligne /enable-feature:NetFx2-ServerCore-WOW64

L'étape suivante consiste à mettre à jour le .Net Framework vers la dernière version. Si vous souhaitez utiliser Powershell 3.0, installez .Net 4.0, mais si vous souhaitez la dernière version, vous aurez besoin de .Net 4.5.1 et supérieur. Le choix vous appartient ; l’installation est extrêmement simple. Le seul problème pourrait être la réception du package d'installation - j'ai connecté un lecteur réseau au serveur, sur lequel j'ai téléchargé tous les fichiers d'installation ; vous pouvez utiliser n’importe quel support de stockage qui vous convient.

Nous avons donc préparé la base pour l'installation de PS version 3.0 et supérieure. L'étape suivante consiste à télécharger le programme d'installation de Windows Management Framework et à l'installer. Téléchargez et exécutez KB2819745 de l'architecture dont nous avons besoin :

Traditionnellement, après l'installation, nous aurons besoin d'un redémarrage ; une fois celui-ci terminé, nous aurons PowerShell 4.0 à notre disposition.

À propos, afin de pouvoir utiliser l'applet de commande Add-WindowsFeature (renommée Install-WindowsFeature dans Windows Server 2012) pour configurer les rôles de serveur, vous devrez installer les composants du gestionnaire de serveur via le même DISM.EXE. Cela ressemble à ceci :
dism.exe /online /enable-feature:ServerManager-PSH-Cmdlet s
En général, je suis très gâté par les dernières versions de PS, car... J'ai commencé à travailler dessus après la sortie de la troisième version, mais il s'est avéré que vous ne pouvez utiliser dism.exe que pour installer des rôles. Et si vous ne connaissez pas le nom de la fonctionnalité dont vous avez besoin, vous pouvez toujours consulter toutes les options disponibles et leur statut via le paramètre /get-features. Mais à mon avis, Get-WindowsFeature est beaucoup plus informatif. =)
dism.exe /en ligne /get-features contre. Fonctionnalité Get-Windows

Windows PowerShell est un puissant shell de ligne de commande et un langage de script conçu pour l'administration système. Windows PowerShell est un excellent outil pour gérer et automatiser l'administration du système d'exploitation Windows, ainsi que des applications exécutées sous Windows.

J'étais un fervent fan des scripts VBS. Parce que j'ai remarqué que pour les tâches pour lesquelles j'utilisais auparavant Delphi, le langage de script vbs est tout à fait adapté. Après tout, il est beaucoup plus pratique d'ouvrir simplement un bloc-notes, d'y ajouter quelques lignes, d'enregistrer le fichier avec l'extension souhaitée et d'exécuter le script. Pour ce faire, vous n'avez pas besoin d'installer quoi que ce soit, comme Delphi, qui est également payant.

Bien que vbs ne soit pas mauvais, son successeur PowerShell a des fonctionnalités beaucoup plus larges.

J'ai un script VBS qui publie automatiquement des images sur l'un des blogs. Il était nécessaire d'aligner l'image en largeur ou en hauteur, en fonction de la résolution de l'image ajoutée. Et donc je n'ai pas pu obtenir la résolution des images à l'aide d'un script vbs, mais cela se fait très simplement via PowerShell.

Si À partir de Windows 7, PowerShell est fourni avec Windows lui-même., puis sous Windows XP, vous devez le télécharger et l'installer - télécharger PowerShell V2 pour Windows XP SP3.

La 5ème version de Powershell est téléchargeable à partir du lien : microsoft.com, elle décrit également quel fichier télécharger pour l'OS souhaité et comment l'installer.

Comment autoriser l’exécution de scripts PowerShell locaux ?

Par défaut, Windows n'autorisera pas l'exécution des scripts PowerShell pour des raisons de sécurité. Vous devez autoriser l'exécution des scripts locaux. Exécutez la commande dans la console (elle permettra d'exécuter des scripts locaux et des scripts téléchargés signés avec un certificat de confiance) :

powershell -Command Set-ExecutionPolicy RemoteSigned

Sinon, lorsque vous tenterez d'exécuter votre script, vous verrez ce texte :

Le fichier C:\ImageSize.ps1 ne peut pas être chargé car l'exécution de script n'est pas autorisée sur ce système. Tapez « get-help about_signing » pour plus d’informations.
+ CategoryInfo : NotSpecified : (:), ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RuntimeException

Pour modifier cette politique de sécurité, écrivez :

powershell -Command Set-ExecutionPolicy restreint

Pour permettre l'exécution de scripts sans vérifier la signature, écrivez :

powershell -Command Set-ExecutionPolicy sans restriction

Si vous voyez le message suivant lors de l'exécution du script :

Avertissement de sécurité Exécutez uniquement les scripts auxquels vous faites confiance. Bien que les scripts provenant d'Internet puissent être utiles, ce script peut potentiellement endommager votre ordinateur. Voulez-vous exécuter \server\scripts\my.ps1 ? [D] Ne pas exécuter [R] Exécuter une fois [S] Suspendre [?] Aide (la valeur par défaut est "D") : d

Et si vous souhaitez vous en débarrasser, lors de l'exécution du script, utilisez le paramètre -ExecutionPolicy Bypass

Powershell -ExecutionPolicy Bypass -fichier "\\server\scripts\my.ps1"

Comment exécuter un script PowerShell ?

Entrez la commande sur la ligne de commande

Powershell -Fichiez votre-nom-script.ps1

Où your-script-name.ps1 est le nom de votre script. Les fichiers de script PowerShell ont l'extension *.ps1

Aide ou Aide Windows PowerShell

PowerShell dispose de diverses applets de commande permettant d'obtenir une aide spécifique. Mais le plus important est : Obtenez de l'aide

Entrez les commandes dans la console :

powershell -command Obtenir de l'aide

powershell -command Get-Help -?

Et vous recevrez deux descriptions différentes qui se complètent sur la manière d'utiliser l'aide.

Les options d'aide sont assez étendues, avec des exemples et des descriptions détaillées en russe. Par conséquent, vous pouvez l’afficher sous différents formats.

Par exemple:

  • powershell -command Get-Help Get-Help - aide générale pour l'applet de commande Get-Help
  • powershell -command get-help Get-Help -examples - exemples d'utilisation de l'applet de commande get-help
  • powershell -command get-help Get-Help -detailed - aide détaillée pour l'applet de commande get-help
  • powershell -command get-help Get-Help -full - l'aide la plus complète pour l'applet de commande get-help

winintro.ru/windowspowershellhelp.ru/ - aide sous forme de livre html

Remarques sur Windows Powershell :

Opérateurs de comparaison

  • -eq - Égal - Égal
  • -ne - Pas égal - Pas égal
  • -ge - Supérieur ou égal - Plus ou égal
  • -gt - Supérieur à - Plus
  • -lt - Moins que - Moins
  • -le - Inférieur ou égal - Inférieur ou égal
  • -like - Comparaison de caractères génériques - Utilisation de caractères génériques pour correspondre à un modèle
  • -notlike - Comparaison de caractères génériques - Utiliser des caractères génériques pour correspondre à un modèle
  • -match - Comparaison d'expressions régulières - Utiliser des expressions régulières pour faire correspondre un modèle
  • -notmatch - Comparaison d'expressions régulières - Utilisez des expressions régulières pour trouver une correspondance de modèle
  • -replace - Remplacer l'opérateur - Remplace une partie ou la totalité de la valeur à gauche de l'opérateur
  • -contains - Opérateur de confinement - Détermine si la valeur à gauche de l'opérateur contient la valeur à droite. Le résultat est une valeur booléenne
  • -notcontains - Opérateur de confinement - Détermine que la valeur à gauche de l'opérateur ne contient pas la valeur à droite. Le résultat est une valeur booléenne

Par défaut, les opérateurs de comparaison ne sont pas sensibles à la casse.
Pour une comparaison sensible à la casse, la commande est préfixée par « c ». Par exemple, l'opérateur -eq, sensible à la casse, est remplacé par "-ceq".
Pour une comparaison explicite ne respectant pas la casse, la commande est préfixée par « i ». Exemple : l'opérateur -replace insensible à la casse serait -ireplace

  • -is - Est un type
  • -isnot - N'est pas un type
  • -as - En tant que type, aucune erreur si la conversion échoue

Opérateurs logiques PowerShell :

  • -et - Les deux conditions doivent être vraies pour que l'expression soit vraie
  • -ou - Une ou les deux conditions doivent être vraies pour que l'expression soit vraie
  • -xor - Une condition doit être vraie et la seconde doit être fausse pour que l'expression soit vraie
  • -not - Les conditions spécifiées doivent être évaluées comme fausses pour que l'expression soit vraie
  • ! - La condition spécifiée doit être évaluée comme fausse pour que l'expression soit vraie

$maVar -est "Chaîne" $maVar -eq 123 $maVar -ceq $maVar2 "abcdef" -comme "abc*" "abcdef" -remplacer "dEf","xyz" $maVar1 -est "Chaîne" -et $maVar2 -est "Int" (1 -eq 1) -et -pas (2 -gt 2)

Opérations sur les chaînes

#Diviser une chaîne par espaces : $string = "Test string" $string.split(" ") $string.IndexOf(" ") #Rechercher le premier espace dans $string # Renvoie l'index de base zéro de la première occurrence of PS> "abcdeabcde". indexOf("cde") 2 # Renvoie la position d'index comptée depuis la dernière occurrence du caractère spécifié PS> "abcdeabcde".lastIndexOf("c") 7 # Renvoie la sous-chaîne à partir de la position 1 PS > "abcdefgh".Substring(1) bcdefgh # Renvoie une sous-chaîne commençant à la position 1 et longue de 4 caractères PS> "abcdefgh".Substring(1,4) bcde # Insertion d'une sous-chaîne à partir de la position 0 PS> "abcdefgh".insert( 0,"X") Xabcdeabcde # Suppression de la position 0 longueur 2 PS> "abcdefgh".remove(0,2) cdeabcde # Propriété de l'objet - longueur de la chaîne PS> "abcdefgh".longueur 8 # Renvoie True si la chaîne contient la sous-chaîne "cde" PS> "abcdefgh" .Contains("cde ") True # Renvoie True si la chaîne commence par la sous-chaîne "abc" PS> "abcdefgh".startsWith("abc") True # Renvoie True si la chaîne se termine par la sous-chaîne "fgh" PS> "abcdefgh".endsWith("fgh" ) True # Renvoie True si la chaîne contient la sous-chaîne "cde" PS> $"abcdefgh" -like "*cde*" True # Renvoie un tableau où " d" est le délimiteur PS> "abcdefgh" -split "d" abc efgh # Renvoie une chaîne concaténée de deux ":" - délimiteur PS> "abcdefgh", "xyz"-join ";" abcdefgh;xyz # Renvoie une chaîne où "abc" sera remplacé par "XYZ" PS> "abcdefgh".replace("abc","XYZ") XYZdefgh # Renvoie une chaîne où les caractères sont convertis en MAJUSCULES PS> "abcdefgh" .ToUpper() ABCDEFGH # Renvoie une chaîne où les caractères sont convertis en minuscules PS> "ABCDEFGH".ToLower() abcdefgh

Variables prédéfinies

$maison– répertoire des utilisateurs
$NULL- vide
$vrai- vrai
$faux– loge
$DebugPréférence– « Continuer » affiche les informations de débogage, « SilentlyContinue » n'affiche pas les informations de débogage. Voir la commande Write-Debug

Travailler avec des fichiers

$chaîne | Out-File $file -Append #Ajouter $string avec une nouvelle ligne au fichier $file $string = get-content -Path $file #Obtenir le contenu du fichier dans $string $file $jokes = ::ReadAllText($ fichier) #lire le fichier entier sur une seule ligne Test-Path "C:\test.txt" #Vérifier l'existence du fichier

Recherchez tous les fichiers avec une extension d'extension spécifique dans un répertoire et des sous-répertoires.
Copiez ensuite ces fichiers dans un autre répertoire.

$flist = get-childitem e:\doc\* -include *.pdf -recurse $flist | ForEach-Object($_.CopyTo("e:\doc\all_pdf\" + $_.PSChildName)) ls d:\ | ?($_.psisconteneur) | select fullname #Afficher les répertoires uniquement ls d:\ | ?(!$_.psiscontainer) | select fullname #Afficher uniquement les fichiers $local = Get-Location #Répertoire actuel $local.Path # Répertoire de travail $local.Drive.Root # Racine $local.Drive.Name # Lettre de lecteur $local.Drive.Used # Lecteur utilisé $local .Drive.Free # Gratuit sur le disque

Affichage des noms complets des fichiers sur le lecteur D : qui ont changé entre le 1er juin 2014 et le 20 septembre 2014 :

Ls d:\ -récurse | ?(!$_.psiscontainer) | sélectionnez le nom complet, LastWriteTime | Where-Object ( $_.LastWriteTime -ge "06/01/2014" -et $_.LastWriteTime -le "20/09/2014")

Afficher du texte à l'écran

# texte auquel prêter attention. Surligné en jaune. Write-Warning("Texte qui nécessite une attention") # Affiche simplement le texte Write-Host("Juste du texte") #sortie des informations de débogage activée $DebugPreference = "Continuer" # sortie des informations de débogage Write-Debug "Impossible d'ouvrir le fichier." # sortie de débogage désactivée $DebugPreference = "SilentlyContinue"

Pause pendant quelques secondes

Start-Sleep -s 15 # Pause pendant 15 secondes

Mettez la console en pause jusqu'à ce que vous appuyiez sur Entrée

Hôte de lecture "Appuyez sur Entrée"

Travailler avec des processus

#Tâche : tuer tous les processus nommés Notepad # Méthode n°1 get-process Notepad | Stop-Process # Méthode n°2 (ne fonctionne qu'avec un seul processus) $plist = get-process Notepad $plist.Kill() # Méthode n°3 (identique à 2, mais tous les processus) $plist = get-process Notepad $ plist | ForEach-Object ($_.Kill()) #Obtenir les processus et leurs dates de début : Get-Process| Format-Nom de la table, StartTime -AutoSize

Incrément

$i++ - au moment de l'appel, i a l'ancienne valeur, mais après cela, elle est augmentée de 1++

++$i - au moment de l'appel, i est augmenté de 1

Tableaux

$array = 17,15,160 #créé un tableau de trois éléments $array -contient $element #le tableau contient-il l'élément $file1 #0ème élément du tableau $file1.count #taille du tableau #suppression de l'élément "asdf" du array $array = @ ("adsf","adf","erge") $array = $array |? ($_ -ne "adf") #obtenir uniquement des éléments de tableau uniques $a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | select -uniq #index de la première occurrence d'un élément dans le tableau $array.indexOf("cde")

Si Elseif Else construction

if ($i -eq 0) ( Write-Host("i est zéro") ) ElseIf ($i -eq 1) ( Write-Host("i est un") ) Else ( Write-Host("i n'est pas égal à zéro ou un")

Boucle ForEach

$services = Get-Service ForEach ($service dans $services) ( $service.Stop() ) 65 #convertir le code ASCII en caractère "A" #convertir le caractère en code ASCII "Bonjour" #convertir la chaîne en codes ASCII

Nous attendons qu'une touche soit enfoncée :

$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL $HOST.UI.RawUI.Flushinputbuffer() $host.ui.RawUI.WindowTitle = "elimS Titre de la fenêtre" #задаем заголовок окна !}

Types de données dans PowerShell

Types les plus courants :

Chaîne de caractères Unicode de longueur fixe Un caractère Unicode de 16 bits Un caractère non signé de 8 bits Un entier signé de 32 bits Un entier signé de 64 bits Une valeur booléenne Vrai/Faux Une valeur décimale de 128 bits Un nombre à virgule flottante de 32 bits en simple précision Double -précision Nombre à virgule flottante 64 bits Date et heure Objet XML Un tableau de valeurs Objet Hashtable

Il existe également ces constantes intégrées : $true,$faux, $nul

Unicode : Pour encoder un caractère Unicode dans une chaîne PowerShell, préfixez l'Unicode avec 0x et convertissez-le en System.Char :

PS> 0x263a ☺

Conversion de types de données

Pour forcer une conversion vers un type de données spécifique, préfixez la valeur ou la variable avec le type entre crochets, c'est ce qu'on appelle un Opérateur de casting et force le type de données choisi :

PS C:\> "0064" 64 PS C:\> $false 0 PS C:\> ("0x" + "FF") 255

Test des types de données

PS C:\>32 -est
Vrai PS C:\> $true -is
Vrai

Fonctions dans Powershell

function elimS ( #fonction ayant plusieurs paramètres d'entrée param($string = "valeur par défaut", $integer = 7) #paramètres d'entrée write-host "string = " $string " | integer = " $integer ) elimS #appel de fonction sans définition des paramètres, les paramètres prendront la valeur par défaut $string = "test string" $integer = 911 elimS $string $integer #voici comment appeler correctement la fonction - on sépare les paramètres par un espace elimS -integer $integer -string $string #c'est également correct $global:var1 = "test" est une variable globale, vous pouvez donc transmettre la valeur des variables des fonctions.

En savoir plus sur la façon de transmettre plusieurs paramètres à une fonction :

Repos

get-host #show powershell version Clear-RecycleBin c: -Force #vider la corbeille Compress-Archive -Path C:\test\* -DestinationPath C:\archive\test1.zip #archiver le dossier Expand-Archive -Path C :\temp \test1.zip "C:\test\Nouveau dossier\" #décompresser l'archive (Get-CimInstance Win32_operatingSystem).lastbootuptime #afficher l'heure de démarrage du système en écriture-hôte $sleep_array.GetType().FullName #afficher le commutateur de type de variable ($a) ( #case - multiple si 1 ($b = $b+10 ) 2 ($b = $b+20 ) 3 ($b = $b+30 ) 4 ($b = $b+40 ) par défaut ($b = $b+50) ) Get-Content -Path "C:\scripts\test.txt" -Wait #analogue of tail sous Linux

Applets de commande PowerShell

Objet de tri- trie les objets par ordre croissant ou décroissant en fonction des valeurs des propriétés des objets. Vous pouvez définir une ou plusieurs propriétés (tri par plusieurs clés) et choisir de trier par sensibilité à la casse ou par insensibilité à la casse. Vous pouvez également faire en sorte que l'applet de commande Sort-Object affiche uniquement les objets avec des valeurs uniques pour une propriété donnée.

Copier l'article- copie un élément d'un emplacement de l'espace de noms à un autre. La cmdlet Copy-Item ne supprime pas les éléments copiés. Les types d'éléments que l'applet de commande peut copier sont déterminés par la disponibilité des fournisseurs Windows PowerShell. Par exemple, lorsque vous utilisez l'applet de commande avec le fournisseur FileSystem, les fichiers et les dossiers sont copiés, et lorsque vous utilisez le fournisseur de registre, les clés et entrées de registre sont copiées.

Déplacer l'élément- Déplace un élément, y compris ses propriétés, son contenu et ses enfants, d'un emplacement à un autre. Les deux emplacements donnés doivent être pris en charge par le même fournisseur. Par exemple, vous pouvez déplacer un fichier ou un sous-répertoire d’un répertoire à un autre, ou vous pouvez déplacer une sous-clé de registre d’une clé à une autre. Lorsque vous déplacez un élément, il est supprimé à son emplacement d'origine et créé dans un nouvel emplacement.

Retirer l'objet- supprime un ou plusieurs éléments. Cette applet de commande est prise en charge par de nombreux fournisseurs et peut donc supprimer différents types d'éléments, notamment des fichiers, des répertoires, des clés de registre, des variables, des alias et des fonctions.

Obtenir-ChildItem- Reçoit des éléments d'emplacements donnés. Si l'élément est un conteneur, cette applet de commande récupère les éléments du conteneur, appelés éléments enfants. Vous pouvez utiliser l'option Recurse pour récupérer des éléments de tous les conteneurs enfants. L'emplacement peut être un emplacement de système de fichiers, tel qu'un répertoire, ou un emplacement fourni par un autre fournisseur, tel qu'une ruche de registre ou un magasin de certificats.

Options de l'applet de commande Powershell

-ErreurAction- le paramètre est présent dans toutes les applets de commande ; il permet de préciser l'action à effectuer lorsqu'une erreur survient :

  • Continuer - afficher un message d'erreur et poursuivre l'exécution
  • SilentlyContinue - ignorez l'erreur et continuez
  • Stop - abandonner l'exécution à la première erreur
  • Demander - si une erreur se produit, affichez une demande indiquant la marche à suivre

Exemple : Copy-Item "d:\test1\klbackup*" "d:\test2\" -ErrorAction stop

-Et si- affiche un message qui décrit le résultat d'une commande sans réellement l'exécuter. Présent dans toutes les applets de commande.

get-help about_CommonParameters- description des paramètres pouvant être utilisés avec n'importe quelle applet de commande.

SSH via PowerShell

Un exemple de la façon dont vous pouvez travailler via SSH :

#installez le module SSH, une fois Find-Module Posh-SSH | Install-Module #Créez une session SSH : Import-Module Posh-SSH $ComputerName = "1.2.3.4" $UserName = "ubuntu" $KeyFile = "C:\SSH\key.pem" $nopasswd = new-object System. Sécurité .SecureString $Crendtial = New-Object System.Management.Automation.PSCredential ($UserName, $nopasswd) $SSHSession = New-SSHSession -ComputerName $ComputerName -Credential $Crendtial -KeyFile $KeyFile #Créer un shell : $SSH = $ Session SSHS | New-SSHShellStream # envoie la commande $SSH.WriteLine("ifconfig") # lit la réponse $SSH.read() # ferme la session : $sshSession | Supprimer-SSHSession

Équipes :

  • Get-SSHTrustedHost - afficher les hôtes de confiance
  • Get-SSHSession - afficher la liste des sessions ouvertes
  • Remove-SSHSession - fermer la session

Note. Vous pouvez utiliser ce module sans installer WMF 5.0. Une version préliminaire du module pour PS 4.0 et 3.0 est disponible séparément - mars 2016, et recherchez les versions plus récentes dans le centre de téléchargement pour l'aperçu des modules PackageManagement PowerShell.

Installation de programmes

Cet exemple installe quatre programmes et un ensemble complet d'utilitaires Sysinternals à partir du référentiel Chocolatey. Les trois premières commandes sont exécutées une fois et le changement de politique doit être confirmé. La quatrième commande installe silencieusement les programmes répertoriés et la cinquième permet simplement de gagner du temps.

#Autoriser l'installation de packages signés à partir d'Internet Set-ExecutionPolicy RemoteSigned #Installer le fournisseur Chocolatey Get-PackageProvider –Name Chocolatey -ForceBootstrap #Rendre Chocolatey fiable Set-PackageSource -Name Chocolatey -Trusted #Installer les programmes Install-Package NotepadPlusPlus, vlc, firefox, filezilla, sysinternals -Verbose -Force -ProviderName chocolatey #Ajouter le chemin des fichiers exécutables (sysinternals) au PATH setx PATH "$env:path;C:\Chocolatey\bin" -m

Le fournisseur télécharge un package dans C:\Chocolatey\lib, basé sur le script chocolateyInstall.ps1. Il télécharge le programme d'installation du programme depuis le site officiel dans le dossier %temp%\Chocolatey et l'exécute en mode d'installation silencieuse. L'exemple le plus simple est Notepad++.

Install-ChocolateyPackage "notepadplusplus" "exe" "/S" "https://notepad-plus-plus.org/repository/6.x/6.9/npp.6.9.Installer.exe"

Programmes de recherche

Il existe de nombreux programmes dans les référentiels, tous les plus populaires sont définitivement là.

Find-Package "*zip*","*commander*" -ProviderName Chocolatey

Types d'installateurs et clés d'installation silencieuse

  • Site d'installation automatique de Windows et forum d'installation automatique de programmes
  • Installation des mises à jour Windows via Powershell

    • Téléchargez le module Windows Update PowerShell à partir du site Web de Microsoft.
    • Décompressez l'archive dans le dossier %WINDIR%\System32\WindowsPowerShell\v1.0\Modules
    • Si vous n'avez pas encore autorisé l'exécution de scripts locaux, faisons-le : « Set-ExecutionPolicy RemoteSigned ».
      • Vous pouvez vérifier en utilisant la commande "Get-ExecutionPolicy" : elle doit être "RemoteSigned" au lieu de "Restricted"
    • Importez le module téléchargé avec la commande : "Import-Module PSWindowsUpdate"
    • Prêt. Vous pouvez maintenant utiliser les commandes :
      • Afficher la liste des mises à jour disponibles: Get-WUInstall -ListOnly
      • Installez toutes les mises à jour sans demander de confirmation: Get-WUInstall -AcceptAll
      • Installez toutes les mises à jour sans demander de confirmation et reportez le redémarrage: Get-WUInstall -AcceptAll -IgnoreReboot
      • Installez des mises à jour spécifiques en connaissant leur numéro :"Get-WUInstall -KBArticleID KB3066441, KB3078676 -AcceptAll -IgnoreReboot" - vous n'avez plus besoin d'aller sur le site Web de Microsoft et de les télécharger manuellement
      • Aide détaillée sur le module : get-help Get-WUInstall -détaillé
      • Consultez la liste des mises à jour disponibles hors catégorie "Packs linguistiques", titres "Skype" et mise à jour KB3012973 : Get-WUInstall -NotCategory "Packs linguistiques" -NotTitle Skype -NotKBArticleID KB3012973 -ListOnly
      • Installez les mises à jour à l'exclusion de la catégorie "Packs linguistiques", des en-têtes "Skype" et de la mise à jour KB3012973 : Get-WUInstall -NotCategory "Packs linguistiques" -NotTitle Skype -NotKBArticleID KB3012973 -AcceptAll -IgnoreReboot