quels sont les avantages de Powershell par rapport à cygwin / unix-shell

9

La différence évidente que je connais est la possibilité de s'interfacer avec certains produits MS, tels qu'Exchange. Mais pour celui qui n'a pas à administrer de tels produits, quels sont les avantages de Powershell? Quelles sont les raisons d'apprendre Powershell (en supposant que je parle couramment bash et cygwin)?

Moshe
la source

Réponses:

18

L'avantage le plus évident: tant qu'aucune sortie de texte (ou une commande héritée) n'est impliquée dans un pipeline, vous ne déplacez pas le texte à travers les canaux, mais des instances d'objets de framework .NET, avec toutes leurs propriétés et méthodes.

Cela permet une gestion de pipeline plus expressive et moins ambiguë qui n'est également pas influencée par les paramètres régionaux et linguistiques (par exemple, pensez aux formats de date ou de nombre et à la façon dont vous devez les traiter comme des chaînes normalement).

Cela signifie également que vous avez accès à une grande partie des capacités du framework .NET dans un environnement de script.

Tomalak
la source
6

Sans entrer dans des jugements de valeur sur le paradigme, les principaux avantages de PowerShell sont l'intégration .Net et la fonction - à partir du serveur Windows 2008, il est intégré par défaut et il est chargé dans des service packs sur 2003 et 2003 R2.

Pour être juste, il existe plusieurs autres choix pour les scripts - par exemple Perl et Python. Python vous donne également la possibilité d'utiliser IronPython si vous souhaitez une intégration native .Net. En fait, IronPython s'installera de manière satisfaisante en le déposant simplement dans un répertoire. Vous pouvez facilement le regrouper dans une application sans avoir besoin d'une étape d'installation distincte.

La force clé de Powershell est un peu une épée à double tranchant. Bien que le streaming d'objets .net soit assez utile et présente ses avantages, il pose beaucoup plus d'hypothèses sur la capacité des composants à bien jouer avec le framework. Pour que cela fonctionne vraiment, vous devez envelopper les choses avec des applets de commande. Bien que la sortie textuelle soit un peu plus faible et nécessite une analyse, elle impose moins de contraintes aux composants pour bien jouer avec le cadre.

Au fil du temps, je m'attendrais à voir beaucoup plus de l'écosystème Windows (à la fois MS et composants tiers) venir avec des wrappers de cmdlet afin qu'ils fonctionnent avec Powershell. Dans ce cas, le cas de Powershell deviendra beaucoup plus fort.

Historiquement, l'une des principales faiblesses traditionnelles de Windows du point de vue administratif a été sa faible prise en charge des scripts. MS l'a reconnu il y a plusieurs années et après quelques tentatives boiteuses (par exemple WSH), Powershell est l'effort le plus crédible de MS jusqu'à présent pour corriger cette carence.

ConcernedOfTunbridgeWells
la source
2

Je pense que la plus grande victoire pour PowerShell est que vous pouvez tout diriger vers n'importe quoi sans avoir à analyser le texte et / ou grok sed et awk. Sans mettre ces méchants objets dans l'équation, pensez à PowerShell comme ayant Sed et Awk automatiques pour lier les commandes dans un pipeline.

x0n
la source
2

Avantages: -

  1. Automatisation des tâches: - Des tâches telles que l'ajout d'un utilisateur à 1 000 machines est un travail fastidieux manuellement. Mais avec l'aide de powershell, vous devez écrire un simple script et ce script est exécuté, il configurera automatiquement tous les clients. Il permet ainsi de gagner du temps en répétant automatiquement les étapes. Les scripts de sauvegarde / restauration Windows PowerShell peuvent être développés et planifiés (avec le Planificateur de tâches Windows), tandis que l'administration centrale est utilisée pour les sauvegardes et les restaurations à usage unique. Windows PowerShell a l'avantage de s'exécuter sur des instantanés SQL au lieu de la base de données de production. L'un des paramètres de la commande Windows PowerShell entraînera la génération d'un instantané SQL, puis Windows PowerShell exécutera l'action sur l'instantané au lieu de la base de données de production. Cela réduira l'impact des ressources de l'opération de sauvegarde sur l'environnement de production. Avec Windows PowerShell, les administrateurs SharePoint auront un contrôle plus granulaire des options de sauvegarde ou de restauration.

  2. Amélioration des capacités d'accès à distance: - L'importance est double, tout d'abord, les bureaux Windows 7 peuvent communiquer avec le serveur à l'aide des commandes PowerShell. Par conséquent, les techniciens avec les ordinateurs portables Windows 7 peuvent configurer leurs serveurs à distance en exécutant des scripts PowerShell. Deuxièmement, les scripts de connexion client écrits dans PowerShell, qui résident sur le serveur, peuvent s'exécuter plus facilement sur Windows 7. En utilisant également PowerShell, nous pouvons facilement contrôler les machines distantes, effectuer des tâches importantes sur elles et appliquer facilement ces modifications à grande échelle. La connexion à distance utilise les ressources réseau. Ainsi, lorsque nous travaillons avec PowerShell, nous n'utilisons pas l'interface graphique et, par conséquent, la bande passante requise pour une certaine tâche est réduite et le problème de surcharge du réseau est résolu.

  3. Cohérence: - Si vous avez une procédure définie pour terminer une tâche, l'utilisation de Windows Powershell vous assurera de ne jamais manquer une étape, d'automatiser autant que possible et de demander à Powershell de vous indiquer ce qui ne peut pas être automatisé.

  4. Prise en charge .NET: - Powershell prend en charge le cadre .NET. Par conséquent, toutes les fonctions du système peuvent être facilement ajoutées aux scripts PowerShell et sont donc une aide au programmeur dans le développement des scripts. Ainsi, l'automatisation des tâches de VDI est beaucoup plus facile, simple et efficace.

  5. Moins de travail manuel: - L'administrateur peut désormais créer, supprimer ou modifier à distance les paramètres des machines virtuelles en écrivant simplement les scripts. Il n'a pas besoin d'aller sur le PC individuel et de faire le travail. Les scripts écrits sont également acceptables sur tous les ordinateurs. L'administrateur n'a donc pas besoin de les réécrire encore et encore.

  6. Réutilisation: - Les scripts une fois écrits pour effectuer une tâche spécifique peuvent être stockés à des fins ultérieures et peuvent également être combinés avec d'autres scripts pour effectuer différentes tâches. Les tâches répétitives peuvent donc être exécutées de manière beaucoup plus simple en exécutant simplement les scripts. Cela permet aux administrateurs de gagner du temps et de l'argent dans la configuration des machines.

  7. Prise en charge du pipeline: - La plus grande victoire pour PowerShell est que vous pouvez diriger n'importe quoi vers n'importe quoi sans avoir à analyser le texte. Vous pouvez fournir la sortie d'une commande en entrée du nouvel ensemble et ainsi résoudre les tâches complexes.


la source
0

Cygwin n'est pas garanti d'être disponible pour toutes les versions de Windows. La dernière fois que j'ai vérifié qu'il était discutable sur les machines 64 bits. Powershell devient le shell de commande par défaut pour Windows et offrira un accès "natif" à toutes les ressources sur une machine Windows.

Eric Z Beard
la source
J'utilise cygwin sur 64 bits Vista, fonctionne parfaitement.
lajos