Je continue de lire partout où PowerShell est la voie de l'avenir. Lors de sa sortie, j'ai effectué de nombreux laboratoires virtuels, mais je ne les ai toujours pas utilisés dans un environnement de production. Je sais que le jour viendra où j'aurai affaire à un système d'exploitation où il est déjà installé. Je veux donc être prêt.
Je veux savoir:
- L'utilisez vous?
- Quel a été votre processus de "démarrage" pour utiliser PowerShell?
- Quel type de tâches d'administration système avez-vous écrit avec?
- Je suis un administrateur de base de données SQL Server. Quelles sont les choses cool à faire avec ça?
Il semble que tout le monde s'accorde pour dire que Microsoft pousse cela très fort, mais personne ne l'utilise encore. Je souhaite entendre les administrateurs système qui l'utilisent pour effectuer leurs tâches quotidiennes et partager des exemples de code.
windows
windows-server-2008
windows-server-2003
sql-server
powershell
Nick Kavadias
la source
la source
Réponses:
Microsoft fait tout ce qui est en son pouvoir pour faire de PowerShell le choix des utilisateurs expérimentés et des rédacteurs d'automatisation du monde entier. L'époque de la compilation de code dans .NET est révolue pour que nous puissions faire la même chose. Désormais, vous n'avez plus besoin que de notepad.exe et de Google. Nous en sommes très férus au bureau, d’autant plus que la console de gestion d’Exchange 2007 n'inclut PAS tout ce que vous pouvez faire dans PowerShell. Microsoft a délibérément échoué à mettre en œuvre des tâches qui ne se font que de temps en temps, plus faciles à développer de cette façon, ce qui oblige carrément à les utiliser si vous avez quelque chose qui ressemble à un environnement complexe.
La gestion de la nouvelle génération de produits Microsoft (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) possède tous des points d'ancrage PowerShell très riches. Une fois que Remote Powershell (PowerShell 2.0 IIRC) sera déployé avec Server 2008 R2, il deviendra encore PLUS utile pour les rédacteurs automatisés.
Qu'est-ce que nous en avons fait:
Alors oui, PowerShell va rester avec nous pendant un bon bout de temps.
EDIT : Ajouter un exemple de code, car il a été demandé
Cela prend un fichier CSV créé avec un script Perl et met à jour un ensemble de groupes. Si le groupe existe déjà, il remplace l'appartenance par celui spécifié dans le fichier. Si le groupe n'existe pas, il le crée. Ceci est une synchronisation à sens unique. En outre, pas encore en production, mais proche.
la source
Étant donné que les produits serveur de Microsoft seront compatibles avec PowerShell dès le début (je pense que la prochaine version d'Exchange a toute la configuration disponible via PowerShell), et que des ouvrages tels que PowerShell in Practice décrivent d'excellents moyens d'automatiser des tâches autrement monotones. il est raisonnable de penser que PowerShell sera une technologie répandue dans Windows Server pendant un certain temps encore.
la source
Je recommanderais le podcast n ° 162 de Scott Hanselman . Il semble que toutes les équipes de serveurs Microsoft sont "obligées" de fournir des applets de commande PowerShell, ainsi que de suivre une syntaxe unique et cohérente.
En outre, des tiers comme VMWare l’ adoptent
En résumé, je pense que PowerShell, à compter de la version 2.0, a sérieusement pour objectif de remplacer les fichiers de traitement par lots pour toutes les tâches, sauf les plus triviales.
la source
Dix scripts PowerShell que j'utilise en tant qu'administrateur de base de données SQL Server (tous sont décrits / publiés sur mon blog ):
la source
Quel genre de tâches administratives avez-vous écrit avec cela?
surveillance des applications / services: obtenez les chiffres de performance clés à partir des procédures (à distance) EventLog et stockées et affichez-les à partir d'un seul fichier de commandes
Je suis un administrateur de base de données SQL Server. Montrez-moi des choses intéressantes à faire avec cela?
automssqlbackup : sauvegarde quotidienne de MSSQL avec rotation (quotidienne = incrémentielle, hebdomadaire + mensuelle = complète; conserver 5 sauvegardes quotidiennes, 5 hebdomadaires), compression, notification par e-mail
la source
Ayant utilisé des scripts shell Unix dans une carrière précédente, puis passé à l'administration de serveur Windows, je peux dire que j'apprécie vraiment, vraiment PowerShell - je n'ai ni le temps ni la capacité d'apprendre trop de syntaxe arcanique et j'ai été agréablement surpris de constater que beaucoup des scripts PowerShell peuvent être écrits avec un langage très simple ... prenez ce que sa valeur car j’étais habitué à ksh !!
Je prédis que ce sera autour pour longtemps.
la source
Je pensais que c'était cool: avec SQL Server 2008, vous obtenez de nouvelles extensions PowerShell qui vous permettent de naviguer dans des bases de données SQL, tout comme votre système de fichiers local ou votre registre.
Après avoir installé les outils du client SQL Server, vous pouvez ouvrir n’importe quelle base de données dans PowerShell (via le menu contextuel en cliquant avec le bouton droit de la souris) et la manipuler de manière orientée objet:
Notez que la première ligne change simplement l'invite afin qu'elle ne soit pas si longue.
Espérons que mis à part cela, il est évident que ce qui se passe ici :)
la source
SQL Server 2008 ayant maintenant des options de contexte PowerShell dans Management Studio, Exchange ne se contente pas de l'adopter. En outre, considérez-le comme le remplacement du DOS, car c'est à peu près ce que pensait MS, car ils ne peuvent tout simplement pas améliorer la sécurité de DOS pour les problèmes de compatibilité ascendante. Ils ont donc créé quelque chose de nouveau et wammo, le problème est résolu!
la source
Je suis moi aussi un administrateur de base de données et un scripteur de longue date, revenant aux fichiers de commandes DOS, V3.3! Passé à VB Script mais PS est très puissant. Jetez un coup d'oeil à - Désolé, je ne peux pas poster le lien car je suis un nouvel utilisateur. Obtenu cela du blog d'Otto Helweg. C'est un outil d'inventaire logiciel bon marché et gai.
Exemple de script PowerShell:
Dave J
la source
Mon équipe effectue très régulièrement les tâches suivantes avec PowerShell.
Jour après jour, je reçois une invite PS tout le temps et je l’utilise pour toutes les tâches uniques pour lesquelles j’utilisais CMD.
Voici quelques exemples de code permettant de lire les listes Sharepoint. J'utilise les services Web de Sharepoint et la nouvelle cmdlet "New-WebServiceProxy" de PowerShell V2.0
Oisin Grehan a publié un excellent blog sur l’utilisation des services Web Sharepoint, qui m’a servi de base pour créer toutes mes fonctions. Il a même mis en place un superbe script new-webservice.ps1 que vous pouvez utiliser si vous utilisez toujours PowerShell V1.
En outre, voici la fonction de base que j'ai utilisée pour obtenir la mémoire disponible sur les nœuds de mon cluster.
la source
J'ai essayé PowerShell pour un petit projet au travail - une migration quotidienne d'un sous-ensemble de ~ 600 utilisateurs et ~ 200 groupes de l' AD d' entreprise vers un ancien système UNIX utilisant des fichiers de type CSV . On m'a offert un script VBScript de 500 lignes (!) Qui a servi de point de départ à un groupe et à ses utilisateurs.
Il s'est avéré qu'un script PowerShell d'une vingtaine de lignes pouvait tout faire ...
En tant qu'utilisateur * NIX (côté serveur et client), j'ai été très agréablement surpris par PowerShell. Même si vous ne connaissez qu'un petit sous-ensemble de commandes, vous pouvez faire un travail vraiment puissant avec elle. J'ai juste besoin d' un accès à distance SSH (-like) ...
la source
Comment puis-je ne pas l'utiliser? Toutes les applications de serveur Microsoft qui sortent / sont en cours de mise à niveau sont maintenant gérées à l'aide de Powershell. Une interface utilisateur / console de gestion plus ou moins gênante est ensuite fournie, construite au-dessus de ce noyau qui est souvent lent et qui, comme quelqu'un l’a souligné, manque de fonctionnalités disponibles ... Je ne peux donc pas dire que nous avons vraiment beaucoup de choix ^ ^
la source
Powershell n'est pas parfait, mais si vous l'avez utilisé, vous savez que c'est plutôt cool. Avoir accès à l'intégralité de la bibliothèque .net et aux cmdlets intégrées (et créer vos propres cmdlets à l'aide de PS en 2.0), c'est plutôt cool.
La seule chose qui me manque, c’est un bon IDE pour cela qui, j'en suis sûr, viendra de la SP un jour. À l’heure actuelle, j’utilise le powershell plus et le adminscripteditor d’Idera, qui permettent le débogage et sont plutôt cool.
J'ai pu me détacher assez bien de VB.
Mon plus grand projet à ce jour avec posh consiste à utiliser "powershellASP" pour créer une page Web de base exécutant des commandes powershell et extrayant des informations sur les hôtes VM et VM de plus d'une douzaine d'hôtes VMWare ESXi (gratuits) et les affichant dans des tableaux HTML. Je l'ai fait parce qu'avec le logiciel gratuit VMWare ESXi et aucun centre virtuel, il n'y avait pas d'autre moyen d'obtenir une vue d'ensemble en temps réel de toutes mes machines virtuelles de l'entreprise. PowershellASP est un analyseur tiers gratuit écrit pour IIS et non pris en charge par MS. Donc, il peut faire des choses limitées en ce moment et la documentation est assez rare.
la source
J'ai toute une série de scripts de gestion / d'inventaire qui recherchent des choses différentes dans AD et les interrogent sur WMI pour obtenir des statistiques vitales telles que les partages sur le serveur, l'espace disque, l'espace disque utilisé, etc.
Scripts généraux:
Scripts utilisateur:
J'en ai un qui énumère toutes les machines invitées VMWare sur mes serveurs ESX
J'ai un script qui saisit les fichiers après x jours et les supprime en toute sécurité.
En gros, je peux faire environ 200 lignes de VBScript et le faire dans PowerShell. Vous pouvez également faire des choses que vous ne pouvez pas faire ou bien faire dans VBScript - comme envoyer des courriels avec pièces jointes - que je fais régulièrement pour m'envoyer les résultats de mes scripts. Vous pouvez également écrire des entrées significatives et uniques dans le journal des événements avec des noms de service personnalisés et des ID d'événement.
C'est ce que je peux penser à mon esprit. Mon outil de prédilection est PowerShell, il facilite simplement la vie.
En gros, il est aussi utile pour un administrateur système que pour les scripts Bash pour un administrateur Unix.
la source
Je cherchais poweshell pour remplacer les scripts batch de nos clients - programmes en cours d'exécution, scripts d'ouverture de session, etc.
Mais nous avons constaté qu’il fallait ajouter au moins 10 secondes au temps de connexion - c’est-à-dire avec tous les "ajustements" en place. Nous avons donc fini par rester avec ce que nous utilisions.
la source
N'étant pas un développeur .NET, l'utilisation de tous les goodies liés à .NET que PS vous permet d'utiliser est limitée. Cependant, étant un administrateur Exchange (entre autres), l'intégration de PowerShell pour Exchange 2007 est AWESOME. J'ai enfin un moteur de script fiable pour mon système de messagerie; jusqu'à présent, je peux m'envoyer des statistiques mensuelles sur les boîtes aux lettres de chacun, ajuster à qui différentes adresses de messagerie sont attribuées en fonction de l'heure, créer et attribuer automatiquement des autorisations sur les dossiers publics et équilibrer la charge des utilisateurs entre nos deux bases de messagerie. . L’autre atout du point de vue d’Ex07 est qu’après avoir fait quoi que ce soit dans l’interface graphique, il vous présente les commandes PowerShell appropriées à ce que vous venez de faire. Copiez-les et vous obtiendrez éventuellement un ensemble de scripts PS capables de rétablir votre environnement Exchange à partir de zéro.
la source
Automatisation de certaines tâches avec les vérifications de serveur sur lesquelles je travaille (collecte des informations de base auprès de WMI et collecte des erreurs et des avertissements dans les journaux des événements).
Sa gestion des journaux d'événements est géniale.
J'ai récemment écrit un script pour désactiver le menu contextuel de mise à jour automatique que Foxit Reader a activé par défaut sur un domaine sur lequel le script est exécuté. Il extrait une liste d'ordinateurs de AD, puis teste pour voir s'il est actif, puis change un 1 en 0.
Une chose que j'ai oubliée!
Vous avez quasiment accès aux bibliothèques .NET. C'est un peu pénible de faire des choses vraiment compliquées avec ça, mais si vous en avez le besoin, c'est pour vous.
la source
Nous l'utilisons pour un certain nombre de tâches administratives, étant principalement une boutique Microsoft. Certains scripts sont simples, comme le nettoyage de vieux fichiers ou la défragmentation de machines et l’enregistrement des résultats. Un script audite les ordinateurs en utilisant principalement WMI et enregistre les résultats dans une base de données. Il contient des éléments tels que le matériel (CPU, RAM, disques, etc.), les informations réseau, les utilisateurs locaux, les logiciels installés et les informations de profil. Il y en a un qui appelle un service Web pour envoyer un courrier électronique. Je pense qu'à l'avenir, il remplacera le reste des scripts VBScript qui sont encore utilisés. Nous ne l'utilisons pas encore pour les tâches Exchange ou SQL Server.
J'attends avec impatience la prochaine version, qui prendra en charge les tâches en arrière-plan, les transactions, une meilleure gestion des exceptions, un nouvel environnement ISE (Integrated Scripting Environment), un meilleur débogage, etc.
la source
Les administrateurs Windows n'utilisent pas encore PowerShell. Ils en ont tous entendu parler, mais ils n'ont pas pris le temps de s'y familiariser.
J'ai décidé de regarder moi-même. Venant d’un environnement shell Unix, j’ai pensé que Windows devait enfin disposer d’un véritable environnement de programmation shell. Je pense que Microsoft a bien fait certaines choses avec PowerShell et qu’il ya des choses qui ne vont pas très bien.
L’utilisation d’objets en tant qu’intermédiaire entre les applets de commande dans PowerShell est un avantage. Cela confère à PowerShell le pouvoir nécessaire pour que les scripts textuels se fassent mal pour se rendre au travail.
Du côté négatif, ils n’exploitent pas beaucoup des commandes du shell Unix. Ainsi, la courbe d'apprentissage est inutilement raide et n'aide pas les gens à passer facilement d'Unix à PowerShell ou inversement. Le mieux est de définir des alias pour certaines des applets de commande PowerShell, telles que ls aliasing Get-ChildItem, tous les commutateurs de ligne de commande étant différents.
Juste mes deux cents...
la source
C’est plutôt une réponse des développeurs, mais c’est la réalité et nous allons commencer à le tester dans les prochains mois. Je commence à apprendre PowerShell afin d'écrire des scripts pour intégrer les tâches SQL Server dans notre environnement d' intégration continue . Les scripts d'intégration continue seront principalement gérés par NAnt et MSBuild via JetBrains TeamCity .
De plus, je souhaite passer à PowerShell en tant que mon shell de commande Windows principal à des fins générales, notamment pour les tâches d'administration de la base de données SQL Server.
Désolé, je n'ai pas encore d'échantillons de code à partager, car j'apprends encore! Je serai heureux d'en poster quand même, :)
Voici un exemple de code d'une seule ligne à laquelle je viens de répondre avec une autre question de votre part :) Mais hé, pour le wiki ...
Cela listera les correctifs installés:
la source
Bien que ce ne soit pas le langage de script le plus facile à maîtriser (expérience solide avec des tuyaux supposés) et qu’il ait son propre moyen de multiplier les bizarreries (donnez-moi une simple chose ressemblant à sed !!), je trouve PowerShell assez puissant. Pas jusqu'au niveau de Bash ou d'autres shells Unix, mais quand même.
Je l'utilise pour superviser certaines exportations et importations de base de données avec des avertissements par courrier électronique en cas de problème, ainsi que pour effectuer des opérations de traitement par lots de routine.
C'est certainement déjà mon principal shell Windows, bien que ce ne soit pas vraiment le genre "écrire moins faire plus". PowerShell joue contre sa verbosité (et son héritage .NET).
la source
La version 1.0 de PowerShell était extrêmement limitée à bien des égards, mais la version 2.0 progresse bien. Comparé aux scripts batch, il est beaucoup plus puissant. Je ne l'utilise pas vraiment en tant que shell, mais uniquement pour les scripts, mon expérience est donc colorée en conséquence. Je n'aime pas vraiment la syntaxe (
-eq
vs==
,-gt
vs>
, etc.), mais j'apprécie de pouvoir me connecter à .NET si j'ai besoin de faire quelque chose de bizarre. Je pense que par la version 3.0 ce sera génial. À l'heure actuelle, je le mettrais fermement dans la catégorie "fait le travail".Je l'utilise principalement pour automatiser le déploiement de code. C’est un domaine dans lequel il brille lorsqu’il crée quelque chose en C #. Les opérations liées au shell, telles que la copie récursive de répertoires et d’autres choses que les scripteurs Bash tiennent pour acquis depuis des années, facilitent grandement les choses.
la source