Python, PowerShell ou autre? [fermé]

Quels sont les avantages de Python, PowerShell et d'autres environnements de script? Nous aimerions standardiser nos scripts et utilisons actuellement les fichiers bat et cmd comme standard. Je pense que Python serait une meilleure option que ceux-ci, mais je recherche également PowerShell et d'autres outils de script.

Les scripts être utilisé pour déclencher des processus tels que wget etc d'appeler des services web ou d'autres applications/outils qui doivent s'exécuter dans un ordre spécifique spécifique paramètre.

Nous travaillons principalement avec la pile Windows, mais il y a de bonnes chances que nous ayons besoin de prendre en charge Unix à l'avenir.

31
demandé sur wonea 2009-12-02 21:26:44

8 réponses

IronPython a accès à tous les mêmes assemblys. net que n'importe quel autre langage.Net pour écrire des scripts dépendants du système sous Windows. Mais la même connaissance de Python peut être utilisée pour écrire des scripts similaires sur Linux, Solaris, BSD ou OS/X. Si vous utilisez le Python C standard sous Windows, vous pouvez accéder à tous les objets COM et il est simple de traduire des exemples VBA en code Python. Le plugin Outlook SpamBayes est un bon exemple de la mesure dans laquelle vous pouvez aller avec cela. http://spambayes.sourceforge.net/

La meilleure fonctionnalité de Python est la bibliothèque standard "batteries incluses", et même si cela n'est pas distribué avec IronPython, une grande partie de cela fonctionnera si vous pointez simplement IronPython vers le dossier de la bibliothèque installée à partir de CPython. En fait, la plupart des bibliothèques Python pures, c'est-à-dire aucun module C ou c++ compilé, fonctionneront bien avec IronPython. Sous Windows, vous avez également le choix d'installer Python via Cygwin.com ce qui vous permet alors d'utiliser beaucoup de modules qui sont normalement considérés comme UNIX uniquement. Cela peut être utile si vous devez maintenir des scripts multiplateformes et que vous préférez la cohérence plutôt que le codage de cas particulier pour chaque système d'exploitation.

Et si vous avez besoin de tirer parti de certaines classes Java, alors Jython vous permet d'utiliser le même langage Python que vous connaissez pour tirer parti de cela. Combinez cela avec un bon système de file d'attente de messages comme RabbitMQ, et vous pouvez avoir des scripts Python, Jython et IronPython sur plusieurs machines faire le travail.

Il y a aussi un grand choix de modules Python 3ème partie là-bas et vous pourriez passer plusieurs mois à chaluter à travers delicious.com avant de manquer de nouvelles découvertes. Cela signifie que lorsque vous avez besoin de quelque chose qui ne fait pas partie des bibliothèques Python standard, un peu de Googling arrive souvent avec une solution.

Certains modules Python utiles pour les scripts pour remplacer les fichiers bash, CMD et BAT sont PEXPECT http://www.noah.org/wiki/Pexpect {[2] } et Python WMI http://timgolden.me.uk/python/wmi/index.html

Mais, à la fin, Python fonctionne aussi très bien pour les scripts simples et simples qui n'ont pas besoin de fonctionnalités spéciales... encore!

14
répondu Michael Dillon 2009-12-02 22:20:30

Python fonctionne comme un excellent outil polyvalent si vous cherchez à remplacer les scripts CMD et BAT sur vos boîtes Windows,et peut également être écrit pour exécuter des scripts sur vos boîtes (L)inux. C'est un excellent langage flexible et peut gérer de nombreuses tâches que vous lui lancez.

Cela étant dit, PowerShell est un outil incroyablement polyvalent pour administrer toutes sortes de boîtes Windows; il a toute la puissance de. net, avec beaucoup plus d'interfaces dans les produits MS tels que Exchange et Active Directory, qui sont un gain de temps. Selon votre situation, vous pouvez utiliser plus de PS que d'autres langages de script simplement à cause des interfaces disponibles pour les produits MS, et je sais que MS semble s'être engagé à fournir ces API dans beaucoup de produits. PowerShell est installé sur toutes les versions actuelles de Windows (Windows 7+, Windows Server 2008+), et est assez facilement installé sur les anciennes versions.

Pour répondre à votre modification que vos scripts seront utilisés pour lancer d'autres processus, Je pensez dans ce cas, l'un ou l'autre des outils correspond à la facture. Je recommanderais PS Si vous prévoyez d'ajouter des tâches d'administration aux scripts plutôt que des appels de service, mais si vous vous en tenez à ce que vous avez décrit, Python est bon.

44
répondu MattGWagner 2018-08-10 09:06:15

Nous aimerions standardiser nos scripts et utilisons actuellement les fichiers bat et cmd comme standard.

On dirait que Windows est votre environnement prédominant.

Si c'est le cas, PowerShell serait beaucoup mieux que Python.

  • PowerShell est inclus avec Windows Serveur 2008. Pas besoin de déployer / installer Python runtime sur chaque nouveau serveur qui roule.
  • l'ensemble des logiciels liés au serveur Microsoft (Exchange, Systems Center, etc) est en train de passer aux applets de commande PowerShell pour les fonctionnalités et les extensions
  • les fournisseurs tiers (par exemple les plugins SCOM) utiliseront également les scripts/cmdlets PowerShell pour exposer les fonctionnalités

J'ai plus d'expérience avec Python que PowerShell mais l'écriture est sur le mur en ce qui concerne L'écosystème Microsoft: allez avec PowerShell. Sinon, vous allez juste aller à l'encontre du grain et interop-ing constamment entre Python et les cmdlets de tout le monde.

Juste parce que vous pouvez coder import win32com.client en Python ne le met pas sur un pied d'égalité avec PowerShell dans L'environnement Windows.

18
répondu JasDev 2012-10-27 17:08:28

Si tout ce que vous faites est de générer beaucoup de programmes spécifiques au système sans ou peu de logique de programmation, alors le shell spécifique au système d'exploitation pourrait être un meilleur choix qu'un langage de programmation général complet.

3
répondu jfs 2009-12-02 22:58:51

L'un des avantages de Python est la disponibilité de bibliothèques tierces et d'une bibliothèque standard intégrée étendue. Vous pouvez faire beaucoup de puissantes opérations rapidement et facilement avec Python sur une variété de systèmes d'exploitation et environnements. C'est l'une des raisons pour lesquelles nous utilisons Python ici au bureau non seulement comme langage de script, mais aussi pour toutes nos applications backend de base de données.

Nous l'utilisons également pour le grattage XML et HTML, en utilisant ElementTree et BeautifulSoup, qui sont très puissants et des bibliothèques spécifiques à Python flexibles pour ce genre de travail.

2
répondu Brent Newey 2009-12-02 18:46:48

Je trouve triste que personne ne mentioend encore bon vieux Perl.

2
répondu Rook 2009-12-02 19:07:05

Si vous travaillez avec des scripts basés sur le web, ActivePython D'ActiveState semble avoir beaucoup de support pour API spécifique à Windows qui vous conviendrait et il a des tonnes de grandes bibliothèques portables pour faire du travail basé sur le web.

1
répondu pokstad 2009-12-02 20:00:28

Les questions sont un peu vagues, mais Python est beaucoup plus portable que PowerShell; cependant, Python n'est pas très répandu sur Windows. Mais d'un autre côté, Je ne crois pas que les scripts PowerShell fonctionneront sur une machine Windows qui N'a pas PowerShell. Ce qui signifie qu'ils peuvent ne pas fonctionner dans le shell cmd à l'ancienne. Je pense que vous trouverez plus de documentation et de bibliothèques pour Python.

PowerShell ressemble plus à Bash qu'à un langage de programmation comme Python.

Peut-être vous pourrait expliquer ce que vous voulez faire avec vos scripts et vous obtiendrez probablement de meilleures réponses.

1
répondu jonescb 2018-08-10 09:06:52